2.1static关键字
1、修饰属性
静态的属性:属于类,所有的对象共享
应用:如果该类的所有的这个属性值都相同,就可以设计为静态的属性,节省内存,方便修改
2、修饰方法
静态的方法:属于类,由类直接调用,方法里不能访问对象的呢容(属性,方法)以及this和super关键字
继承中,子类可以继承父类的静态方法,但是不能重写
应用:如果方法中,没有涉及到对象的内容或者this和super,那么方法就可以设置为静态的方法,由类直接调用
3、修饰代码块
4、修饰内部类
2.1.1【扩展】类加载
类加载就是第一次调用这个累的时候,需要通过class path找到类的.class文件。将class文件中类的信息描述加载到内存中。
比如:包名,类名,父类,属性,方法
加载类的时机
创建对象
创建子类对象
访问静态属性
访问静态方法
主动加载:Class.forName(”包名.类名“)
2.1.2static修饰代码块【了解行】
代码块:一块代码,以{}为代码块
1、局部代码块,就是普通的代码块
if语句:if(){。。。}
for,while。。。{}
2、构造代码块:类里,方法外的代码块
执行时机:当构造方法被调用的时候,构造代码块就执行,而且优先执于构造方法执行的。如果创建多个对象,就执行多次
应用:可以为非静态的属性进行统一赋值
3、静态代码块 在代码块前加static关键字
执行时机:初始化程序,只要类文件加载,静态代码块就会执行。仅执行一次,在main函数之前执行
应用:可以为静态属性进行赋值
4、同步代码块
注意:要知道执行顺序
2.2 接口
2.2.2接口的概念
从语法的角度。接口是一种特殊的抽象类,这种抽象类只包含了抽象方法和静态常量
也就是说:接口中都是抽象方法和静态常量的集合
从功能的角度:接口表示一种约定,或者能力
2.2.3Java中的接口的语法格式
1、定义一个类
关键字:class 类名{}
2、定义一个接口
interface 接口名{
静态常量
抽象方法
}
3、【等待子类继承并实现所欲的抽象方法,才能创建子类对象】
实现类:实现一个接口的语法
class 实现类 implement 接口名{
}
一个实现类,去实现一个接口,就是这个实现类中,实现接口中的所有的方法。
2.3.4接口的特点
接口不能创建对象,不能被实例化,而且接口当中没有构造方法
接口中的方法一般都是公共的抽象方法:public abstract来修饰
接口中的属性,都是公共的静态常量:public final static
在一个接口中,声明方法的时候,如果没有声明访问权限,默认也是public的,如果没有其他的修饰符默认的也是abstract。生命属性,如果没有生命访问权限和其他的关键字,默认也是public static final。
2.3.5接口的好处
降低代码的耦合性(藕断丝连),类和类之间耦合性是越低越好
定义的都是规则对外保持接口的一致
接口可以多继承
2.3.6接口的注意点
1、接口可以多继承
一个接口允许继承另外一个接口,而且允许继承多个接口。只不过该接口的实现类,要实现该接口中,以及从父接口中继承来的抽象方法,都需要实现。
接口中:声明都是抽象方法。只有声明(描述功能),没有具体的实现(完成这个功能)。声明和实现分离。
2、一个类还可以实现多个接口
一个实现类,可以同时实现多个接口。
3、一个实现类如果没有实现接口中的所有的方法,那么该类是抽象的。等待子类继承,并实现其他的抽象方法。
4、一个类也可以继承父类,同时实现接口。
5、jdk1.8的新特性:default方法。
三、总结
static:修饰属性,和方法。【重点掌握】
修饰代码块。【了解】
接口:
语法:抽象方法和静态常量的集合。JDK1.8版本新增了功能:允许default方法。
概念:规定了一系列的规则和功能。
语法:
interface 接口名{
//静态常量
//抽象方法
}
实现类来实现接口。
class 实现类 implements 接口名{
//实现类中实现接口中的抽象方法。
}
创建实现类对象,访问这些方法。
注意点:
使用代码尝试
网友评论