JAVA内容回顾(二)——面向对象(OOP)

时间:2021-03-03 14:36:11

1.类与对象

  类:类指的是同种对象的抽象,看不见摸不着的。包含有属性与方法。

  对象:是类的具体实现,看的见摸得着的东西。

  类是对象的抽象,对象是类的具体实现。

2.访问修饰符

  public:在项目的任何地方都可以用。

  protected:在类中、包中、子类中。

  默认:在类中、同包中可以使用。

  private:只能在本类中使用。

3.封装:公开对外的接口,隐藏内部的具体实现。

  (1)私有化属性。

  (2)为属性提供一个公共的get与set方法。

  (3)其他操作。

4.构造方法:(构造函数)实例化对象的时候调用的方法,实例化对象。

  在一个类中如果没有显示的定义构造方法,系统会默认个一个不带参数的构造方法。

5.类中的方法:

  访问修饰符 返回值类型 方法名(参数列表){

  return 返回值类型的对象  

  }

6.形参与实参

  形参:形式参数:方法定义的时候才有的说法,类型变量名。

  实参:实际有值得参数,在调用方法的时候才有的说话,一个已经赋值的变量。

7.构造方法的重载

  同一个名字的方法在一个类中只能出现异常,如果出现多次,参数列表必须要不一样。

  如果一个一个类中同名的方法出现了多次,那么这些方法就叫做方法的重载。

  java会根据参数列表自动的去匹配对应的方法。

8.static关键字

  static关键字修饰的属性属于类所有,被对象所共享 在类加载的时候初始化。

  static关键字修饰的方法属于类所有(静态方法),必须创建对象通过对象调用。

  非静态的方法中可以使用非静态的属性和方法、已经静态的属性和方法。

  优先性:

      静态属性>静态代码块>静态方法>非静态属性>非静态代码块>非静态方法

      静态属性、静态代码块、静态方法都只会在类加载的时候执行一次

  总结:对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。

9.继承:子类可以沿用父类的某些行为与特征的的一种形式的实现,易于程序的扩展。

  关键字extends

  this指当前对象,可以访问本类中的属性与方法,同时也可以访问父类中的可以访问的属性和方法(public proctected修饰的)。

  super指的是父类对象,可以访问父类中的可以访问的方法。

  注意:super与this都可以条用对应的类中的构造方法,但是出现在构造方法中只能出现在第一行。

  子类可以继承父类中public、proctected访问修饰符所修饰的属性与方法,不能继承private、 默认 访问修饰符修饰的方法还有构造方法不能被继承。

  父类类型指向子类对象:

      父类类型 对象名= new 子类类型();

      子类类型的对象可以用一个父类类型的变量去接收,但是接收后只能使用父类中的可以使用的属性与方法。

      若要使用子类对象的方法与属性必须要进行强制类型转换。

  继承的特点:

  继承具有单一性。一个类只能有一个父类。

  继承具有传递性:一个类不仅仅可以使用其直接父类的属性与方法还可以使用其父类的父类的属性与方法。

9.final关键字

  final关键修饰的变量叫做常量,常量在声明的时候必须赋初始值。常量的变量名一般都是全大写。

  final修饰的方法是最终的方法,不可以被重写。

  final修饰的类是最终的类,不能被继承。

10.多态:同种方法的实现效果不同

  实现多态的两种方式:重载与重写

  重载:在同一个勒种,方法名一样、参数列表不一样包括数量、顺序、类型,与返回值类型没有关系。

  重写:在有父子关系的多个类中,方法名一样、参数列表一样、子类的返回值类型只能小于等于父类的返回类型且访问修饰符不能比父类的访问范围小。

11.抽象类:相当于一个类的模板,用于类的扩展,或者说是父类对子类的规定(这个规定就是抽象方法)

  抽象类的语法:

  abstract class 类名{}

  特点:

  1.在抽象类中可以有抽象的方法也可以没有抽象方法,也可以有方法的具体实现。

  2.有抽象方法的类必须是抽象类。

  3.子类继承抽象类之后必须要实现抽象类中的抽象方法,除非子类也是抽象类。

  4。抽象类可以有构造方法,但是不能被实例化。

12.接口:接口里面只有常量和方法的声明

  特点:

  1.接口使用interface关键字修饰。

  2.接口中只有常量和方法的声明。

  3.接口支持多继承。

  4.要实现接口必须要实现接口中所有的方法与声明。

  5.一个类可以实现多个接口 。

  6.接口不能有构造方法,而且接口不能实例化。

  7.接口中的常量的public static final可以省略。

  8.接口中的方法可以省略public abstract。

  9.实现接口的关键字mplements。