【问题标题】:How to call value of object inside object?如何在对象内部调用对象的值?
【发布时间】:2017-05-11 13:27:20
【问题描述】:

我只是让这个文件读取它并将其存储到数组中,然后想稍后调用这些值来打印它们 我的文本文件

`101

2017 年 12 月 7 日

14-7-2017

某个名字

00000.. 电话号码

520

29-8-2017

2017 年 1 月 9 日

某个名字

00000.. 电话号码

1020

30-12-2017

2018 年 1 月 1 日

某个名字

00000.. 电话号码`

这是主要的测试代码

public class test {
public static void main(String[] args) throws ParseException, FileNotFoundException{
    Scanner res = new Scanner (new File("reservations.txt"));
    int z=0;
    do{
    int room_numb = res.nextInt();
    String cInr=res.next();
    String cOutr=res.next();
    String Fname=res.next();
    String Lname=res.next(); 
    String phone_numb=res.next();
    DateFormat df = new SimpleDateFormat("dd-MM-yyyy"); 
    Date cIn = df.parse(cInr);
    Date cOut = df.parse(cOutr);


        Reservation.reserv[z]=new Reservation (room_numb, cIn, cOut, new Guest(Fname, Lname, phone_numb));
        z=z+1;
    }while(res.hasNext()==true);
     Guest FLnames=Reservation.reserv[0].getguest();
     System.out.println(FLnames);
}

我的课程是这 3 个 预订

public class Reservation {
static Reservation[] reserv= new Reservation[200];
Guest guest;
int room_numb;
Date in, out;
public Reservation(int room_numb, Date in, Date out, Guest g) {
    this.room_numb = room_numb;
    this.in = in;
    this.out = out;
    g= guest;
}
public int getroom_numb(){
    return room_numb;
}
public Date getin(){
    return in;
}public Date getout(){
    return out;
}public Guest getguest(){
    return guest;
}

房间

public class Room {




int room_numb;
String indate;

public void setRoom(int  i) {
    room_numb =i;
}
public int getRoom(){
    return room_numb;
}

和客人

public class Guest {

    String Fname;
    String Lname;
    String phone_number;

    public  Guest(String fname, String lname, String phone_numb ){
        Fname=fname;
        Lname=lname;
        this.phone_number=phone_numb;

        return;
    }
    public  String getFname(){
        return Fname;
    }
    public  String getLname(){
        return Lname;
    }
    public  String getphone_number(){
        return phone_number;
    }

}

我已经能够获取所有变量,例如房间编号/入住日期和退房日期/但是当我通过 Guest FLnames=Reservation.reserv[0].getguest(); System.out.println(FLnames); 它给了我 null 这意味着它不引用任何东西 所以我无法使用String Fname=Reservation.reserv[0].getguest().getFname();

那么如何从预订数组中的客人那里获取数据?

注意:我是 Java 新手,所以请对 ma 温柔一点 :) sysout 也只是用于在 main 方法中进行测试 谢谢:)。

【问题讨论】:

    标签: java object


    【解决方案1】:

    我不会为你修复你的代码。这样做是你的家庭作业的一部分。不过,这里有一些提示可以帮助您朝着正确的方向迈进。

    提示:仔细查看您的Reservation 构造函数(尝试)如何初始化对象的字段。看到问题了吗?

    提示 2:让您感到困惑的问题是 getguest() 正在返回 null .......


    虽然我引起了您的注意,但您的代码中有许多样式错误,但最糟糕的是您完全无视标识符名称的 Java 转换:

    • 类名必须以大写字母开头并采用驼峰式:Test 而不是test
    • 方法名或变量名必须以小写开头并且是驼峰式;例如getGuest 不是 getguest
    • 我们不需要或在 Java 中使用“匈牙利”符号。变量的类型在类型声明中表示。
    • 您选择的变量名称不一致且“缺乏灵感”。

    当你的手指变冷时会发生“麻木”。

    【讨论】:

    • 感谢发现预订中的愚蠢错误 1- 好的,我会尝试遵循它,因为它是一个简单的规则 2-相同和抱歉 :( 3-你是什么意思?4-:) 我的手指做了get numb 自 3 周以来一直在这方面工作 xD,这是其中的一小部分谢谢。
    • 您的 cIn / cOut 名称看起来像 Hungarian Notation。如果那不是您的意图,那么……忽略这一点。 (但是输入几个额外的字符并不是变量名称不好的借口。)
    猜你喜欢
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多