---------------------- android培训、java培训、期待与您交流! ---------------------
JavaSE_08 笔记
Java语言基础之 单例设计模式 继承 覆盖
1、 Private的使用
若一个类中的方法都是静态的,那么该类是不需要创建对象的,可以将其构造函数私有化。
2、单例设计模式:保证一个类在内存中的对象唯一性。
使用条件:当多个对象操作一个对象时,要求操作对象时只能有一个对象对其进行操作,保证该对象的唯一性。
class Single
{
private Single(){}
private static Single s=new Single(); //类一加载就已经初始化
public static Single getSingle()
{
return s;
}
}
3、单例设计模式之 延迟加载形式
class Single2 //类加载时没有初始化,只有getInstance才初始化
{
Single2 s=null;
private Single2(){}
public static Single2 getInstance (Single2 s)
{
if(s==null)
{
s=new Single2();
}
return s;
}
}
4、面向对象之 继承 extends
①继承的好处:让类之间产生了关系,给多态提供了前提;提高了代码的复用性;
②Java中支持单继承,不直接支持多继承,因为会产生调用不确定性。但支持多重继承。
5、因为多重继承,出现了集成体系,那么使用原则是:
①查看该体系中的顶层类,从而了解该体系的基本功能。
②创建体系中的最子类对象,从而完成功能的使用。
6、何时使用继承?(is a)
当类于类之间存在着所属关系的时候,就定义为继承。比如狼和狗是犬科中的一种。
7、继承时,子父类中成员变量的特点。
①当本类中的成员变量和局部变量同名时用this区分。
②当子父类中的成员变量同名时用super区分父类。
③内存空间的特点:
new的只是子类,但是在该堆内存空间中,其实有两个空间分别代表中子类成员和继承的父类成员。但是父类的私有成员不会出现在该存储空间中。
所以在father f=new zi();时当f使用的成员仅是子类内存中父类这么一块。
注意:子类不能访问父类中私有的内容。
8、继承时,子父类中成员函数的特点。
①根据this和super来选择调用哪个,但是若子父类函数一模一样时会发生覆盖override。②要求:两个函数一模一样,就是 函数名相同;返回值相同;参数列表相同。
③覆盖的应用场合:一般在扩展新方法时,需要遵循保留父类原有的功能,创建子类特有的内容时,使用覆盖。比如子类需要父类的功能,但是仅仅是将内容进行改良,就是保留父类原有功能,创建子类特有内容。此时可用覆盖操作完成。
9、发生覆盖时注意事项:
①子类覆盖父类方法时,子类的权限大于或等于父类的权限。
②静态只能覆盖静态,或被静态覆盖。
10、函数的两个特性:
①重载:同一个类中。仅要求两个函数的参数进行区分。
②覆盖:子父类中。要求两个函数一模一样。
2012/9/03 By Mary_k