來共享類之間的變量,有三種方式:
public class Human {
// instance variables
public String name;
public int age;
//constructor, creates an instance of the Human class.
public Human(String s, int i){
name = s;
age = i;
}
}
在這種情況下
,你的實例變量是公開的。 所以在另一個類,當你創建一個人力類的實例調用:
Human aHuman = new Human(tom, 25);
那麼你就可以直接訪問這兩個實例變量。您可以通過使用得到其數值:
String theHumanName = aHuman.name;
,您可以通過使用其值設置(修改):如果你的變量是公共
aHuman.name = "mike";
兩個以上的線路纔有效。你應該讓他們保持私密的原因是保持課堂以外的價值觀。所以如果他們是私人的,那麼你可以根據需要創建get和set方法。 這裏是如何要做到:
public class Human {
// instance variables
private String name;
private int age;
//constructor, creates an instance of the Human class.
public Human(String s, int i){
setName(s);
setAge(i);
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
}
現在從類的外部
,您可以撥打:
String theHumanName = aHuman.getName(); // this a method call, therefore you must have the parentheses
,您可以通過使用其值設置(修改):
aHuman.setName("mike");
其他班級是否是一個子班級?另外,請遵循Java命名約定('name')。 –
那麼如果你從另一個類中擴展這個類,那麼這些變量將全部都是可訪問的。事實上,因爲您將變量設置爲「公共」,他們可以在任何地方訪問。 –
這沒有意義:您從*對象*中獲取信息不是來自類,更不是*抽象*類。你的問題是一個[XY問題](http://mywiki.wooledge.org/XyProblem),當你問最好的解決方案是使用完全不同的方法時,如何解決特定的代碼問題。仔細考慮一下你的問題,然後告訴我們你究竟想要做什麼的細節,而不是你想如何解決它。 –