Java权限修饰符(四)之private
一、可以修饰的成员
1、可以修饰变量
public class PrivateTest {
//private 修饰的变量
private String str = "hello world";
public static void main(String[] args) {
System.out.println("hello world");
}
}
2、可以修饰方法
public class PrivateTest {
//private 修饰的方法
private void test(){
System.out.println("hello world");
}
public static void main(String[] args) {
PrivateTest pt = new PrivateTest();
pt.test();
}
}
3、可以修饰构造方法
public class PrivateTest {
//private 修饰的构造方法
private PrivateTest(){
System.out.println("hello world");
}
public static void main(String[] args) {
PrivateTest pt = new PrivateTest();
}
}
总结:private不可以修饰类和代码块,可以修饰变量,方法和构造方法(与protected一致)
二、访问范围
1、本类中访问
public class PrivateTest {
//private 修饰的变量
private String str = "hello world";
//private 修饰的方法
private void test(){
System.out.println("hello world");
}
public static void main(String[] args) {
PrivateTest pt = new PrivateTest();
System.out.println(pt.str);
pt.test();
}
}
2、同包的类访问
package mjl2020051801;
public class PrivateTest {
//private 修饰的变量
private String str = "hello world";
//private 修饰的方法
private void test(){
System.out.println("hello world");
}
}
package mjl2020051801;
public class TestMain {
public static void main(String[] args) {
PrivateTest pt = new PrivateTest();
//System.out.println(pt.str);//不可以访问
//pt.test();//不可以访问
}
}
3、子类中访问
package mjl2020051801;
public class PrivateTest {
//private 修饰的变量
private String str = "hello world";
//private 修饰的方法
private void test(){
System.out.println("hello world");
}
}
package mjl2020051801.mjl;
import mjl2020051801.PrivateTest;
public class PrivateTestSub extends PrivateTest {
public static void main(String[] args) {
PrivateTest pt = new PrivateTest();
//System.out.println(pt.str);//不可以访问
//pt.test();//不可以访问
}
}
4、其它类访问
package mjl2020051801;
public class PrivateTest {
//private 修饰的变量
private String str = "hello world";
//private 修饰的方法
private void test(){
System.out.println("hello world");
}
}
package mjl2020051801.mjl;
import mjl2020051801.PrivateTest;
public class PrivateTestOther {
public static void main(String[] args) {
PrivateTest pt = new PrivateTest();
// System.out.println(pt.str);//不可以访问
// pt.test();//不可以访问
}
}
总结:
1、被private修饰的成员,在本类中可以正常访问
2、被private修饰的成员,在同包的类中是不可以访问的
3、被private修饰的成员,在子类中是不可以访问的
4、被private修饰的成员,在其他类中是不可以访问的
~~只有在本类中才可以访问~~