java中,成员内部类的变量能不能用public等访问修饰符修饰?

如题所述

Java语法上是可以的,成员变量可以用public、private、protected任何一个修饰。
方法内部的局部变量只在方法内部可见,因此不能修饰。

但在实践上,成员变量通常不允许使用public修饰符修饰,这主要是人为规定的编码规则,其目的在于隐藏类的实现细节,达到面向对象的封装的目的。

从根本上说这种规定是为了防止类外部直接访问内部变量,降低类间耦合度,方便后续代码维护。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-12
你好:这个是可以的,如果是本类内都可以用private修饰,如果是public可以被整个项目访问,static是静态类,可以直接用类名+类方法的方式访问,如果非static的话,必须先new一个这个类,然后变量名调用,本回答被提问者和网友采纳
第2个回答  2015-04-12
可以用public等,除了static不能用
第3个回答  2019-03-01
内部类有四种:静态内部类、成员内部类、局部内部类和匿名内部类;成员内部类可以用public\protected\private修饰,而局部内部类不可以,局部内部类定义在一个代码块中,只能访问方法中定义为final的局部变量,这些限制对匿名内部类同样生效。但是,成员内部类是可以的
第4个回答  2018-04-18
/*可以的
 */
public class Main2{
    public static void main(String[] args) {
        Person p = new Person();
        Person.InnerPerson p2 = p.new InnerPerson();
        System.out.println(p2.name); 
        System.out.println(p2.getAge());
    }
}

class Person {
    class InnerPerson{
        public String name = "小明";
        private int age = 8;
        public String getName() {
            return name;
        }
        public int getAge() {
            return age;
        }
    }
}