面向对象-主线一:类和对象、类和类的成员

类和对象

类(class)和 对象(object)是面向对象的核心概念

  1. 类:对一类事物的描述,是抽象的、概念上的定义。
  2. 对象:实际存在的该事物的每个个体,所以被称为实例(instance)
    其中匿名对象,调用的对象没有显式的赋值给一个引用变量

    类和类的成员

JAVA类及类的成员:属性、方法、构造器;代码块、内部类

类的成员之一:属性

属性又称为成员变量。与局部变量的区别参见《变量》

类的成员之一:方法

  1. 方法
    访问修饰符 返回值类型 方法名(){
    方法体
    return 返回值;
    }
  2. 访问修饰符:访问权限
  3. 返回值类型:没有返回在为void,或者定义返回值的类型(需要return)。
  4. 方法的重载(overload)
    在一个类中可以存在多个同名的方法,只要它的参数列表不一致。与返回值无关,只看参数列表
  5. 方法的重写(overwrite)
    子类继承父类之后,可以对父类的同名同参数的方法进行覆盖操作,叫做重写。
    重写后子类将调用自己重写的方法
    规定:
    子类和父类的方法名和形参列表必须一样
    子类的权限修饰符不小于父类(不能重写private的方法,不能重写static方法)
    子类的返回值是父类的返回值(或返回值的子类)
    子类抛出的异常只能是父类的的异常或者子类

    类的成员之一:构造器

1.功能
创建对象
初始化定义类的属性
2.说明
类会存在一个默认的构造器
自定义后就没有默认的构造器了
类中的多个构造器构成重载

类的成员之一:代码块

  1. 用来初始化类或者对象
  2. 静态代码块(static修饰)
    1. 随着类的加载而执行,而且只执行一次
      1. 类加载时初始化类变量
    2. 多个静态代码块,按顺序执行
    3. 只能调用静态的属性和方法
  3. 非静态代码块

    1. 随着对象的创建而执行,每创建一次对象就执行一次
      1. 可以在创建对象时对对象的属性进行初始化
    2. 多个代码块,按顺序执行
    3. 可以调用非静态的属性和方法

      类的成员之一:内部类

  4. java允许一个类A声明在另一个类B中,类A叫做类B的内部类。类B为外部类。

  5. 成员内部类:作为类:定义属性、方法、构造器、代码块、内部类修饰:final、abstract、static、四种权限修饰符可以调用外部类的成员
    1. 静态成员内部类
    2. 非静态成员内部类
  6. 局部内部类:方法内、代码块、构造器内
    4.如何实例化成员内部类
    静态内部类实例化:Person.innerClass inn = new Person.innerClass();
    非静态内部类实例化:Person p = new Person(); Person.innerClass inn = p.new innerClass();