为什么没有输出结果?求解答

问题是只输出:MyProject.Attribute.House@6f94fa3e,没有输出用户输入的数据


package MyProject.Attribute;

public class House {
    private int houseId;
    private String nameOfLady;
    private String address;
    private double rent;
    private String phone;
    //构造方法
    public House(int houseId,String nameOfLady, String address, double rent, String phone) {
        setNameOfLady(nameOfLady);
        setAddress(address);
        setRent(rent);
        setPhone(phone);
        setHouseId(houseId);
    }
    //封装
    public String getNameOfLady() {
        return nameOfLady;
    }
    public void setNameOfLady(String nameOfLady) {
        this.nameOfLady = nameOfLady;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public double getRent() {
        return rent;
    }
    public void setRent(double rent) {
        this.rent = rent;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public int getHouseId() {
        return houseId;
    }
    public void setHouseId(int houseId) {
        this.houseId = houseId;
    }
}
package MyProject.realizetion;

import MyProject.Attribute.House;

import java.util.Scanner;

public class HouseInformation {
    public static void main(String[] args) {
        Information information=new Information();
        information.View();
    }
}
class Information{
    //建立一个House的数组
    House[] houses =new House[100];
    //返回一个数组,便于输出房屋列表
    public House[] list(){
        return houses;
    }
    //让用户输入数据
    Scanner scanner=new Scanner(System.in);
    public void houseUser(){
        System.out.println("房主姓名:");
        String name=scanner.next();
        System.out.println("房屋地址:");
        String address=scanner.next();
        System.out.println("房屋租金:");
        double rent=scanner.nextInt();
        System.out.println("房主电话:");
        String phone=scanner.next();
        House houseNew=new House(0,name,address,rent,phone);
        //把新的数据加到建立的House数组中去
        addNewHouse(houseNew);
    }
    //添加新的数据
    int houseNumber=0;
    public void addNewHouse(House houseNew){
        if(houses.length==0){
            return;
        }
        houses[houseNumber]=houseNew;
        houseNumber++;
    }
    //获取一个数组
    public void getList(){
        House[] houseList =list();
        //开始循环遍历
        for(int i=0;i<houseList.length;i++){
            if(houseList[i]!=null){
                System.out.println(houseList[i]);
            }
        }
    }
    boolean viewOr=true;
    public void View(){
        do{
            System.out.println("请选择1-2");
            int input=scanner.nextInt();
            switch (input){
                case 1:
                    houseUser();
                    break;
                case 2:
                    getList();
                    break;
                default:
                    viewOr=false;
                    System.out.println("输入有误!");
                    break;
            }
        }while (viewOr);
    }
}

你输出的是地址,不是对象中的数据。

House类中需要重写toString方法。


House {
    private int houseId;
    private String nameOfLady;
    private String address;
    private double rent;
    private String phone;
    @Override
    public String toString(){
      return "nameOfLady="+ nameOfLady+",address="+address+",rent="+rent+",phone="+phone;
    }
}

System.out.println("请选择1-2");
这里你选择的是1还是2啊?
System.out.println(houseList[i]);这哪能输出内容啊
你应该在house类里封装一个print函数,输出其内容,然后System.out.println(houseList[i]);改为 houseList[i].print();就行了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632