java中面向对象的一些小知识点(二)
来源:互联网 发布:男生冬季帽子知乎 编辑:程序博客网 时间:2024/05/22 23:31
一,单例设计模式
1.为什么要有单例设计?主要就是想要保证对象的唯一性。
1)为了避免其他程序过多建立该类的对象
2)还要为了方便其他程序访问该类对象,在本类中自定义一个该类对象,然后提供静态访问方法
2.实现方式
1)首先,就是将构造函数私有化,让其他程序没法通过构造函数实例化对象
2)在类中创建一个该类的对象
3)提供一个静态方法,返回该对象
例如:
class Single {
private Single() {
}
private static Single s = new Single();
public static Single getInstance() {
returns;
}
}
这就是一个简单的单例模式的实现方式。
3.两种表现形式(这个需要重点注意)
1)饿汉式(先初始化对象,然后调用)
class Single {
private Single() {
}
private static Single s = new Single();
public static Single getInstance() {
return s;
}
}
2)懒汉式(对象是在被调用时,才初始化,也叫对象的延时加载)
class Single {
private Single() {
}
privatestatic Single s =null;
public static Single getInstance() {
if (s ==null)//减少读锁次数
{
synchronized (Single.class)
{
if (s ==null)
s = new Single();
}
}
returns;
}
}
“懒汉式”在使用时需要特别注意,当多个程序同时访问时,有可能出现创建多个对象的情况,因此需要加锁来解决。因此,定义单例时,建议使用“饿汉式”。二,多态的应用
首先,来看个例子
class Fu {
int num = 5;
void method1() {
System.out.println("fu method_1");
}
void method2() {
System.out.println("fu method_2");
}
static void method4() {
System.out.println("fu method_4");
}
}
class Zi extends Fu {
int num = 8;
void method1() {
System.out.println("zi method_1");
}
void method3() {
System.out.println("zi method_3");
}
static void method4() {
System.out.println("zi method_4");
}
Fu f = new Zi();
System.out.println(f.num);
f.method1();
f.method2();
f.method4();
输出结果为:5
zi method_1
fu method_2
fu method_4
看到个结果,就需要为大家总结下,多态的几个特点:1.多态中非静态成员函数的特点:
1)编译期间,参阅引用型变量所属的类中是否有调用的方法
2)运行期间,参阅对象所属的类中是否有此方法,
简单来说,成员函数在多态调用时,编译看左边,运行看右边
2.多态中,成员变量的特点:
1)无论编译和运行,都是参考左边(引用型变量所属的类)
3.多态中,静态成员函数的特点:
1)无论编译和运行,都是参考左边(静态方法跟类绑定,与具体堆相无关)
- java中面向对象的一些小知识点(二)
- java中面向对象中的一些小知识点
- Java面向对象重要知识点(二)
- Java知识点总结(二)面向对象
- java中一些小知识点(面试)
- 黑马程序员——Java面向对象的一些知识点
- 黑马程序员——Java面向对象知识点(二)
- java的一些小知识点
- java 面向对象 知识点
- Java面向对象知识点
- java面向对象知识点
- 第18天 Java面向对象小程序(二)
- JAVA面向对象的相关知识点
- Java面向对象的知识点梳理
- java的面向对象(二)
- Java面向对象的知识(二)
- js面向对象的一些小练习
- 黑马程序员——Java基础:面向对象一些概念的区分(二)
- Qt界面显示图片,Qt与opencv的联合运用
- jquery实现百分比进度条
- AFNetworking如何获取完整的error body
- 小SQL干大事。。。不断更新
- Unicode和UTF-8的关系
- java中面向对象的一些小知识点(二)
- 泰兴身份证号码户籍地址信息查询
- spring IoC 优点和缺点
- 只有创意和杜蕾斯才能救校园O2O
- 简明扼要谈Spring IOC的好处
- 在struts2种解决url中文乱码的方法(其中一种方法)
- 串的3种存储结构
- linux添加开机自启动脚本示例详解
- 6、快速遍历、数组排序