java学习第23天(2.22)
10.2 理解 main 方法语法
10.2.1 深入理解 main 方法
解释main方法的形式:
1)main方法是虚拟机调用
2)java虚拟机需要调用类的main()方法,所以访问权限是public
3)java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static
4)该方法接收String类型的数组参数,该数组中保存执行java命令是传递给所运行的类的参数
5)java 执行程序 参数1 餐数2
10.2.2 特别提示:
1) 在 main()方法中,我们可以直接调用 main 方法所在类的静态成员
2) 但是,不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员(所有静态方法都同理)
10.4 单例设计模式
10.4.1 什么是设计模式
10.4.2 什么是单例模式
单例(单个的实例)
1.类的单例设计模式,就是采取一定的方法保证对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法
2.单例模式两种方式:1)饿汉式 2)懒汉式
10.4.3 单例模式应用实例
饿汉式步骤:
1)构造器私有化(防止类外部直接new)
2)类的内部直接创建对象(该对象是static)
3)提供一个静态的公共方法,返回对象
懒汉式:
1)仍构造器私有化
2)定义一个静态属性对象
3)提供一个public的静态方法,可以返回对象
4)懒汉式,只有在使用方法时,才能返回对象,后面再次调用时,会返回上次创建的对象,从而保证单例
小结:
饿汉式问题:在类加载时就创建,存在资源浪费问题
懒汉式问题:线程安全问题
要会独立写单例模式
10.5 final 关键字
10.5.1 基本介绍
可以修饰类、属性、方法和局部变量
1).希望类不能被其他类继承,用final修饰
2)希望父类的方法不能被子类重写/覆盖
3)当不希望类的的某个属性的值被修改
4)当不希望某个局部变量被修改
10.5.2使用注意事项和细节讨论
1)修饰的属性又叫常量,一般用XX_XX来命名
2)修饰的属性在定义时,必须初赋值,并且以后不能再修改,赋值位置:
(1) 定义时
(2)在构造器中
(3)在代码块中
3)如果修饰的属性是静态的,则初始化位置:
(1) 定义时
(2)在静态代码块,不能在构造器赋值