this 关键字:
1.区分成员变量和同名局部变量
2.构造里面可以调用其他的构造函数 this();
访问修饰符:
public : 公共的 : 无论内部或外部都能访问
protected : 受保护的
default : 默认的
private :私有的,只有在该类的内容才能访问
封装:主要是针对成员变量的封装
封装的实现:
通过访问修饰符的限制实现。
把成员变量设置为私有的,并且为成员变量提供共有的set和get方法进行
对外访问。
构造方法:
实例化类对象用的方法
通过new 关键字调用,在内存中创建空间,把空间内存地址指向实例化对象。
构造方法可以定义多个。
析构方法:
释放对象空间的。
GC垃圾回收机制在回收资源之前调用。
一般情况下,不用处理,系统会自动调用。
面向对象的继承:存在继承关系的类,被继承的类称为父类,继承的类为子类;
范围:1.private修饰的变量不能被继承,private以外的可以被继承;
2.private修饰的成员方法不能被继承,private以外的成员方法可以被继承;
3.构造方法不能继承。
子类和父类的关系: is a 属于。
extens:关键字,表示类的继承关系。
Object类:
超类:所有的类都直接或间接继承了Object类。
boolean equals(Object obj);
int hascode();
也可以称之为:万类之父。
属性的隐藏:当子类定义了和父类相同的成员变量的时候,父类的成员变量会自动隐藏。
super关键字:用于指向父类的引用,代表父类的实例化对象。
super关键字在子类的构造器或方法中使用。
1.super([参数列表]):调用父类的构造函数,在子类构造函数中使用;
2.通过super关键字调用父类成员变量;
3.通过super关键字调用父类的成员方法。
this关键字:当前类的一个内置对象,this实例化的对象的引用。
作用:1.this([参数类别]); 调用当前类的构造函数;
2.区别成员变量和名称相同的局部变量;
3.通过this关键字调用成员方法
多态:面向对象中,一个方法的多种心态。
方法的重载:
public void add(int i,int j){
int sum = i + j;
System.out.println("求和:" + sum);
}
public void add(int i,int j, int k){
int sum = i + j + k;
System.out.println("求和:" + sum);
}
1.方法名相同 2.参数不同:参数个数,参数类型,不同 3.必须在一个类中
方法的重写:
1.存在于继承关系的类中 子类--父类
2.方法名,参数列表,参数类型,返回至完全一致
3.访问修饰符子类必须大于或等于父类
4.@Override :注解,代表方法的重写
方法的调用:根据new关键字后面调用的类的实例确定谁的方法。
面试题:
方法的重载和重写有什么区别?
1.方法的重载必须在同一个类中,方法的重写存于继承关系的子类和父类中
2.方法的重载是各方法的参数列表不同,重写的参数完全一样
3.权限(访问)修饰符,重载的访问修饰符完全一样,重写的方法的子类的访问修饰符大于或等于父类权限修饰符!