黑马程序员——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; } }
- 黑马程序员——Java基础:面向对象一些概念的区分(二)
- 黑马程序员——Java基础:面向对象一些概念的区分(一)
- 黑马程序员——Java基础:面向对象一些概念的区分(三)
- 黑马程序员——Java基础---面向对象(二)
- 黑马程序员——Java基础-------面向对象(二)
- 黑马程序员——Java基础---面向对象(二)
- 黑马程序员——Java语言基础——03.面向对象(1)思想和一些概念
- 黑马程序员——Java基础——面向对象的特征(二)
- 黑马程序员——java基础---面向对象(二)
- 黑马程序员——Java基础---面向对象<二>
- 黑马程序员——java基础-面向对象(二)
- 黑马程序员——Java基础之面向对象的相关概念及个人理解
- 黑马程序员—面向对象的概念
- 黑马程序员——面向对象基础(二)
- 黑马程序员-----Java基础----面向对象(二)
- 黑马程序员—java面向对象二
- 黑马程序员 java基础<—>--->面向对象
- 黑马程序员——Java面向对象的一些知识点
- 记事本在读取一个文本时如何判断是该用啥字符集来读取解析文本字符
- 多选AlertDialog至多选择3项
- C++的构造、析构函数
- 网页刷新或者重新加载后滚动条的位置不变
- 浅谈10个重要的Linux ps命令
- 黑马程序员——Java基础:面向对象一些概念的区分(二)
- 字符串读入和输出问题
- Ubuntu14.04安装搜狗输入法
- UML图
- i=i++分析
- 分享一下官网USB读卡器移植 --> 附上原子战舰的测试工程(TF卡SDIO模式 + SPI-flash)
- 【转】OI大纲
- 动态规划10_数位DP1
- 为一个REST服务使用Spring Security的基本和摘要认证