Java权限修饰符之public
一、可以修饰的成员
1、public 可以修饰类
//public 修饰类
public class PublicTest {
public static void main(String[] args) {
System.out.println("hello world");
}
}
2、public 可以修饰变量
public class PublicTest {
//public 修饰变量
public String str = "hello world";
public static void main(String[] args) {
System.out.println("hello world");
}
}
3、public 可以修饰方法
public class PublicTest {
//public 修饰方法
public void test(){
System.out.println("hello world");
}
public static void main(String[] args) {
PublicTest pt = new PublicTest();
pt.test();
}
}
4、public 可以修饰构造方法
public class PublicTest {
//public 修饰构造方法
public PublicTest(){
System.out.println("构造方法");
}
public static void main(String[] args) {
PublicTest pt = new PublicTest();
}
}
总结:public 除了不能修饰代码块外,其它的类成员都可以修饰
二、访问范围
1、本类中访问
/**public 修饰的成员在本类中可以正常访问*/
public class PublicTest {
//public 修饰变量
public String str = "public 修饰的变量";
//public 修饰方法
public void test(){
System.out.println("public 修饰的方法");
}
public static void main(String[] args) {
PublicTest pt = new PublicTest();
System.out.println(pt.str);
pt.test();
}
}
2、同包中的类访问
package mjl20200511;
public class PublicTest {
//public 修饰变量
public String str = "public 修饰的变量";
//public 修饰方法
public void test(){
System.out.println("public 修饰的方法");
}
}
package mjl20200511;
/**public 修饰的成员在同包的类中可以正常访问*/
public class TestMain {
public static void main(String[] args) {
PublicTest pt = new PublicTest();
System.out.println(pt.str);
pt.test();
}
}
3、子类中访问
package mjl20200511;
public class PublicTest {
//public 修饰变量
public String str = "public 修饰的变量";
//public 修饰方法
public void test(){
System.out.println("public 修饰的方法");
}
}
package mjl20200511.mjl;
import mjl20200511.PublicTest;
/**public 修饰的成员在子类中可以正常访问*/
public class PublicTestSub extends PublicTest {
public static void main(String[] args) {
PublicTest pt = new PublicTest();
System.out.println(pt.str);
pt.test();
}
}
4、其它类访问
package mjl20200511;
public class PublicTest {
//public 修饰变量
public String str = "public 修饰的变量";
//public 修饰方法
public void test(){
System.out.println("public 修饰的方法");
}
}
package mjl20200511.mjl;
import mjl20200511.PublicTest;
/**public 修饰的成员在其它类中可以正常访问*/
public class PublicTestOther {
public static void main(String[] args) {
PublicTest pt = new PublicTest();
System.out.println(pt.str);
pt.test();
}
}
总结:public修饰的成员在任意位置都可以访问