A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Emperors 中级黑马   /  2014-6-12 22:36  /  1614 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Emperors 于 2014-6-13 00:56 编辑

public class Worker {

        private int age;
        private String name;
        private double salary;

        public Worker() {
        }

        public Worker(String name, int age, double salary) {
                this.name = name;
                this.age = age;
                this.salary = salary;
        }

        public int getAge() {
                return age;
        }

        public void setAge(int age) {
                this.age = age;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public double getSalary() {
                return salary;
        }

        public void setSalary(double salary) {
                this.salary = salary;
        }
        public void work(){
                System.out.println(name + "work");
                }
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;


public class WorkerTest {
        public static void main(String[] args) {

                LinkedList<Worker>  li = new LinkedList<Worker>();
               
                Worker w1 = new Worker("zhang3",18,3000);
                Worker w2 = new Worker("li4",25,3500);
                Worker w3 = new Worker("wang5",22,3200);
                Worker w =  new Worker("zhao6",24,3300);
               
               
                li.add(w1);
                li.add(w2);
                li.add(w3);
//        将指定元素插入此列表的开头。        
                li.addFirst(w);
//                删除
                li.remove(w3);
               
        Iterator<Worker> it = li.iterator();
                while (it.hasNext()){
                        Worker s = it.next();
                        
                        System.out.println(s);
                }
               
        }
}

我打印的结果为:it.cast.Worker@7366fdde
                          it.cast.Worker@6ea53502
                           it.cast.Worker@203b4f0e

我不明白啊    为什么会打印出这样的结果啊,我就是找不着哪里错了   

应该打出的是名字,年龄,工资啊

求指教???

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

15 个回复

倒序浏览
你在WorKer类中复写toString()方法即可
回复 使用道具 举报 0 1
今天老师刚讲到这里,你最后集合里的WORK是什么  不是字符串吗String,我也不清楚,你没有用eclipse吗
回复 使用道具 举报
love~陌 发表于 2014-6-12 22:54
你在WorKer类中复写toString()方法即可

我试过了,不行啊 跟现在的代码打印的结果一样
回复 使用道具 举报
人心如水 发表于 2014-6-12 22:56
今天老师刚讲到这里,你最后集合里的WORK是什么  不是字符串吗String,我也不清楚,你没有用eclipse吗 ...

用了    是工作的意思,概括了ToString
回复 使用道具 举报
大哥,现在Worker s = it.next();返回的是一个对象,你现在打印的是对象的本身,你想打印名字什么的,用s.getAge(),s.getNmae(),你可以进toStrig()方法看下吧,
回复 使用道具 举报
哥们,你打印的是对象的引用。是个地址。所以应该获取对象的方法来打印数据。
回复 使用道具 举报
wssjdysf 发表于 2014-6-12 23:11
大哥,现在Worker s = it.next();返回的是一个对象,你现在打印的是对象的本身,你想打印名字什么的,用s.g ...

  谢谢      那应该怎么改呢   我试着改过了,运行后报错啊
回复 使用道具 举报
moon1993zs 发表于 2014-6-12 23:18
哥们,你打印的是对象的引用。是个地址。所以应该获取对象的方法来打印数据。  ...

谢谢   那应该怎样获取对象的方法,用代码实现呢  求详细指教
回复 使用道具 举报
package com.itheima;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;

public class WorkerTest {
        public static void main(String[] args) {

                LinkedList<Worker>  li = new LinkedList<Worker>();
            
                Worker w1 = new Worker("zhang3",18,3000);
                Worker w2 = new Worker("li4",25,3500);
                Worker w3 = new Worker("wang5",22,3200);
                Worker w =  new Worker("zhao6",24,3300);                   
                           
                li.add(w1);
                li.add(w2);
                li.add(w3);
                //将指定元素插入此列表的开头。        
                li.addFirst(w);
                //删除
                li.remove(w3);
            
                Iterator<Worker> it = li.iterator();
                while (it.hasNext()){
                        Worker s = it.next();
                    
                        System.out.println("姓名:"+s.getName()+","+s.getAge()+"岁,"+"工资是"+s.getSalary()+"分。");
                }
            
        }
}


class Worker {

    private int age;
    private String name;
    private double salary;

    public Worker() {
    }

    public Worker(String name, int age, double salary) {
            this.name = name;
            this.age = age;
            this.salary = salary;
    }

    public int getAge() {
            return age;
    }

    public void setAge(int age) {
            this.age = age;
    }

    public String getName() {
            return name;
    }

    public void setName(String name) {
            this.name = name;
    }

    public double getSalary() {
            return salary;
    }

    public void setSalary(double salary) {
            this.salary = salary;
    }
    public void work(){
            System.out.println(name + "work");
    }
}

这样就对了。你要使用s.getName;s.getSalary;s.getAge方法

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
Iterator<Worker> it = li.iterator();
                 while (it.hasNext()){
                         Worker s = it.next();
                         System.out.println(s);
                         System.out.println(s.getAge());
                 }
                 
         }
回复 使用道具 举报
本帖最后由 See_the_sun 于 2014-6-13 00:23 编辑

迭代出来的对象是一个Worker类型,他里面有3个成员。所以你要分别调用成员方法打印出来。只要在迭代器下加下面这句即可
System.out.println("姓名:"+s.getName()+","+s.getAge()+"岁,"+"工资是"+s.getSalary());

方法二:在Worker中加段代码
         public String toString()
         {
         return "name:"+this.name+"age:"+this.age+"salary:"+this.salary;
         }

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
寐海流风 发表于 2014-6-12 23:36
package com.itheima;
import java.util.ArrayList;
import java.util.Iterator;

哦哦   谢了   ,我懂了
回复 使用道具 举报
See_the_sun 发表于 2014-6-13 00:04
迭代出来的对象是一个Worker类型,他里面有3个成员。所以你要分别调用成员方法打印出来。只要在迭代器下加 ...

谢谢   我明白了
回复 使用道具 举报
Emperors 发表于 2014-6-12 23:06
我试过了,不行啊 跟现在的代码打印的结果一样

嗯啊。重新给我发个这个程序的需求~我不想看代码,只看需求,然后我给你写一个吧
回复 使用道具 举报
love~陌 发表于 2014-6-13 17:58
嗯啊。重新给我发个这个程序的需求~我不想看代码,只看需求,然后我给你写一个吧 ...

非常感谢了   我已经找到问题了,不过还是要谢谢你  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马