3 回答
TA贡献1802条经验 获得超4个赞
将所有内容都公开是不好的做法。访问修饰符设置方法、类或变量的可访问性。同时,面向对象编程有四大支柱。抽象、继承、多态和封装。
希望这一定会帮助你。
同时在您的问题中,如果您确实需要访问 A 类的行为或方法,您可以将其设为静态并在另一个类中访问。
public class A{
public static int x = 1;
public static void print(){
//some code here
}
}
public class B{
public void test(){
int a = A.x;
A.print();
}
}
或者另一种方法是将 x 设为私有并为其设置 getter 和 setter。在类 B 中初始化 A 的实例并通过其实例访问它。
A obj = new A();
int a = obj.getX();
TA贡献1772条经验 获得超6个赞
您必须A在 classB中创建 class 的实例才能访问它的属性(或者在您的情况下它是 field x)。
internal class A {
public int X { get; set; } = 1;
}
internal class B {
private A myInstanceOfA = new A();
public void test() {
int y = myInstanceOfA.X;
}
}
但是,您可以在A不创建本地实例的情况下访问类的静态和常量成员:
internal class A {
public const int X = 1;
}
internal class B {
public void test() {
int y = A.X;
}
}
TA贡献1802条经验 获得超10个赞
您可能想要的是一个const或static变量,您可以在其中定义一个值并在不初始化类的情况下访问它。
用你的例子,它会是这样的:
public class A {
public const Int32 ConstantVariable = 0;
// or
public static Int32 StaticVariable = 0;
}
public class B {
public void test() {
Int32 y = A.ConstantVariable;
// or
Int32 y = A.StaticVariable;
}
}
请注意,const变量需要当场初始化一个值并且不能更改值,而static变量可以在运行时分配并随时更改。
- 3 回答
- 0 关注
- 159 浏览
添加回答
举报