Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何访问类外的私有数据成员?_Java - Fatal编程技术网

Java 如何访问类外的私有数据成员?

Java 如何访问类外的私有数据成员?,java,Java,我正在尝试访问外部类之外的内部类的私有数据成员 请帮帮我?你不需要——这就是保密的全部意义 内部类可以通过属性公开数据,当然: public class Outer { public class Inner { private final String name; public Inner(String name) { this.name = name; } public String getNa

我正在尝试访问外部类之外的内部类的私有数据成员


请帮帮我?

你不需要——这就是保密的全部意义

内部类可以通过属性公开数据,当然:

public class Outer {
    public class Inner {
        private final String name;

        public Inner(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }
}

public class Other {
    public void foo() {
        Outer outer = new Outer();
        Outer.Inner inner = outer.new Inner("Foo");
        // Can't access inner.name here...
        System.out.println(inner.getName()); // But can call getName
    }
}

。。。但是,如果内部类想要保持它的私有性,那么您就不应该尝试访问它。

您不应该这样做-这就是它私有的全部意义

内部类可以通过属性公开数据,当然:

public class Outer {
    public class Inner {
        private final String name;

        public Inner(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }
}

public class Other {
    public void foo() {
        Outer outer = new Outer();
        Outer.Inner inner = outer.new Inner("Foo");
        // Can't access inner.name here...
        System.out.println(inner.getName()); // But can call getName
    }
}

。。。但是,如果内部类想要保持它的私有性,那么您就不应该尝试访问它。

您不应该这样做-这就是它私有的全部意义

内部类可以通过属性公开数据,当然:

public class Outer {
    public class Inner {
        private final String name;

        public Inner(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }
}

public class Other {
    public void foo() {
        Outer outer = new Outer();
        Outer.Inner inner = outer.new Inner("Foo");
        // Can't access inner.name here...
        System.out.println(inner.getName()); // But can call getName
    }
}

。。。但是,如果内部类想要保持它的私有性,那么您就不应该尝试访问它。

您不应该这样做-这就是它私有的全部意义

内部类可以通过属性公开数据,当然:

public class Outer {
    public class Inner {
        private final String name;

        public Inner(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }
}

public class Other {
    public void foo() {
        Outer outer = new Outer();
        Outer.Inner inner = outer.new Inner("Foo");
        // Can't access inner.name here...
        System.out.println(inner.getName()); // But can call getName
    }
}

。。。但是,如果内部类希望保持私有,则不应该尝试访问它。

在内部类中为私有变量创建公共getter setter方法。然后创建一个对象并调用它们来访问私有数据。不能直接访问私有数据。

在内部类中为私有变量创建公共getter setter方法。然后创建一个对象并调用它们来访问私有数据。不能直接访问私有数据。

在内部类中为私有变量创建公共getter setter方法。然后创建一个对象并调用它们来访问私有数据。不能直接访问私有数据。

在内部类中为私有变量创建公共getter setter方法。然后创建一个对象并调用它们来访问私有数据。您不能直接访问私有数据。

您不能访问私有数据。如果您有其他访问它的想法,请使用public getter方法返回该私有数据。

您无法访问私有数据。如果您有其他访问它的想法,请使用public getter方法返回该私有数据。

您无法访问私有数据。如果您有其他访问它的想法,请使用public getter方法返回该私有数据。

您无法访问私有数据。如果您有其他访问它的想法,请使用公共getter方法返回私有数据。

您可以使用getter方法ex访问私有数据成员

package pack;

import java.io.ObjectInputStream.GetField;

public class abc {
    private int num = 2;

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

}

class otherClass {
    public static void main(String[] args) {
        abc obj = new abc();
        System.out.println(obj.getNum());
    }
}

您可以使用getter方法ex访问私有数据成员

package pack;

import java.io.ObjectInputStream.GetField;

public class abc {
    private int num = 2;

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

}

class otherClass {
    public static void main(String[] args) {
        abc obj = new abc();
        System.out.println(obj.getNum());
    }
}

您可以使用getter方法ex访问私有数据成员

package pack;

import java.io.ObjectInputStream.GetField;

public class abc {
    private int num = 2;

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

}

class otherClass {
    public static void main(String[] args) {
        abc obj = new abc();
        System.out.println(obj.getNum());
    }
}

您可以使用getter方法ex访问私有数据成员

package pack;

import java.io.ObjectInputStream.GetField;

public class abc {
    private int num = 2;

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

}

class otherClass {
    public static void main(String[] args) {
        abc obj = new abc();
        System.out.println(obj.getNum());
    }
}


这样设计有什么好处吗?我的意思是,如果类是
私有的
,为什么他们允许在类之外访问它(即使它是一个内部类)…Java是一种完全面向对象的编程语言。数据隐藏换句话说,封装是OOP的一个主要特性。最佳做法是将所有类属性设置为私有,并将所有方法公开,包括访问这些私有属性的getter setter方法。@Nadun:不清楚您答复的是什么,但您并不仅仅将所有方法公开。。。Maroun的评论(我相信)是对我对他现在已删除的答案所做的评论的回应,大意是内部类的私有成员可以访问其封闭类。我只是向@Maroun的问题解释。@Nadun:很遗憾,我认为你错过了问题的上下文。但是,我认为建议人们公开所有的方法不是一个好主意。这样设计有什么好处吗?我的意思是,如果类是
私有的
,为什么他们允许在类之外访问它(即使它是一个内部类)…Java是一种完全面向对象的编程语言。数据隐藏换句话说,封装是OOP的一个主要特性。最佳做法是将所有类属性设置为私有,并将所有方法公开,包括访问这些私有属性的getter setter方法。@Nadun:不清楚您答复的是什么,但您并不仅仅将所有方法公开。。。Maroun的评论(我相信)是对我对他现在已删除的答案所做的评论的回应,大意是内部类的私有成员可以访问其封闭类。我只是向@Maroun的问题解释。@Nadun:很遗憾,我认为你错过了问题的上下文。但是,我认为建议人们公开所有的方法不是一个好主意。这样设计有什么好处吗?我的意思是,如果类是
私有的
,为什么他们允许在类之外访问它(即使它是一个内部类)…Java是一种完全面向对象的编程语言。数据隐藏换句话说,封装是OOP的一个主要特性。最佳做法是将所有类属性设置为私有,并将所有方法公开,包括访问这些私有属性的getter setter方法。@Nadun:不清楚您答复的是什么,但您并不仅仅将所有方法公开。。。Maroun的评论(我相信)是对我对他现在已删除的答案所做的评论的回应,大意是内部类的私有成员可以访问其封闭类。我只是向@Maroun的问题解释。@Nadun:很遗憾,我认为你错过了问题的上下文。但是,我认为建议人们公开所有的方法不是一个好主意。这样设计有什么好处吗?我的意思是,如果类是
私有的
,为什么他们允许在类之外访问它(即使它是一个内部类)…Java是一种完全面向对象的编程语言。数据隐藏换句话说,封装是OOP的一个主要特性。最佳做法是将所有类属性设置为私有,并将所有方法公开,包括访问这些私有属性的getter setter方法。@Nadun:不清楚您答复的是什么,但您并不仅仅将所有方法公开。。。马龙的评论是(我)