一:权限修饰符
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨
protect ∨ ∨ ∨ ×
default ∨ ∨ × ×
private ∨ × × ×
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
default: 这个访问权限可能是很多人容易所忽视的,即不写任何关键字。默认权限(同包权限)即:包内可访问,包外不可访问,不管是子类还是没有继承关系的类。
private: 只能在当前类中使用,外部不能访问。
二:static
static关键字的特点
a:随着类的加载而加载
b:优先于对象存在
c:被类的所有对象共享
public class Student {
public String name;
public static int num;
public static void show() {
System.out.println("这是一个静态的show()方法");
}
public void test() {
System.out.println(name);
System.out.println(num);
}
public static void show2() {
System.out.println(num);
// System.out.println(name);
}
public void test2() {
Student.show();
this.show();
this.test();
}
public static void test3() {
Student.show();
show();
//test();
}
}
public class MyTest {
public static void main(String[] args) {
Student.num=100;
Student student = new Student();
System.out.println(student.num);
System.out.println(Student.num);//推荐使用类名调用
student.show();
Student.show();//静态方法,使用类名直接可以调用
}
}
运行结果:
100
100
这是一个静态的show()方法
这是一个静态的show()方法
注释:
静态的方法,只能访问静态的成员变量,非静态的成员变量访问不到,因为非静态的成员变量是对象创建完成之后才有,而静态的是随着类的加载就存在了,先存在访问不到后存在的
而非静态的既可以访问静态的也可以访问静态的。
静态方法里面不能出现this,this代表是本类对象,对象也是后来才存在的
静态方法建议使用类名来调用。
三.this,super
this表本类的一个引用,谁调用就代表谁
super:可以看作是父类的存储空间的标识
**this和super的使用
a:调用成员变量
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
b:调用构造方法
this(...) 调用本类的构造方法
super(...) 调用父类的构造方法
c:调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法