在上面我们已经接触到了面向对象的类和对象
接下来我们讲解一下static,抽象类,接口,内部类:
我们先从基本的static讲起:
在static扩展中我们将讲到匿名代码块和静态代码块
这两者可写于类中:
public class application {
//匿名代码块
{
System.out.println("匿名代码块");
}
//静态代码块
static {
System.out.println("静态代码块");
}
//构造方法
public application(){
System.out.println("构造方法");
}
//main函数
public static void main(String[] args) {
application app = new application();
}
}
结果:
静态代码块
匿名代码块
构造方法
我们可以看到在类的产生过程中,各部分的生成先后顺序是:静态代码块,匿名代码块,构造方法。
概念:
抽象定义:
public abstract class 抽象类名{
...
//抽象类中可包含未被定义的抽象方法
public abstract void 抽象方法名();
...
//抽象类中也可包含定义的方法
public void 抽象方法名();
...
}
代码展示:
//abstract象征抽象,这里指抽象类,抽象类可以含有抽象方法和具体方法
public abstract class A {
//abstract象征抽象,这里指抽象方法,抽象方法不需要写方法体。(有抽象方法就要保证是抽象类)
public abstract void run();
public void say(){
System.out.println("hello");
}
}
//这里B继承A,保证B里面有A的抽象方法的全部重构
public class B extends A{
public void run(){
System.out.println("run");
}
}
//这里C继承A,把C也定义为抽象类可以保证C称为A的子类
public abstract class C extends A{
}
抽象类总结:
普通类,抽象类,接口的区别:
接口定义:
//interface标识接口
public interface UserSerivce{
//在接口类中定义一些方法,不需要写方法体
//方法默认为public,abstract
void run();
//接口方法可设置参数
String setName(String name);
}
接口继承方法:
//接口继承采用implements,可继承多个接口,需要补充继承接口的所有方法
public class UserServiceImpl implements UserSerivce,TimeSerivce{
public void run(){
}
public String setName(String name){
return "ccc";
}
public void jump(){
}
}
接口作用:
接口注意点:
内部类定义:
内部类在后面我们会再提起,所有这里先讲述一种类型:成员内部类
概念:
//成员内部类
public class A {
private int id;
public void out(){
System.out.println("成员外部类");
}
public class Inner{
public void in(){
System.out.println("成员内部类");
}
public void getID(){
System.out.println(id);
}
}
}
成员内部类可以直接使用外部类的private属性
public class application {
public static void main(String[] args) {
//定义外部类
A a = new A();
a.out();
//用外部类来实化内部类
A.Inner aa = a.new Inner();
aa.in();
aa.getID();
}
}
好的,这节的重点主要在抽象类和接口,好好掌握