Java 在另一个类内的类中定义实例对象
我创建了两个类,每个类都在不同的包中。。。以下是主包中的类:Java 在另一个类内的类中定义实例对象,java,Java,我创建了两个类,每个类都在不同的包中。。。以下是主包中的类: package Main; public class Main { Public static void main(String [] args ) { .....} } // class in main package class ClassS{ public int publicAtttibute; private int pricatdAttribute; package second; public class
package Main;
public class Main {
Public static void main(String [] args ) { .....}
}
// class in main package
class ClassS{
public int publicAtttibute;
private int pricatdAttribute;
package second;
public class ClassC{
public static void doSomething(){
ClassD ref = new ClassD();
} }
这是另一个包中的第二个类:
package Main;
public class Main {
Public static void main(String [] args ) { .....}
}
// class in main package
class ClassS{
public int publicAtttibute;
private int pricatdAttribute;
package second;
public class ClassC{
public static void doSomething(){
ClassD ref = new ClassD();
} }
但我不确定这段代码是否使classD及其属性对c类可见,有人能澄清一下吗您在classC中定义了classD的实例对象,这意味着classD及其所有公共属性对c类不可见。。。。。如果希望ClassD可见,但属性不可见,则可以按如下方式编码:
package other:
public class ClassC{
public static void visible(){
ClassD ref = new ClassD();
ref.publicAttribute = 3;
ref.privateAttribute=3;
}}
什么是
classD
?无论如何:ref是一个局部变量。它只在doSomething()方法中可见。这似乎是一个您可以通过在IDE中编译代码轻松回答的问题。要知道ClassD
中的字段在ClassC
中是否可访问,您需要知道它们是私有的、公共的、包私有的还是受保护的;以及ClassC
和ClassD
是否在同一个包中。由于您没有向我们显示ClassD
的代码,我们只能猜测这些字段是否可以访问。然而,正如jingx指出的,您的IDE知道!你确定吗?我认为这是不对的。我也很难让你的代码正常工作。