修饰符分为访问修饰符合非访问修饰符
访问修饰符用来控制类,属性,方法的访问权限。
访问控制符
1.访问控制符可以让我们很方便的控制_类________、 __属性____ 和___方法____的权限。
2.当需要让自己编写的类被所有的其他类访问时,就可以将类的访问控制符声明为__public________。
3.当需要让自己的类只能被自己的包中的类访问时,就可以 _默认_____访问控制符。
4.当需要控制一个类中的成员数据时,可以将这个类中的成员数据访问控制符设置为___private_______,
5.在下表中填入相关访问修饰符权限能访问用yes,不能用no
修饰符 本类 子类 同一包 不同包
public __yes__ _yes___ _yes___ _yes___
private ___yes_ ____ ____ ____
缺省 __yes__ ____ __yes__ ____
protected _yes___ __yes__ __yes__ ____
非访问修饰符final,为最终的,用final修饰的变量,方法,属性,不能改变,为最终的状态;
重点:static
一个类中静态方法中不能调用非静态的变量,可以通过对象来调用
一个类的静态方法只能访问静态变量;
例如
package com.scxh.xuexi;
public class Text1 {
static int i = 10;//静态
int j;//非静态
Text1() {
this.j = 20;
}
public static void main(String[] args) {
System.out.println("类变量 i=" + Text1.i);//静态方法可以直接调用静态变量i
Text1 obj = new Text1();//一个类中静态方法中不能调用非静态的变量,可以通过对象来调用
System.out.println("实例变量 j=" + obj.j);
}
}
一个类的静态方法只能访问静态变量;
一个类的静态方法不能够直接调用非静态方法;
如访问控制权限允许,静态变量和静态方法也可以通过对象来访问,但是不被推荐;
静态方法中不存在当前对象,因而不能使用 this,当然也不能使用 super;
静态方法不能被非静态方法覆盖;
构造方法不允许声明为 static 的;
局部变量不能使用static修饰。