我正在學習Java(OOP)中的構造函數,但無法弄清楚什麼類型的變量構造函數可以訪問?以下哪個變量可以通過構造函數訪問?哪些變量構造函數可以在Java類中訪問?
- 通過任何方法定義的局部變量
- 私有的實例變量
- 公共實例變量
- 一個靜態變量
我創建下面的例子來闡述我的問題:
public class constructorAccess {
public int marks; // 3. Public instance variable
private String firstName; // 2. Private instance variable
static final String LASTNAME = "Smith"; // 4. Static variable
public static void studentId(){
int id; // 1. Local variable inside method
id = 5;
System.out.println(id);
}
public constructorAccess(int marks, String firstName) {
this.marks = marks;
this.firstName = firstName;
}
}
是有可能訪問id
(1。在studentId方法中聲明的局部變量)和LASTNAME
(4.在類中聲明的靜態變量)from constructorAccess?
public constructorAccess(int marks, String firstName) {
this.marks = marks;
this.firstName = firstName;
// How can I use id variable here from studentId method?
// How can I use LASTNAME static variable here?
}
我用這個訪問了私有和公共實例變量。以引用但LASTNAME
和id
變量給我錯誤(創建一個局部變量)。
我想你應該試着寫一個構造函數,看看你是否可以在裏面使用這些變量。 –
範圍是範圍,構造函數只是另一種沒有特殊範圍的方法 –
你的問題沒有意義。如果靜態變量和實例變量不能被構造函數訪問,並且/或者它不能有局部變量,那麼很難看出哪些構造函數實際上是用於這些變量的,你不覺得嗎?你真的認爲這是通過? – EJP