Java权限修饰符(五)之“缺省”
一、可以修饰的成员
1、可以修饰类
//“缺省”修饰的类
class DefaultTest {
public static void main(String[] args) {
System.out.println("hello world");
}
}
2、可以修饰变量
package mjl2020051802;
class DefaultTest {
//“缺省”修饰的变量
String str = "hello world";
public static void main(String[] args) {
System.out.println("hello world");
}
}
3、可以修饰方法
class DefaultTest {
//“缺省”修饰的方法
void test(){
System.out.println("hello world");
}
public static void main(String[] args) {
DefaultTest dt = new DefaultTest();
dt.test();
}
}
4、可以修饰构造方法
class DefaultTest {
//“缺省”修饰的构造方法
DefaultTest(){
System.out.println("hello world");
}
public static void main(String[] args) {
DefaultTest dt = new DefaultTest();
}
}
总结:“缺省”可以修饰任何成员
二、访问范围
1、本类中访问
class DefaultTest {
//“缺省”修饰的变量
String str = "hello world";
//“缺省”修饰的方法
void test(){
System.out.println("hello world");
}
public static void main(String[] args) {
DefaultTest dt = new DefaultTest();
System.out.println(dt.str);
dt.test();
}
}
2、同包的类中访问
package mjl2020051802;
class DefaultTest {
//“缺省”修饰的变量
String str = "hello world";
//“缺省”修饰的方法
void test(){
System.out.println("hello world");
}
}
package mjl2020051802;
public class TestMain {
public static void main(String[] args) {
DefaultTest dt = new DefaultTest();
System.out.println(dt.str);
dt.test();
}
}
3、子类中访问
package mjl2020051802;
class DefaultTest {
//“缺省”修饰的变量
String str = "hello world";
//“缺省”修饰的方法
void test(){
System.out.println("hello world");
}
}
package mjl2020051802;
public class DefaultTestSub extends DefaultTest {
public static void main(String[] args) {
DefaultTest dt = new DefaultTest();
System.out.println(dt.str);
dt.test();
DefaultTestSub dts = new DefaultTestSub();
System.out.println(dts.str);
dts.test();
}
}
4、其它类中访问
package mjl2020051802;
public class DefaultTest {
//“缺省”修饰的变量
String str = "hello world";
//“缺省”修饰的方法
void test(){
System.out.println("hello world");
}
}
package mjl2020051802.mjl;
import mjl2020051802.DefaultTest;
public class DefaultTestOther {
public static void main(String[] args) {
DefaultTest dt = new DefaultTest();
//System.out.println(dt.str); //不可以访问
//dt.test();//不可以访问
}
}
总结:
1、被“缺省”修饰的成员,在本类中是可以正常访问的
2、被“缺省”修饰的成员,在同包的类中是可以正常访问的
3、被“缺省”修饰的成员,在子类中如果子类与父类同包,则子类对象和父类对象都可以访问,如果子类与父类不同包,则子类对象和父类对象都不可以访问
4、被“缺省”修饰的成员,在其它类中不可以被访问
注:被“缺省”修饰的类,在同包中可以引入,在非同包中不可以引入