【JAVA】自学笔记-02-类和对象-封装-继承-static-final-super

具体包括

  • 面向对象基本思想基本讲解
  • 如何创建、使用对象
  • 类中变量和方法的使用与理解
  • 构造函数与Java的垃圾收集机制
  • static与this关键字的理解
  • 类的组合以及包的创建和使用

一、面向对象编程的三个特性

  1. 封装

    面向对象编程核心思想之一就是将数据和对数据的操作封装在一起。通过抽象从具体的实例中抽取共同的性质形成一般的概念,比如类的概念。
    人们经常谈到的机动车类就是从具体的实例中抽取共同的属性和功能形成的一个概念,那么一个具体的轿车就是机动车类的一个实例,即对象。
    一个对象将自己的数据和对这些数据的操作合理有效地封装在一起,例如,每辆轿车调用“加速”、“减速”改变的都是自己的运行速度。

  2. 继承

    继承体现了一种先进的承接历史的编程模式。子类可以继承父类的属性和功能,即继承了父类所具有的数据和对数据的操作,同时又可以增添子类独有的数据和对数据的操作。

  3. 多态

    多态是面向对象编程的又一重要特征。
    有两种意义的多态。
    一种是操作名称的多态,即有多个操作具有相同的名字,但这些操作所接收的参数类型必须不同。
    另一种多态是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为。

类的定义语法

[类的修饰符] class 类名 [extends 父类名]{
	
		//类体

}
  1. 类的修饰符:定义了类间的访问特性
  2. extends:表示所声明的类继承的父类,若没有声明则默认继承Object类
  3. 类体:声明类的成员,其中包括成员变量,成员方法和构造函数

类体

  • 成员变量(域)
    一个类的数据属性由它的成员变量(域)定义
[成员变量修饰符]  类型 成员变量名;

成员变量修饰符:
public private protected package(default) static final...

【JAVA】自学笔记-02-类和对象-封装-继承-static-final-super_第1张图片

  • 方法声明格式:
[修饰符] 返回类型 方法名 ([形式参数表]){
	//方法体
}
  • 构造函数:
  1. 构造方法必须与其类名相同,不必写返回类型
  2. 构造方法没有返回值,但可以有参数,并且可以重载
  3. 构造方法只能在创建对象时用new命令调用

static关键字的使用

  1. 不能将任何方法体内的局部变量声明为静态
  2. 静态方法不能以任何方式引用this和super关键字
  3. 讲台方法中只能直接调用同类中其他的静态成员(包括方法和变量),二不能直接访问类中的非静态成员

二、类的继承

  • 子类享有父类的属性和方法并且还存在一定的属性和方法的扩展
  • JAVA允许多重继承,但不支持多继承
  • private类型的属性和方法不能被继承
  • 若子类和父类在同一个包内,子类可以继承父类中的public protected default成员变量和方法
  • 若不在同一个包内,可以继承public protected的成员变量和方法
class 子类 extends 父类{


}

隐藏与重写

  1. 变量只能被隐藏(包括静态和非静态),不能被重写
  2. 可以用子类的静态变量隐藏父类的静态变量,也可以用子类的非静态变量隐藏父类的静态变量
  3. 静态方法只能被隐藏,不能被重写
  4. 不能用子类的静态方法隐藏父类中的非静态方法
  5. 不能用子类的非静态方法覆盖父类中的静态方法

super的两个用法

super 可以用来引用父类的成分

  1. 引用父类的成员
    super.var super.func
  2. 在子类构造方法中调用父类的构造方法

调用super()必须写在子类构造方法的第一行

final

  • 表示该属性一旦被初始化便不可改变
    1. 对基本类型来说是其值不可变
    2. 对对象属性来说是其引用不可变,引用空间的值是可以改变的
  • final修饰属性必须初始化,初始化可在定义处或构造函数中
  • 修饰方法时可继承,但不可重写
  • 修饰类时,不可继承,更不能重写

你可能感兴趣的:(Java)