一个小问题,求解啊!谢谢

whx405831799 2012-02-29 08:53:58
package objecttion;

class Counter {
static int value;

void click() {
value = (value + 1) % 100;
};

void reset() {
value = 0;
};

int get() {
return value;
};

}

class CounterTest {

public static void main(String[] args) {
Counter c1 = new Counter();
c1.click();
c1.click();
c1.get();
System.out.println(c1);

}

}



输出的结果怎么不是2;而是objecttion.Counter@16bd8ea
什么情况 求解?
...全文
85 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-03-02
  • 打赏
  • 举报
回复
println其实对于不同类型有多种重载,如果直接打印字符串,就不会调用toString了。
whx405831799 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ldh911 的回复:]
你7楼的问题,我自己没测试过,只是凭理解说的,因为非public的话按理而言是只能被同包下的类访问。

8楼的问题,建议你在Eclipse中自己直接看看println()的源码,你就比较清楚了。
你8楼第二个问题,我完全没看懂啥意思。。。。。。
[/Quote]
谢谢了哦 呵呵
恩 8楼就是说 我重写了toString()方法 然后当我打印println("对象名") 时 就把在toString()方法里的返回值打出来 那我打印println("ddd") 打印一个字符串的时候 会不会也把toString()的返回值打出来?
whx405831799 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ldh911 的回复:]
两个解决方案:
1、 System.out.println(c1.get());

2、为Counter增加函数:
public String toString() {
return String.valueOf(value);
}
[/Quote]那请问 问什么啊?不是很懂
还有一个问题 当有多个类的时候 必须要有一个PUBLIC类么? 谢谢哦
julonecher 2012-03-01
  • 打赏
  • 举报
回复
学习了。。。
MiceRice 2012-03-01
  • 打赏
  • 举报
回复
你7楼的问题,我自己没测试过,只是凭理解说的,因为非public的话按理而言是只能被同包下的类访问。

8楼的问题,建议你在Eclipse中自己直接看看println()的源码,你就比较清楚了。
你8楼第二个问题,我完全没看懂啥意思。。。。。。
whx405831799 2012-03-01
  • 打赏
  • 举报
回复
大牛哥,请问 执行println()时是不是要执行toString() ,是不管println()里是什么 都执行toString();还是说只有里面放的是对象才执行?还有就是你教我 重写那个String toString()的方法,那我再调用这个方法的时候,就要执行方法里面的语句了 public String toString() {
return String.valueOf(value);
}就比如这个 那不是我调用一次这个方法,就要输出一个value的值?但为什么我调用这个方法println()后,只有当()里面是对象的时候才输出value的值,是其他变量或者空却不输出这个value值了?求解啊 我已经晕了
whx405831799 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ldh911 的回复:]
引用 2 楼 whx405831799 的回复:
还有一个问题 当有多个类的时候 必须要有一个PUBLIC类么?


main函数所在的类,必须是public的,而且应该与Java文件同名。

另:是不是不能直接打印对象?

所谓直接打印对象,比如:
System.out.println(c1);
真正执行的时候其实就是:
System.out.println(c1.toSt……
[/Quote]



class Text3{
int value1=10;



}

class Text1{


public static void main(String[] args) {
int a;
Text3 text3=new Text3();
a=text3.value1;

System.out.println(a);
}

}
就是这样的
whx405831799 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ldh911 的回复:]
引用 2 楼 whx405831799 的回复:
还有一个问题 当有多个类的时候 必须要有一个PUBLIC类么?


main函数所在的类,必须是public的,而且应该与Java文件同名。

另:是不是不能直接打印对象?

所谓直接打印对象,比如:
System.out.println(c1);
真正执行的时候其实就是:
System.out.println(c1.toSt……
[/Quote]谢谢你了哦 ,但我今天建了两个类 都没有public 却可以执行 怎么回事?晕晕
MiceRice 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 whx405831799 的回复:]
还有一个问题 当有多个类的时候 必须要有一个PUBLIC类么?
[/Quote]

main函数所在的类,必须是public的,而且应该与Java文件同名。

另:是不是不能直接打印对象?

所谓直接打印对象,比如:
System.out.println(c1);
真正执行的时候其实就是:
System.out.println(c1.toString());
whx405831799 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 feilonglulu 的回复:]
引用 2 楼 whx405831799 的回复:

引用 1 楼 ldh911 的回复:
两个解决方案:
1、 System.out.println(c1.get());

2、为Counter增加函数:
public String toString() {
return String.valueOf(value);
}
那请问 问什么啊?不是很懂
还有一个问题 当有多个类的……
[/Quote]

是不是不能直接打印对象
feilonglulu 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 whx405831799 的回复:]

引用 1 楼 ldh911 的回复:
两个解决方案:
1、 System.out.println(c1.get());

2、为Counter增加函数:
public String toString() {
return String.valueOf(value);
}
那请问 问什么啊?不是很懂
还有一个问题 当有多个类的时候 必须要有一个PUBLIC类么? 谢谢哦
[/Quote]
你打印那个对象了。。java会输出对象的toString()方法,而你有没重写这个方法,所以才是那个结果
MiceRice 2012-02-29
  • 打赏
  • 举报
回复
两个解决方案:
1、 System.out.println(c1.get());

2、为Counter增加函数:
public String toString() {
return String.valueOf(value);
}

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧