java中访问修饰符

Posted youxin2012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中访问修饰符相关的知识,希望对你有一定的参考价值。

较之c++ 中 public,proctected, private 三种访问控制, java多了默认访问控制。
java中四种访问控制权限 简单描述为一下四句:
1)private 仅本类可见 (同c++)
2)默认 对本包可见/包内访问 (c++没有)
3)protected 对本包和所有子类可见 (c++中没有本包概念,较 默认访问 可以被在其他包下的子类访问)
4)public 对所有类可见 (同c++)

其中1)4)与c++相同,对2)3)做简单测试

3)protected 对本包可见测试如下:

package com.behavior;
public class Parent 
    protected int i = 3;
package com.behavior;
//与Parent在同一个包下,无继承关系
public class Children 
    public void action() 
        Parent parent = new Parent();
        System.out.print(parent.i);
    
package com.stratege;
import com.behavior.Children;
public class ChildrenTest 
        public static void main(String [] args) 
            Children children = new Children();
            children.action();
        

验证:protected 对包内访问的权限

2)默认 对包内访问测试
将Parent中变量i 访问权限做如下修改,Children, ChildrenTest不变

package com.behavior;
public class Parent 
    int i = 3;

验证:默认对包内访问的权限

以上是关于java中访问修饰符的主要内容,如果未能解决你的问题,请参考以下文章

在Java和c#中如果不写访问修饰符,类和类成员默认的是啥访问修饰符?

Java语言中的-----访问修饰符

Java语言中的-----访问修饰符

Java中各种(类方法属性)访问修饰符与修饰符的说明

java 访问修饰符

Java中的修饰符