語言: Java。如何將對象2的變量賦予與對象1中的變量相同的值?
目的: 從對象間給變量名[](等級:房間)相同的值,從對象guest1虛擬變量nameGuest(類:訪客)。
問題: 這不起作用
void printRooms(){
for(int i = 0; i < rooms.length; i++){
rooms[i].roomNr = ""+(i+1);
for(int j = 0; j < 2; j++){
a = guest1.getName();
rooms[i].name = a;
}//end for
}//end for
}//end void
評論: 我已經試過房[I]。名稱= guest1.nameGuest。這沒有用。使方法getName返回nameGuest也沒有工作。使用加油站變量a來存儲該值也一樣。 我是新來的類間編碼,我目前正在嘗試閱讀更多關於如何在https://docs.oracle.com/javase/tutorial/java/javaOO/和http://www.tutorialspoint.com/java/java_object_classes.htm上完成但它沒有解決。
問: 你如何給object2.variable值object1.variable 在這種情況下,酒店必須有一個方法printRooms,讓房間[I]一些與客人的姓名(或名稱)( S)。
這裏是我的全碼:
public class Hotel2 {
Guest[] guest;
Room[] rooms;
String a;
void execute() {
rooms = new Room[10];
Guest guest1 = new Guest("Alain");
Guest guest2 = new Guest("Jantje");
for (int i = 0; i < 9; i++) {
rooms[i] = new Room(guest1);
}
//2 guests in 1 room
rooms[9] = new Room(new Guest[]{guest1, guest2});
System.out.println(Arrays.toString(rooms));
printRooms();
}
void printRooms() {
for (int i = 0; i < rooms.length; i++) {
rooms[i].roomNr = "" + (i + 1);
for (int j = 0; j < 2; j++) {
a = guest1.getName();
rooms[i].name = a;
}//end for
}//end for
}//end void
public static void main(String[] args) {
(new Hotel2()).execute();
}
}
class Room {
Guest[] guests;
String roomNr;
String name;
//1 guest constructor
Room(Guest g) {
guests = new Guest[1];
guests[0] = g;
}
//several guests constructor
Room(Guest[] g) {
guests = g;
}
}
class Guest {
String nameGuest;
Guest(String n) {
nameGuest = n;
System.out.println(nameGuest);
}
String getName() {
return nameGuest;
}
}
出了什麼問題?如果數據和類型正確,則沒有原因,您不能將一個變量指定爲另一個變量的值。 –
縮進的注意事項。我直接複製了代碼(來自Dr. Java),並且必須添加空格,以便Stackoverflow能夠將其作爲代碼進行檢測。 至於什麼不順心: 1個發現錯誤: 文件:C:\用戶\ s150951 \ TUE科學網JAAR 1 \編程(E)\ Hotel2.java [行:31] 錯誤:guest1虛擬無法解決 這是它一直告訴我的。但我無法弄清楚guest1有什麼問題。無論我嘗試使用什麼部分來獲取nameGuest的價值「無法解決」 –
您的「guest1」變量確實存在問題。它在你的「execute()」方法中被本地聲明,然後你試圖在「printRooms()」上使用它。您應該在您的課堂中聲明「guest1」(也可能是guest2)作爲屬性,就像您使用「guest」和「rooms」數組一樣。 –