首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java程序小疑点

2012-03-17 
java程序小问题package bimport java.util.*public class java3 {public static void main(String[] agr

java程序小问题
package b;
import java.util.*;
public class java3 {

public static void main(String[] agr)
{
class Cat extends Object
{
private String name;
private int age;
public Cat(String name,int age )
{
this.name =name;
this.age=age;
}
}

Set<Cat> m= new HashSet<Cat>();
m.add(new Cat("小黑",2));
m.add(new Cat("小花",1));
m.add(new Cat("小白",3));
// Iterator<Cat> it=m.iterator();
// while(it.hasNext())
// if(it.next().age>2)
// it.remove();
for(Cat i:m)
System.out.println(i);
}
}


这是一个简单的java程序,我想输出“小黑”,2
  “小花”,1
  “小白”,3

但执行结果却输出的是指针,这个程序该怎么改?
请大家帮忙

[解决办法]
试试给name和age写get和set方法
[解决办法]
= =。。。重写 toString()方法
[解决办法]
用toString()

Java code
import java.util.*;public class java3 {public static void main(String[] agr){    class Cat extends Object{        private String name;        private int age;        public Cat(String name,int age ){            this.name =name;            this.age=age;            }        public String toString() {            return "cat name is " + name +",age is " + age;        }            }    Set<Cat> m= new HashSet<Cat>();    m.add(new Cat("小黑",2));    m.add(new Cat("小花",1));    m.add(new Cat("小白",3));    //     Iterator<Cat> it=m.iterator();    //     while(it.hasNext())    //     if(it.next().age>2)    //     it.remove();    for(Cat i:m)        System.out.println(i);    }}
[解决办法]
Java code
package main;import java.util.*;public class Main {// 这种情况最好不要使用内部类    public static void main(String[] agr) {        Set<Cat> m = new HashSet<Cat>();        m.add(new Cat("小黑", 2));        m.add(new Cat("小花", 1));        m.add(new Cat("小白", 3));        for (Cat i : m)            System.out.println(i.getName() + i.getAge());    }}class Cat extends Object {    private String name;    private int age;    public Cat(String name, int age) {        this.setName(name);        this.setAge(age);    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }}
[解决办法]
重写toString方法

热点排行