Java OOP-谁可以访问公共、私有和受保护变量?
我是新手。请看以下伪代码:Java OOP-谁可以访问公共、私有和受保护变量?,java,oop,pseudocode,Java,Oop,Pseudocode,我是新手。请看以下伪代码: Class Test{ public String a; protected String b; private String c; public void aa(){} protected void bb(){} private void cc(){} Class Test2{ private void dd(){} } } Class Test3 extends Test{ private void
Class Test{
public String a;
protected String b;
private String c;
public void aa(){}
protected void bb(){}
private void cc(){}
Class Test2{
private void dd(){}
}
}
Class Test3 extends Test{
private void ee(){}
}
Class Test4{
private void ff(){}
}
可以a
、b
和c
访问aa()
、bb()
和cc()
?a
、b
和c
能否访问类Test2
和dd()
?只有a
和b
可以访问类Test3
和ee()
?只有a
才能访问类Test4
和ff()
?- 私有-仅受保护的类
- 保护那些继承人
- 世界公众
- 私有-除了他们所居住的阶级成员之外,他们对任何人都不可见
- 受保护-私有+子类也可见
- 默认值-private+同一包中的其他类
- 公共-整个宇宙都可见
- 关于第一个问题
“aa()能否访问类测试的a、b、c”:是的,它可以访问其外部类的成员。Test2是一个内部类,内部类与其封闭类的实例相关联,并且可以直接访问该对象的方法和字段 关于第二个问题
“确实,只有a和b可以访问类Test3”:是的,a和b可以在类Test3内访问。子类可以访问其基类的公共和受保护成员 对于第三个
“只有a才能访问类Test4是真的吗?”:是的,如果您创建类Test的对象并使用点(.)运算符访问它,则在类Test4内部只能访问“a”。您所说的在java中称为访问修饰符。您提到了其中三种,但总共有4种访问修饰符:
这些关键字的精确语义的可能重复是特定于语言的。并不是所有的OOP语言都有这些概念,也不是所有的实现都执行规范的每一项要求。把C++变成C++ C++问题(或者你需要的语言)是有意义的。C++和java有这些概念,我会添加标签。@ Bob警告:java有“包私有”(没有说明符),C++没有。