Chinaunix首页 | 论坛 | 博客
  • 博客访问: 429346
  • 博文数量: 79
  • 博客积分: 8385
  • 博客等级: 中将
  • 技术积分: 3625
  • 用 户 组: 普通用户
  • 注册时间: 2005-09-26 14:42
文章分类

全部博文(79)

文章存档

2011年(10)

2010年(40)

2009年(21)

2008年(8)

分类: Java

2010-02-25 17:33:27

import java.util.*;
         public class Demo {
               public String toString(){
                            return “Demo address:”+this+“\n”
                                                     }
               public static void main(String[] args) {
                                        
                              List v = new ArrayList();
                                        
                              for(int i = 0;i<10;i++)
                                           
                                    v.add(new Demo());
                                              
                                  System.out.println(v);
 
 
this代表当前对象.你直接打印this就是打打印的当前对象的内存地址
super在你现在这个类中代表Object任何类就是Object的子类,你的Demo类没有显式的继承关系.所以super代表Object.
什么toString()方法重构了obj的方法.没看懂.
List v = new ArrayList();
//定义一个ArrayList数组变量v.

for(int i = 0;i<10;i++)
//下面的第一行代码循环执行10次

v.add(new Demo());
//每次循环在v中添加一个新的Demo对象,这里新的Demo对象的意思是,内存地址不一样,那打印v的toString()方法得出结果是打印v里面每个元素的toString()
所以你会得到10个不同的值.你记住在Java中只要遇到new关键字新创建的对象内存地址就不一样,简单来说.就是给你一个馒头,看new关键字了就是另外一个一样的馒头而不是原来那个馒头的引用.

super.toString()方法的返回值为
getClass().getName() + '@' + Integer.toHexString(hashCode())
类名@哈希值

而this表示当前类,相当于一个指针,指像该类的内存地址。
v是ArrayList的一个实例对象。v.add()表示要往集合中加入新的值。
把生成的几个demo对象全放在集合中。然后在通过System.out.println()打印出每个demo的地址~ 

回答者: -    2008-9-9 11:43

1.this就是对象本身,放在return后面的话,这里this就自动调用了this.toString()这个方法了
你这句语句是错误的,返回的内容是一个无限长度死循环的字符串
调用super.toString()就是调用父类的toString()方法,也就是Objece的toString()方法,这样的话,这个方法就正确了。。。

2.因为任何java对象的打印都是自动调用类本身的toString()方法的,这里首先调用了v的toString()方法,而v是List类型,list类型的打印就是调用对象本身的toString方法,也就是调用Demo的toString方法,所以用到了new Demo里面的方法,而且就是toString方法 

回答者: -    2008-9-9 11:46

this就是当前对象的引用.
Demo d = new Demo();
这句话分解一下:
Demo d; 定义了一个引用d,d的类型为Demo
d = new Demo();new Demo()创建了一个Demo对象.然后将d这个引用指向这个对象
this就代表某个类当中的当前的引用. 
阅读(425) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~