
正文
JAVA(2)之关于类的访问权限控制
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
-
类的成员的四种访问权限
-
private
- 只能在当前类中访问
-
无修饰
- 同一个包中的类都可以访问
-
protected
- 同一个包中的类可以访问
- 不同包中的子类可以访问
-
public
- 所有类都可以访问
-
private
-
示例代码
-
同包
-
package com.study.main;
//同包非子类 public class Two
{
private int a;
protected int b;
public int c;
int d;
} -
package com.study.main;
//同包子类
public class Son extends Main
{ } -
package com.study.main;
//测试类
import com.study.one.One;
import com.study.one.SonOne; public class Main
{
private int a;
protected int b;
public int c;
int d; public static void main(String[] args)
{
Main m = new Main();//同一类
System.out.println("同一类");
System.out.println(m.a);//private
System.out.println(m.b);//protected
System.out.println(m.c);//public
System.out.println(m.d);//无修饰 Son s = new Son();//同一包中的子类
System.out.println("同一包中的子类");
// System.out.println(s.a);//private无法访问
System.out.println(s.b);//protected
System.out.println(s.c);//public
System.out.println(s.d);//无修饰 Two t = new Two();//同一包中的非子类
System.out.println("同一包中的非子类");
// System.out.println(t.a);//private无法访问
System.out.println(t.b);//protected
System.out.println(t.c);//public
System.out.println(t.d);//无修饰 SonOne so = new SonOne();//不同包中的子类
System.out.println("不同包中的子类");
// System.out.println(so.a);//private无法访问
System.out.println(so.b);//protected
System.out.println(so.c);//public
// System.out.println(so.d);//无修饰无法访问 One o = new One();//不同包中的非子类
System.out.println("不同包中的非子类");
// System.out.println(o.a);//private无法访问
// System.out.println(o.b);//protected无法访问
System.out.println(o.c);//public
// System.out.println(o.d);//无修饰无法访问 }
}
-
-
不同包
-
package com.study.one;
//不同包非子类
public class One
{
private int a;
protected int b;
public int c;
int d;
} -
package com.study.one;
//不同包子类
import com.study.main.Main; public class SonOne extends Main
{ }
-
-
运行截图
-
-
同包
-
总结
- 当前类的都可以访问
- 同一个包中的类除了private不能访问
- 不同包中的子类只有public和protected可以访问
- 不同包中的非子类只有public可以访问
-






