修饰符中有默认修饰符、可见性修饰符、限定修饰符等
1、默认修饰符使包中的类,方法,数据域只能在本包内使用,而不能再用于其它包;eg:
2、公共性修饰符(public),不仅能让类,方法,数据域在本包内使用,还能让其它包使用;eg:
3、私有修饰符(private)只能让类中的方法和数据域在本类中使用,而不能在其它类中使用;
故限定修饰符只能用在类的成员上,不能用在整个类上,eg:
限定性修饰符在数据的私有性上有广泛的应用,为了使用户不能随便更改数据域(不正当使用数据域),程序常常要将数据域限定为私有性
而当用户想要使用数据域时,就用公共性方法获得,或改变数据域的值,此方法就叫做数据域的封装;而如果我们想更新数据域时,就要用到一种修改方法,例如下面程序中的Modifier_test15()方法;eg:
直接引用类中的数据域number是错误的,故只能通过方法Modifier_test15()来取值和计算.
4、protected修饰符:允许子类访问定义在父类中的数据域和方法,但不允许非子类访问这些数据域和方法
protected修饰符能使本报包内的数据和方法被本包中的类引用。eg:
package 第11章;
public class PROTECTED {
static int a;
public static int b;
private static int c;
protected static int d;
}
package TesT;
import 第11章.PROTECTED;
public class PROTECTED1 extends PROTECTED {
public static void main(String[] args){
//输入a = 78;将显示错误
b = 78;
//输入c = 78;将显示错误
d = 78;
}
}
数据和方法的可用性如下所示:
修饰符 | 在同一类可访问 | 在同一包中可访问 | 在子类可访问 | 在不同包可访问 |
public | √ | √ | √ | √ |
protacted | √ | √ | √ | × |
默认修饰符 | √ | √ | × | × |
private | √ | × | × | × |
5、final(最终)修饰符;
被final修饰的类和方法是不能被扩展的,被修饰的方法是可以访问的,但不能被重写,修饰的数据域是常数,不能做第二次赋值;称被final修饰的类为最终类
final class FINAL {
}
//class p extends FINAL{ }程序显示错误
6、abstract(抽象)修饰符
被abstract修饰的类不能生成对象,必须被继承eg:
abstract class ABSTRACT {
}
class l extends ABSTRACT{
}
class o{
//ABSTRACT s1 = new ABSTRACT();错误
l s2 = new l();
}
修饰符private,protected能用于类的成员(数据域和方法)上;abstract能用于类的本身;默认修饰符,修饰符public能用于类的本身,类的成员;修饰符final能用于类的本身,类的成员,局部变量。