public class MyKeyTest {
int a;
int b;
public MyKeyTest(int a,int b)
{
this.a = a;
this.b =b;
}
public static void main(String[] args) {
// TODO: Add your code here
MyKeyTest mkt = new MyKeyTest(5,4);
System.out.println(mkt);
}
}
//我是一个初学者,对于上边这个程序,打出的结果是MyKeyTest@ad3ba4,
我打印的是一个对像。就是上边这个,
我不理解是什么意思,请大侠帮忙。
int a;
int b;
public MyKeyTest(int a,int b)
{
this.a = a;
this.b =b;
}
public static void main(String[] args) {
// TODO: Add your code here
MyKeyTest mkt = new MyKeyTest(5,4);
System.out.println(mkt);
}
}
//我是一个初学者,对于上边这个程序,打出的结果是MyKeyTest@ad3ba4,
我打印的是一个对像。就是上边这个,
我不理解是什么意思,请大侠帮忙。
解决方案 »
- 如何rmic 指令,生成_***_Stub 文件
- 求助贴:关于使用纯javajdbc连接sql sever数据库的问题具体看贴子 帮忙解决下谢谢了
- 如何查看jdk的版本是32位还是64位
- JFrame如何透明边框?如果不可以,那Java中有什么类可以?
- java可以访问其他机器的硬盘吗?
- 哪位大哥有《完美编程》后面那些编程项目的答案,谢谢
- 菜鸟问题!jre如何用?????
- 出来宝地,请多指教,答者有分!
- 多线程的同步问题
- 【求助】将数组asList后,如何能遍历集合里的元素啊?
- 怎样在B/S系统上在客户端自动打印
- 恳请各位帮我看看下面代码为什么可以编译通过?我认为应该是编译通不过的啊,万分感谢
String aa = mkt.toString();
System.out.println(aa);和你的效果一样!
int a;
int b;
public MyKeyTest(int a,int b)
{
this.a = a;
this.b =b;
}
public String toString()
{
return "hello world";
}
public static void main(String[] args) {
// TODO: Add your code here
MyKeyTest mkt = new MyKeyTest(5,4);
System.out.println(mkt);
}
}
如果在MyKeyTest 没有覆盖toString方法, 那么
System.out.println(mkt);
调用的是mkt.toString()方法 ,也就是Object toString()方法
//Object中toString()方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
MyKeyTest 的基类是隐含的 Object.class
如果在MyKeyTest 没有覆盖toString方法, 那么
System.out.println(mkt);
调用的是mkt.toString()方法 ,也就是Object toString()方法
//Object中toString()方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}楼上正解
public class MyKeyTest
{int a,b;
public MyKeyTest(int a,int b)
{
this.a = a;this.b =b;
}
public String toString()
{return ""a+","+b;}
public static void main(String[] args) {
MyKeyTest mkt = new MyKeyTest(5,4);
System.out.println(mkt);
}
}
程序运行到System.out.println(mkt)时会自动去调用mkt所在类的toString()方法,如果这个类中没有重写这个方法,就直接调用Object类的toString()方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
public native int hashCode();
这里hashCode()方法是native的表明这个方法是c++实现的,我认为用c++实现有几点原因,首先hashCode的生成存在效率问题,即哈希算法的选择和哈希冲突的解决问题,所以选用c++实现来提高效率,还有一点java不是完全开源,哈希算法对用户保密,其次sun公司提供的是jdk的规范,和自己的一个实现,jdk可以由其他厂商来实现,常见的jdk有weblogic公司的,ibm公司的。。这些jdk在j2ee中会遇到
public String toString() {
return this.a+","+this.b;
}