008单例、继承、final
内容:单例,类继承,final
##########################################################################################################################
1、单例设计模式(23中设计模式之一)
解决的问题:保证一个类的对象在内存中的唯一性,也就是这种类只有一个对象
应用场景:只有一个对象,一个程序使用后,另外一个程序才使用。
class Danli { public static void main(String[] args) { Single s; s = Single.getInstance(); } } class Single { //创建一个本类的对象 static Single s = new Single(); //构造函数私有化 private Single(){} //定义一个方法返回该对象 static Single getInstance() { return s; } }
饿汉式:该类加载进内存的时候就创建对象,急于创建对象,就叫饿汉式
class Danli { public static void main(String[] args) { Single s; s = Single.getInstance(); } } class Single { //创建一个本类的对象 static Single s = null; //构造函数私有化 private Single(){} //定义一个方法返回该对象 static Single getInstance() { if(s == null){ s = new Single(); } return s; } }
懒汉式:该类加载进内存的时候没有创建对象,到调用getInstance()方法才创建对象,比较懒,就叫懒汉式
静态方法通过类名就可以调用。
###################################################################################################
2、继承
Java支持单继承,不直接支持多继承。
父类私有化只能通过父类访问。
调用子类的构造函数用this(参数名称);调用父类的方法用super(参数名称);
子类所有构造函数第一行默认有个super();语句,,,,this就没有super,因为另外一个构造函数里面有super();
之前做笔记比较少,现在理解了很多就没有在补充了。
#######################################################################################################
3、final关键字
1)可以修饰类、方法、变量
2)final修饰的类不能被继承
3)final修饰的方法不能被覆盖
4)final修饰的变量是常量,只能赋值一次
通常修饰不能被修改的变量,最简单的就是圆周率。