java入门--面向对象

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)对象的类是比较的类的子类:

你可能感兴趣的:(java入门--面向对象)