黑马程序员----八-面向对象三

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

==========================================
08-01-01
==========================================

1.数组工具类中静态的使用.
  建立一个ArrayTool数组工具类
  如果没加静态就要new一个ArrayTool,加了静态就可以直接用ArrayTool.工具   方便

  该类中的方法都是静态的,所以该类是不需要创建对象的,为了保证不让其他类创建该类对象,可以将构造函数私有化.
  private ArrayTool(){}

2.文档注释
  javadoc -d myhelp -author -version ArrayTool.java
  形成后打开index.html

==========================================
08-01-04
==========================================

1.单例设计模式
  解决的问题:可以保证一个类在内存中的对象唯一性.
  必须对于多个程序使用同一配置信息对象时,就需要保证该对象的唯一性.

2.如何保证对象唯一性呢?
  1不允许其他程序用new创建该类对象.
  2在该类创建一个本类实例.
  3对外提供一个方法,让其他程序可以获取该对象.
步骤:
  1私有化该类的构造函数
 private Single(){}
  2通过new在本类中创建一个本类对象
 static Single s=new Single();
  3定义一个共有的方法,将创建的对象返回
 public static void getInstance(){
 return s;
 }

class Single{
 static Single s=new Single();
 private Single(){}
 public static Single getInstance()
 {
 return s;
 }
}
过程:几个对象想共用一个控制对象,如果每次都new,内存占的太多,如果全部都静态,生命周期太长,所以,只要保证这些对象用的是同一个控制对象,就可以了. 

所以
Single s2=Single.getInstance();
或者
Single s2=Single.s;
就可以调用Single实例.

单例设计模式保证了实例唯一.

==========================================
08-01-05
==========================================

单例设计模式 内存图解:
class Single
{
 private static Singles=newSingle()
 private Single(){}
 public static Single getInstance()
 {
  return s;
 }
}

main()
{
 Single s1=Single.getInstance();
 Single s2=Single.getInstance();
 sysout(s1==s2);
}

1.主函数,s1进栈.
2.Single进方法区
3.Single(){}进方法区
4.Single进静态方法区 s=null
5.getInstance也在静态方法区
6.堆里产生对象,地址指向s
7.getI方法进栈,出栈
8.s2进栈,获得地址,getI进栈出栈
9.s1,s2都指向一个对象.

==========================================
08-01-06
==========================================

单例--懒汉式
class Single
{
 private static Single s=null;
 private Single(){}
 public static Single getItce()
 {
 if(s==null)
 s=new Single();
 return s;
 }
}

只有调用getI方法时,才会创建对象.
之前那种叫饿汉式,类一加载,对象就存在了,这种叫做懒汉式.因为真正用到的时候才创建对象.
懒汉式在多线程时可能会导致不能保证对象唯一性,有安全隐患.

==========================================
08-01-07
==========================================

1.继承的好处
 1提高了代码的复用性.
 2让类与类之间产生了关系,给第三个特征多态提供了前提.
 3java中支持单继承,不直接支持多继承,但对c++中的多继承机制进行了改良,因为多继承当多个父类有相同成员时,会产生调用的不确定性.

2.当要使用一个继承体系时,
 1查看该体系中的顶层类,了解该体系的基本功能.
 2创建体系中的最子类对象,完成功能的使用.

3.什么时候定义继承
 当类与类之间存在着所属关系的时候

4.super
this代表一个本类对象的引用
super代表一个父类空间

5.覆盖注意:
 1子类方法覆盖父类方法时,子类必须权限要大于等于父类的权限.

 

你可能感兴趣的:(黑马程序员----八-面向对象三)