面向对象-主线一:类和对象、类和类的成员
类和对象
类(class)和 对象(object)是面向对象的核心概念
- 类:对一类事物的描述,是抽象的、概念上的定义。
- 对象:实际存在的该事物的每个个体,所以被称为实例(instance)
其中匿名对象,调用的对象没有显式的赋值给一个引用变量类和类的成员
JAVA类及类的成员:属性、方法、构造器;代码块、内部类
类的成员之一:属性
属性又称为成员变量。与局部变量的区别参见《变量》
类的成员之一:方法
- 方法
访问修饰符 返回值类型 方法名(){
方法体
return 返回值;
} - 访问修饰符:访问权限
- 返回值类型:没有返回在为void,或者定义返回值的类型(需要return)。
- 方法的重载(overload)
在一个类中可以存在多个同名的方法,只要它的参数列表不一致。与返回值无关,只看参数列表 - 方法的重写(overwrite)
子类继承父类之后,可以对父类的同名同参数的方法进行覆盖操作,叫做重写。
重写后子类将调用自己重写的方法
规定:
子类和父类的方法名和形参列表必须一样
子类的权限修饰符不小于父类(不能重写private的方法,不能重写static方法)
子类的返回值是父类的返回值(或返回值的子类)
子类抛出的异常只能是父类的的异常或者子类类的成员之一:构造器
1.功能
创建对象
初始化定义类的属性
2.说明
类会存在一个默认的构造器
自定义后就没有默认的构造器了
类中的多个构造器构成重载
类的成员之一:代码块
- 用来初始化类或者对象
- 静态代码块(static修饰)
- 随着类的加载而执行,而且只执行一次
- 类加载时初始化类变量
- 多个静态代码块,按顺序执行
- 只能调用静态的属性和方法
- 随着类的加载而执行,而且只执行一次
非静态代码块
- 随着对象的创建而执行,每创建一次对象就执行一次
- 可以在创建对象时对对象的属性进行初始化
- 多个代码块,按顺序执行
- 可以调用非静态的属性和方法
类的成员之一:内部类
- 随着对象的创建而执行,每创建一次对象就执行一次
java允许一个类A声明在另一个类B中,类A叫做类B的内部类。类B为外部类。
- 成员内部类:作为类:定义属性、方法、构造器、代码块、内部类修饰:final、abstract、static、四种权限修饰符可以调用外部类的成员
- 静态成员内部类
- 非静态成员内部类
- 局部内部类:方法内、代码块、构造器内
4.如何实例化成员内部类
静态内部类实例化:Person.innerClass inn = new Person.innerClass();
非静态内部类实例化:Person p = new Person(); Person.innerClass inn = p.new innerClass();