Java oop总结一

一、对象

  1.属性

    1) 属性

      a) 数据类型

      •   基本数据类型:整型(byte、short、int、long),浮点型(float、double)、字符型(char)、布尔型(boolean)。
      •     引用数据类型:自定义类型、数组、接口。

    2) 方法

      a) 方法的声明

      public void method(int i,String str){

   //方法体

      }

      b) 方法的调用

      //产生对象

      A a = new A();

      String str = a.method(1,”leaf”);

      c) this关键字:表示当前类的对象。this()表示当前类的构造方法。这句话的调用只能放在构造方法的第一句。

      d) 构造方法:

      •     调用构造方法后,程序的执行步骤:

          l 开辟空间

          l 调用父类的构造方法

          l 初始化属性

          l 执行构造方法里面的代码

          l 备注:每个类都有个公共无参的构造方法,如果显示的写出有参的构造方法,那么默认无参的构造方法就会被覆盖,尽量把无参的构造方法显示的写出来

      •     作用:产生对象
      •     通过关键字new来调用
      •     特点:方法名和类名相同。没有返回类型。

二、

  1.概念:类是具有相同属性和行为的一组对象的集合。类时对象的抽象,对象是类的实例。

三、特征

  1.继承

    1) 概念:通过extends关键字,继承一个类的属性和方法,这种行为称为继承。

    2) 好处

      a) 重用:子类继承父类的所有的属性和方法,除了构造方法。

      b) 扩展:子类可以拥有自己的属性和方法。

    3) 备注:

      a) Java只能单根继承

      b) super

      •     调用父类的属性、方法和构造方法。
      •     super()调用构造方法,这句写在构造方法的第一句。
      •     默认情况下,子类都会隐式调用super()来访问父类的构造方法。如果父类的无参的构造方法被覆盖,那么在子类中就必须显示地调用super()来访问父类有参的构造方法。

      c) final

      •     final修饰类:类不能被继承。
      •       final修饰变量:常量。
      •     final修饰方法:方法不能被重写。

  2.封装

    1) 概念:将类中实现的细节隐藏起来的过程称为封装。

    2) 好处

      a) 重用。

      b) 利用分工。

      c) 隐藏实现的细节。

    3) 访问修饰符

      a) public:所有类都可以访问。

      b) protected同包及子类可以访问;

      c) 默认:同包的类可以访问。

      d) private:只可以本来中访问。

    4) 修改器和访问器

      a) set方法

      b) get方法

    5) 包(package)

      a) 作用

      •     便于类的管理
      •     用于区分相同名称的类

  3.多态

    1) 概念:相同的行为,不同的实现。

    2) 表现形式

      a) 静态多态

      •     重载:在一个类中,相同的方法不同的参数列表。参数列表不同:参数的个数、顺序和类型不同。

      b) 动态多态

      •     重写:在父类和子类之间,子类拥有和父类相同的方法名,相同的参数列表,相同的返回值类型,子类的访问修饰符不能小于父类的访问修饰符范围,子类的异常个数不能多于父类的异常个数。
      •     向上转型:子类的类型可以向上转换陈父类类型。这样的转换方式是安全的。当类型转换成父类的类型后,就只能看到父类的属性方法,向下转型需要使用;instanceof关键字:用来判断类型是否匹配
      •     动态绑定:运行是才能确定调用哪个方法
      •     具体应用:多态参数、乾坤袋

  4.抽象

    1) 抽象类

      a) 概念:用abstract修饰的类称为抽象类。

      b) 特点:

      •     不能被实例化。
      •       抽象类中可以没有抽象方法,但是一个类中有了一个抽象方法,那么这个类就必须是抽象类。
      •     当一个子类继承抽象类后,这个子类要么重写所有抽象方法,要么就称为抽象类。

      c) 优点:

      •     合理设计。
      •     对子类重写的方法进行强制规范。

    2) 接口

      a) 概念:

      •     同样属于抽象的一种结构,是用interface修饰的结构。
      •     在接口中所有的方法都是公共的抽象方法,所有的属性都是公共的静态常量。
      •     修饰关键字可以被省略。一个类可以利用implements来实现接口,这个类被称为接口的实现类。
      •     一个接口可以继承其他多个接口,不可以实现其他接口。

      b) 优点:合理设计

      •     对实现类重写的方法进行强制规范
      •     可以多重实现
      •     更能体现出灵活性和扩展性

      c) 接口和抽象类的区别:

      •     修饰符:抽象类用abstract修饰,接口用interface修饰。
      •     属性:抽象类黄金富豪和肺结核交话费合法化复合肥发发汗可以拥有任何类型的属性,接口只能拥有公共的静态常量。
      •     方法:抽象类可以拥有普通和抽象方法,接口只能有抽象方法。
      •     构造方法:抽象类可以有构造方法,接口不能有构造方法,他们都不能被实例化。
      •     继承或实现:抽象类只能单根继承,接口可以多重继承。
      •     Is/like:抽象类是is-a的关系,接口是like-a的关系。

四、静态

  1.概念

    1) 以static关键字修饰的方法和属性。

    2) 在类加载的时候进行初始化。

    3) 内存中静态变量和静态方法是存储在静态区中。

    4) 可以直接用类名.属性名或者类名.方法名来访问。

    5) 在Java中也把静态方法和静态属性称为类方法和类变量。

  2.静态属性

  3.静态方法

  4.静态块

    Public class Test(){

   Static{}

    }

五、数组

  1.概念:放置具有相同类型的多个数据,并且地址连续分布的结构成为数组。

  2.特点

    1) 长度固定

    2) 类型一致

    3) 内存地址连续分布

  3.分类

    1) 基本数据类型数组:数组中的元素为基本数据类型。

    2) 引用数据类型数组:数组中的每个元素都是引用数据类型。

  4.多维数组

    1) 概念:当数组中的每个元素又指向额是一个数组,那么这就是多为数组。