语言: 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”数组一样。 –