老男孩的替身

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一.复习

  1. Static修饰成员变量;作用共享数据

静态成员变量访问方式

方式一:可以使用对象访问    对象.属性名

方式二:可以使用类名访问    类名.属性名

注意:非静态成员变量不能使用类名直接访问,要使用对象访问。

       千万不要为了访问方便而使用static修饰,一定要数据真正是需要被共享的时侯才使用static修饰。

  1. static修饰成员函数

①    静态函数的访问方式

方式一:可以使用对象访问    对象.属性名

方式二:可以使用类名访问    类名.属性名

推荐使用类名访问静态的成员。

静态函数要注意的细节:

②    非静态只能由对象调用,静态函数可以由类名或者对象来调用。

静态函数中不能接访问非静态成员,可以直接访问静态函数

非静态函数可以直接访问非静态成员或静态成员

静态函数不能出现this或者super关键字

  1. 单例设计模式:

饿汉单例设计模式:

①    私有化构造函数

②    声明本类的引用类型变量并且指向本类的对象。,(private static)

③    提供一个公共静态的方法获取本类的对象。

懒汉单例设计模型:

①    私有化构造函数

②    声明本类的引用类型变量,但不要创建对象。,

③    提供一个公共静态的方法获取本类的对象,获取前先判断是否创建本类的对象,如果没有创建,创建再返回。如果已经创建了,那么直接访问即可。

  1. 继承:

继承的格式 class 类名1 extends 类名2

注意事项:①父类私有的成员不能被继承。

          ②父类的构造函数不能被继承。

          ③创建子类对象时,默认会先调用父类无参的构造函数,然后再调用子类的构造函数

Super关键字:代表的是父类的引用空间

Super关键字作用:

如果子父类存在同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。

 创建子类的对象时,默认会先调用父类的无参构造函数,可以通过  super关键字指定调用父类的构造函数,

Super关键字要注意的事项:

   如果在子类的构造函数中没有指定调用具体父类的构造函数,那么Java编译器 会在子类的构造函数上添加super()

    Super关键字调用构造函数时必须出现构造函数中第一个语句。

  1. 方法的重写:如果父类的功能无法满足子类的需求,那么就需要重写。

方法重写的要素:

①    函数名与形参列表必须一致。

②    子类的权限修饰符必须大于或者等于父类的权限修饰符

③    子父类的返回值类型必须小于或者等于父类的返回值类型。

④    子类抛出的异常类型必须要小于或者等于父类抛出的异常类型。

  1. Instanceof:判断一个对象是否属于某种类型

Instanceof关键字的使用格式:

对象 instanceof 类

Instanceof的使用前提:判断的对象与类型必须存在继承或者实现的关系。

二.final(最终、修饰符)

     1.用法:final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的职位最终的。

2.final关键字修饰一个引用类型变量时,该变量不能重新指向新的对象。

      3.final关键字修饰一个函数的时候,该函数不能被重写。

       常量修饰符:public static final

三.抽象类

  1. 如果一个函数没有方法体,那么该函数必须使用abstract修饰,把该函数修饰成抽象的函数。
  2.  如果一个类出现了抽象的函数,那么该类也必须使用abstract修饰。
  3. 如果一个非抽象类继承了抽象类,必须要把抽象类所有抽象方法给实现。   
  4.  抽象类的好处:

强制子类一定要实现指定的方法。

  1.   抽象类可以存在非抽象的方法,也可以存在抽象的方法
  2. 抽象类不能创建对象。
  3. 抽象类存在构造方法的,是为子类服务的。

注意:常量的命名规范字母全部大写,单词与单词之间用下划线分割。

abstract不能与以下关键字共同使用。private  static final

四.值交换:

  不懂的地方,交换数组两个数的位置,10和9

Int temp{23.10.9}

输出changeArr数组

changeArr(arr,1,2)

System.out.println(“数的元素:”+Arrays.tostring(arr));

五:接口

一个类最多只能有一个直接的父亲,但是有多个间接的父类

Java是单继承的

 接口:拓展功能。

定义格式:

Interface接口名{

}

  1. 接口是个特殊的类。
  2. 接口的成员变量默认的修饰符为:public static final。那么也就是说接口中的成员变量都是常量。
  3. 接口中的方法都是抽象的方法,默认的修饰符
  4. 接口不能创建对象且没有构造方法
  5. 使用方式:接口是给类去实现使用的,非抽象类实现一个接口的时候,必须要把接口中所有的方法全部实现。

实现接口的格式:

class 类名 implements 接口名{

 

接口的作用:

  1. 拓展功能
  2. 定义约束规范
  3. 程序的解耦

类与接口之间的关系:实现关系。

 

类与接口要注意的事项

  1. 非抽象类实现一个接口,必须要把所有的方法实现。
  2.  抽象类实现一个接口时,可以实现也可以不实现接口中的方法。
  3.  一个类可以实现多个接口。

接口与接口之间的关系:

  1. 接口与接口可以继承

六:多态

1.定义

一个对象具备多种形态。(父类的引用类型变量指向了子类的对象或者接口的引用类型变量指向了接口实现类的对象)

多态的前提:必须存在继承或者实现关系。

动物 a=   new 老鼠

2.注意

①多态情况下,子父类存在同名的成员变量时,访问的是父类的成员变量。

②多态情况下,子父类存在非静态的成员函数时,访问的是子类的函数。

④多态情况下,子父类存在静态的成员函数时,访问的是父类的函数。

⑤多态情况下,不能访问子类特有的成员。

多态的应用

①    多态用于形参类型的时候,可以接受更多类型的数据。

②    多态用于返回值类型的时候,可以返回更多类型的数据。

 

 

 

 

 

(函数的重载不会)

posted on 2018-01-23 20:15  贾老板  阅读(69)  评论(0)    收藏  举报