28、static 关键字(静态的)非面向对象的
一个类的多个对象共享一个变量,需要用static修饰该变量
因为static修饰的变量为类的所有实例共享,所以static成员不属于某个类的实例,而属于整个类
所以在访问允许的情况下,可以使用“ 类名. ”直接访问静态成员(成员包括属性和方法)
static 成员也称为类成员或静态成员、类属性类似于全局变量
在 static 方法内部只能访问类的static修饰的属性,不能访问非static属性
非静态成员变量,必须先通过类创建对象实例才能进行访问,而静态成员变量可以通过类直接进行访问而不需要事先创建对象实例
在static 方法内部不能使用 this、super 关键字【指的是当前引用类的对象实例】
非静态方法中可以直接访问类的静态成员
设计类时,分析哪些类属性不因对象的不同而改变,将这些属性设置为静态成员
如果方法与调用者无关,则这样的方法可进行声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用。
29、静态初始化【对类的静态属性进行初始化】
通过构造器对非静态属性进行初始化
如果在构造器中对静态属性进行初始化,那么就是每创建一个新实例,都会重新对静态成员进行赋值
代码区: {
}
▲ static{
}
▲30、Singleton 单子设计模式
设计模式:是在大量实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方法
采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例
不能在类的外部通过new关键字的方式创建新的实例
构造器进行私有化 private 修饰符修饰
在类的内部创建实例
为了让类的外部能够访问到类的内部创建的实例,该实例必须使用 static修饰
不能允许在类的外部访问修改内部创建的实例的引用,把该属性用 private 修饰
为了外部能进行访问,添加getter
31、final关键字(可修饰类、属性和方法)
final 标记的变量(成员变量或局部变量)即成为常量,只能赋值一次
final 标记的类不能被继承。提高安全性,提高程序的可读性
final标记的方法不能被子类重写,增加安全性
final标记的成员变量必须在声明的同时或在每个构造方法中显示赋值,然后才能进行正常使用
32、abstract 关键字(修饰类和方法)
abstract 修饰类称为抽象类,修饰的方法称为抽象方法。
抽象类:不能被实例化,就是用来被继承的类
抽象方法:没有方法体的方法
抽象方法所在的类一定是抽象类,抽象方法是用来被子类重写的
私有方法、构造器、静态方法【非面向对象】 都不能被abstract 修饰
抽象类是用来模拟化那些父类无法确定全部实现,而由其子类提供具体实现的对象的类
33、接口(interface 关键字)【接口是一种规范 面向接口编程】
只包含抽象方法和常量值的定义的集合
【接口. 方式直接访问】接口中所有成员变量默认是由public static final 修饰,声明变量时必须直接赋值,常量标识符的书写要求:字母都大写,多个单词之前用下划线连接
接口中所有方法都默认由public abstract 修饰
实现接口的类中必须提供接口中所有方法的具体实现内容,若该类为抽象类,另当别论
多个无关的类可以实现同一个接口
实现接口 使用 implements 关键字,若一个类实现接口和继承类,则继承(extends)放在前面,即先继承父类,再继承多个接口
一个类可以实现多个无关的接口,若实现多个接口,则接口间使用 , 分开
与继承关系类似,接口与实现类之间存在多态性
接口也可以继承另一个接口,使用extends关键字
更新时间:2016年9月15日