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 關注
- 210 瀏覽
添加回答
舉報
