您的位置:首页 > 职场人生

黑马程序员--第四天(面向对象)

2015-07-15 09:07 369 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一、单例设计模式

设计模式:解决某一类问题最行之有效的方法。

单例设计模式是解决一个类在内存中只存在一个对象的这种情况。

想要保证对象唯一:1.禁止其它程序建立该类对象。

2.为了让其它程序可以访问该类对象,在本类中自定义一个对象。

3.对外提供访问方式。

代码实现:

1.将构造函数私有化(其它程序就不能创建对象了)。

2.在本类中创建对象。

3.提供一个方法可以获取到该对象。

饿汉式

class Single

{

 private Single(){};

 private static Single s=new Single;

 public static Single getInstance()

 {

  return s;

 }

}

class 

{

 public static void main(String[] args)

 {

  Single ss=Single.getInstance();

 }

}

对于事物如何描述的还是如何描述。

当需要保证对象唯一时就加上以上3步。

懒汉式

class Single

{

private Single(){};

private static Single s=null;

public static Single getInstance()

{

  if(s==null)

      s=new single();

     return s;

}

区别懒汉式延时加载。

二、继承

1.提高代码的复用;类与类之间产生了关系,有了这种关系才有了多态。

2.java只支持单继承不支持多继承,多继承容易带来安全隐患。

java支持多继承,也就是一个继承体系。

如何使用继承体系:

查阅父类的描述:父类中定义了该体系中共性的功能。

具体调用时要创建最子类的对象。因为可能父类不能创建对象,还有 子类对象可以使用更多的功能。

函数另一个特性--函数的覆盖(重写):当子类出现和父类一样的函数时,当子类对象调用该函数时,会运行子类函数的内容,父类的函数被覆盖。

重写与重载:

重载:只看参数列表。

重写:子父类函数一样。

结论:子类的所有构造函数,默认的都会访问父类中空参数的构造函数。

因为子类每一个构造函数内的第一行都有一句隐式super();

当父类中没有空参数的构造函数时,子类必须手动通过super或者this语句形式指定要访问的构造函数

3.final关键字

   被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。

  被final修饰的变量是一个常量只能赋值一次。

4.抽象类、抽象方法

特点:抽象方法一定在抽象类中,都必须被abstract修饰。抽象类不可以创建对象,因为调用抽象方法没意义。

抽象类中的方法要被使用,要由子类复写所有的抽象方法后,创建子类使用。如果子类只复写了部分抽象方法,那么该子类还是抽象类。

/*

需求:获取一段程序运行的时间。

原理:获取程序开始和结束的时间相减即可。

获取时间:System.currentTimeMillis();

*/

class GetTime

{

 public void getTime()

 {

  long start =System.currentTimeMillis();

  for (int x=0;x<1000 ;x++ )

  {

   System.out.print(x);

  }

  long end =System.currentTimeMillis();

  System.out.println("毫秒"+(end-start));

 }

}

class  TempleDemo

{

 public static void main(String[] args)

 {

  GetTime gt=new GetTime();

  gt.getTime();

 }

}

 

5.接口

 接口中的方法全都是抽象方法,接口可以被类多实现,java不支持多继承但支持多实现。

接口的特点:接口是对外暴露的规则

接口是程序的功能扩展

类可以在继承一个类的同时实现多个接口。

接口与接口之间可以有继承关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: