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;
        }
    }
}

java中,成员内部类的变量能不能用public等访问修饰符修饰?
Java语法上是可以的,成员变量可以用public、private、protected任何一个修饰。方法内部的局部变量只在方法内部可见,因此不能修饰。但在实践上,成员变量通常不允许使用public修饰符修饰,这主要是人为规定的编码规则,其目的在于隐藏类的实现细节,达到面向对象的封装的目的。从根本上说这种规定是为了防止类外...

Java 访问修饰符详解
首先,对于普通类,访问修饰符不能是private,因为这将使其在其他类中不可见,无法使用,也无法被继承,这与类的初衷相悖。同样,protected被限制,因为Java缺乏子包概念,如果允许protected,会导致访问逻辑上的死锁,因此普通类通常仅限于包内访问和包外访问,public和default就足够了。内部类则不同,它们...

java中有几种修饰符?
1、权限访问修饰符 public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。2、final修饰符 final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动...

java中类修饰符有哪些?
public 使用对象:最广,类、接口、变量、方法 protected使用对象:变量、方法 注意:不能修饰类(外部类)default 使用对象:类、接口、变量、方法。(即缺省,什么也不写)private 使用对象:变量、方法 注意:不能修饰类(外部类)abstract使用对象:类、接口、方法 static 使用对象:类、变量、方法、...

Java四种权限修饰符
值得注意的是,protected不能修饰类,而private可以修饰类,但该类必须是内部类。在类的设计中,通常建议使用严格的访问控制,比如私有构造方法,以控制对象的创建;工具类通常不提供public构造;非static的共享成员变量应使用protected,仅在本类使用的则为private;static变量的访问权限需谨慎,考虑是否为final...

java中内部类
在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部。内部类作为其外部类的一个成员,与其他成员一样,可以直接访问其外部类的数据和方法。只不过相比较外部类只有public和默认的修饰符不同,内部类作为一个成员,可以被任意修饰符修饰。编译器在编译时,内部类的名称...

java中什么是友好变量和友好方法
不用private、public、protected修饰符的成员变量和方法被称为友好变量和友好方法。

Java中private,protected,public和default的区别
private,public,protected,默认不写(firendly)1、Class类的访问权限: public:可以供所有的类访问。默认:默认可以称为friendly但是,Java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限。即如果写了一个类没有写访问权限修饰符,那么就是默认的访问权限,同一...

protected作用域
protected作用域是Java中的一种访问修饰符,它允许子类访问父类的特定成员,同时保证这些成员对于其他类的不可访问性。1. 定义与作用:在Java中,protected是四种访问级别中的一种,它用于限制外部类对某个类的某些成员的访问。如果一个成员(无论是类的成员变量、成员方法,还是内部类)被声明为protected...

java访问修饰符public,private,protected,以及不写(默认)时的区别?
类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java中,外部类的修饰符只能是public或默认,类的成员(包括内部类)的...

相似回答