黑马程序员——Java基础:面向对象一些概念的区分(二)

来源:互联网 发布:黑客linux入门姜超 编辑:程序博客网 时间:2024/05/22 18:21

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
14.static的应用
1)工具类的对象中并未封装特有数据,成员方法也没有用到对象的
特有数据,所以该类不需要对象。可以考虑将工具类定义为static,直接
通过类名调用成员方法。
2)工具类的方法都定义成静态后,仍然可以被其他程序建立对象,
为了更加严谨,可以通过将构造函数私有化,强制让该类不能建立对象。

15.帮助文档
将ArrayTool.class 文件发送给其他人其他人只要将该文件设置到classpath
路径下,可是对方不知道该类定义了多少个方法
制作程序说明说步骤:
1)类必须用public修饰,默认构造函数的权限随着类的权限变化而变化
2)dos控制台输入javadoc -d myhelp -author -version ArrayTool.java
3)打开myhelp–>index.html

16.静态代码块
格式:
static
{
执行语句
}
特点:随着类的加载而执行,只执行一次,并优先于主函数执行 。
作用:用于给类进行初始化
类中函数执行顺序:静态代码块–>构造代码块–>对应的构造函数

17.对象的初始化过程
1)因为new用到了Person.class ,先将Person.class加载到内存中
2)执行该类中的静态代码块,如果有的话,给Personl类初始化话
3)在堆内存中开辟空间,分配内存地址
4)在堆内存中建立对象的特有属性,并进行默认初始化
5)对对象进行显示初始化
6)对对象进行构造代码块初始化
7)对对象进行对应的构造函数初始化
8)将内存地址赋给栈中的p变量

18.对象调用成员过程
1)非静态方法的局部变量的值,给调用该方法的对象赋值
运行方法区的代码,就把堆中的类变量赋值了
2)静态方法不访问堆内存中的数据。

19.设计模式
设计模式:解决某一类问题最行之有效的方法,java中有23种设计模式
单例设计模式:结局一个类在内存只存在一个对象
保证对象唯一:1.为了避免其他程序过多建立该类对象,先禁止其它程序
建立该类对象。
2.为了让其他程序访问到该类对象,只好在本类中,自
定义一个对象
3.为了方便其他程序对自定义对象的访问,可以对外提
供一些访问方式
代码体现:1.将构造函数私有化
2.在类中创建一个本类对象
3.提供一个方法可以获取到该对象
注意:1.对于事物该进行描述,当需要将该事物的对象保证在内存中唯一时,
就加上以上的三部即可。
2.定义单例时建议使用代码一(恶汉式),如果使用代码二当多程序
访问时,几个程序可能会停在判断语句中,就有可能创建多个对象。
代码二改进方法:给程序加锁,关键字synchronized,
代码一:这个是先初始化对象,称为恶汉式
Single 类一进内存,就已经创建好对象

public static Single getInstance()      {        return s    }}class SingleDemo{    public static void main(String [ ] args)    {        Single ss = Single.getInstance();    }}

代码二:对象方法被调用时,才初始化,也叫做对象的延时加载,
称为懒汉式
Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象

class Single {    private static Single s = null;    private Single() {}    public static Single getInstance()     {        if (s ==null)        {            s = new Single();        }        return s;     } }
0 0
原创粉丝点击