Skip to content

Latest commit

 

History

History
99 lines (63 loc) · 3.24 KB

06-关键字&单例&继承.md

File metadata and controls

99 lines (63 loc) · 3.24 KB

static 关键字

  1. 修饰成员变量

类变量和实例变量的区别

  • 类变量使用 static 修饰,实例变量没有
  • 类变量的值的值作用于整个类,实例变量的值作用于某个对象
  • 类变量的操作可以使用对象名.变量名,也可以使用类名.变量名;实例变量只可以使用对象名.变量名操作
  1. 修饰成员方法

    类方法和实例方法的区别

    • 类方法使用 static 修饰,实例方法没有
    • 类方法只可以调用类变量和类方法,实例方法可以调用类变量和类方法,也可以调用实例变量和实例方法
    • 类方法可以使用对象名.方法调用,也可以使用类名.方法名调用;实例方法只可以使用对象名.方法名调用
  2. 修饰代码块

    先执行静态的代码块,然后执行普通的代码块,最后执行构造器

    静态代码块在创建多个对象时,只在第一次创建对象时执行一次,以后不再执行

访问修饰符

限制访问权限

public(公共的),protected(受保护的),缺省的,private(私有的)

  1. 修饰成员变量和方法

    • 在同类中,可以访问所有的属性和方法
    • 在同包,不同类中,可以访问非私有的属性和方法
    • 在不同包中,只可以访问公共的属性和方法
    • 在不同包中的子类中,可以访问公共的和受保护的属性和方法
  2. 修饰构造器 同上

  3. 修饰类(public 缺省的)

    公共的类,可以在同包和不同包中访问;缺省的类,只可以在同包中被访问

封装(私有化)

为了信息的安全,把所有的属性全部私有化,提供公共的 get 和 set 方法

以后所遇到的所有的属性必须全部私有化

文件夹

package 包名; // 要放在整个文件的第一行

单例模式(该类只能创建唯一的一个对象)

public class A {
    // 定义一个私有的静态的属性来保存该类创建的唯一的对象
    private static A aa = new A();
    // 私有化构造器,防止在外界被调用
    private A() {}
    // 提供一个公共的静态方法,来返回该类唯一的对象
    public static A getInstence() {
        return aa;
    }
}

继承

从一个类(父类)中派生出另一个类(子类)

格式:

public class 子类名 extends 父类名 {
    类体
}

子类可以继承父类中所有的非私有的属性和方法,也可以自己扩展自己独有的属性和方法

子类不可以继承父类的构造器

单继承(一个子类对象对应一个父类对象)

方法的重写:

  • 在子类继承父类中,方法名相同,返回值相同,参数列表相同(个数相同,数据类型相同,顺序相同)
  • 子类的访问修饰符大于或等于父类的访问修饰符

super 关键字(父类对象)

  1. 当子类的属性和方法与父类的属性和方法重名时,可以使用 super 来调用父类隐藏的属性和方法
  2. 在子类的构造器中,可以使用 super 来指定父类的哪个构造器来创建一个父类对象与子类对象一一对应
  3. 在子类创建对象时,系统会自动指定父类的无参的构造器来创建父类对象与子类对象一一对应