我的数组列表显示对象地址而不是对象内容



arraylist显示对象地址而不是实际对象,程序使用继承,其中salesEmployee是超类,salesAgent和salesPerson是子类。

import java.util.Scanner;
import java.util.ArrayList;
public class tester {
public static void main(String[]args ) {
ArrayList <salesEmployee> listemps= new ArrayList <salesEmployee>();

Scanner user_input= new Scanner(System.in);

salesPerson emp1 = new salesPerson(); 

emp1.setName("Frank Long");
emp1.setppsNumber(65783);
System.out.println("Enter total value of sales earned by Frank Long");
double valeSale;
valeSale=user_input.nextDouble();
emp1.setvalSale(valeSale);
emp1.getCommission();
listemps.add(emp1);
for ( int j=0; j<listemps.size(); j++ )
      System.out.println("element " + j + ": " + listemps.get(j) );
    }
}

这是我的销售人员课程

public class salesPerson extends salesEmployee{
    public salesPerson() {


    }
    public salesPerson(String name, int ppsNumber, double valSale, double commission) {
        super(name, ppsNumber,valSale,commission);
    }
    public void getCommission() {
        commission=valSale*0.15;
    }
    public String toString2() {
        return toString1()+"value of sales"+getvalSale()+"commission:"+commission;
    }
}

稍后会让它更优雅,现在我只是想让它工作

更新:根据对我回答的评论,还有一个不同的问题在起作用。以下是评论中添加的内容:

输入弗兰克·朗获得的总销售额 22.00
线程"main"java.lang.StackOverflowError at 中的
异常 salesPerson.toString(salesPerson.java:21) at
salesPerson.toString(salesPerson.java:21) at
salesPerson.toString(salesPerson.java:21) at
salesPerson.toString(salesPerson.java:21) – lucylio 5分钟前

是怎么回事 – 露西里奥 5 分钟

为了显示合理的内容,您需要在类中实现toString方法。 你确实有toString1toString2,但似乎没有toString。(您尚未发布salesEmployee类的代码 - 但很可能它也没有toString实现)。

如果没有toString,则调用默认Object.toString,它显示对象的地址。

实施toString - 您将看到结果。

更新:由于您指示的错误与代码不对应,我会心血来潮并建议,可能您的toString2方法实际上是toString,而您的toString1方法实际上是父类中定义的toString,即 salesEmployee.java . 在这种情况下,不要从 toString 方法内部调用toString(),而是改用super.toString()

public class salesPerson extends salesEmployee {
   ...
    public String toString2() {
        return super.toString()+"value of sales"+getvalSale()+"commission:"+commission;
    }
}

相关内容

  • 没有找到相关文章

最新更新