1. static 静态修饰符
-- static修饰的成员变量;
静态修饰符修饰的成员变量说明是一个共性的变量,该成员变量存在于方法区中的共性数据区中,并且只有一份,也就是在类加载的就已经被创建,优先于该类的对象创建;
因此可以直接使用类名的标识符去访问该变量,也可以在类被实例化后用对象名曲访问该办理;
静态成员变量的访问方法:
方式一: 可以使用对象访问
对象名.静态属性名;
方式二: 使用类标识符访问
类名.静态属性名
注意:
+ 非静态成员变量不能使用类名直接访问,要使用对象名访问;
+ 千万不能为了访问方便而把变量定义为静态变量;
-- static 修饰的成员方法
静态方法访问方式:
方式一: 可以使用对象访问
对象名.静态属性名;
方式二: 使用类标识符访问
类名.静态属性名
静态方法要注意的细节:
1. 非静态函数只能由对象调用,静态函数可以由类名或是对象名进行调用:
2. 静态成员方法不能直接访问非静态成员,静态成员方法可以直接访问静态成员;
3. 非静态函数可以直接访问静态成员和非静态成员变量:
4. 静态成员中不能出现super和this关键字;
2. 单例设计模式:
定义:保证一个类在内存中只有一个对象
饿汉设计模式步骤:
(1)私有化类的构造函数; --> 禁止调用构造器实例化对象,如果能调用构造函数就可以new出多个对象;private
(2)声明本类的私有的静态的引用类型变量并且指向该类的实例化对象:--> 私有的保证不被访问到,静态的确保只有一份; private static
(3) 通过静态公开的方法将步骤2的对象公开出去; --> 公开才能被访问,静态的才能访问静态的变量 public static
懒汉设计模式步骤:
(1)私有化本类的构造方法,private, 防止被访问而构造对象
(2)声明本类的私有的静态的引用类型变量,但是不赋值:
(3)提供一个公有地静态的方法类访问步骤2的对象,先做判断该对象是否存在,如果存在就直接返回,不存在就创建并返回;
3. 继承
继承是通过 extends 关键字类实现的
子类 extends 父类
继承注意的事项:
(1)父类的私有成员不能被继承;
(2)父类的构造函数不能不继承;
(3)创建子类对象时,默认会先调用父类的无参构造函数:
4. super关键字
super关键字代表的是父类的引用空间
(1) 如果子类父类存在同名的成员时,子类默认访问的子类的成员,但是可以通过super关键字访问父类的成员:
(2) 创建子类成员时,默认会先调用父类的无参构造函数,可以通过super调用父类中指定的构造函数;
注意事项;
(1) 如果在子类的构造函数中,没有指定调用父类的构造函数,那么jvm会在子类构造函数中加上super()
(2) super关键字调用构造函数时必须在构造函数中第一个位置;
(3) this和super调用构造函数的时候不能同时出现在第一个位置;
5. 方法重写
定义:当父类的方法无法满足子类的需求时,就需要对父类的方法进行重写;
注意事项:
1. 函数名与形参必须与父类一致:
2. 重写后的子类函数的访问权限必须大于或等于父类,构造失去重写的意义:
3. 子类的返回值类型必须小于或等于父类的返回值类型;
4. 子类抛出的异常必须等于或小于父类抛出的异常类型:
6. instanceof 判断一个对象是否属于某种类型
使用格式:
对象 instance 类;
使用前提:
(1)对象时由该类直接实例化得到的;
(2)对象的类是比较的类的子类: