黑马程序员技术交流社区
标题:
new实例化用法的疑问
[打印本页]
作者:
郭孟涛
时间:
2013-2-9 03:29
标题:
new实例化用法的疑问
ts.add(new Student("lisi007",20));
这一句ts.add();中怎么还传入了一个 实例化类呢?new不是这样用的吗?
Person abc = new Person();
而且这个类还带着参数"lisi007",20。参数怎么被类接收到的?
作者:
逍林游
时间:
2013-2-9 09:43
ts.add(new Student("lisi007",20));这部分new Student("lisi007",20)是一个匿名对象!
作者:
铿锵科技
时间:
2013-2-9 10:17
ts.add(new Student("lisi007",20));
这一句ts.add();中怎么还传入了一个 实例化类呢?new不是这样用的吗?
Person abc = new Person();
而且这个类还带着参数"lisi007",20。参数怎么被类接收到的?
这是集合中使用泛型,集合中存的是一个Student类的对象,这个对象你可以在存的时候再创建存进去,也可以创建好了再存进去
作者:
范天成
时间:
2013-2-9 23:29
ts.add(new Student("lisi007",20));
这一句ts.add();中怎么还传入了一个 实例化类呢?new不是这样用的吗?
Person abc = new Person();
而且这个类还带着参数"lisi007",20。参数怎么被类接收到的?
Person abc = new Person(); 这个是最常用的创建对象的方式,左边的语句相当于是给要创建的对象起了个名字,右边是用的类的默认构造函数创建的类。传参数那种是用的自定义的带参的构造函数创建对象。
作者:
冯佩
时间:
2013-2-11 12:45
这是往集合中添加了一个对象,该对象是通过调用有参数的构造方法进行实例化的。
作者:
黄玉昆
时间:
2013-2-11 17:44
其实你可以把这句话分解一下:
Student s = new Student("lisi007",20);
ts.add(s);
也就是说,你是创建了一个Student对象,有两个属性(参数):"lisi007",20。那么,你是把这个数据添加到ts中去了,上面说是匿名对象,差不多是这个意思。
说的简单点,就是将一个Student的信息添加到ts中了。
作者:
赵熠东(赵东东)
时间:
2013-2-16 20:11
回复:“参数怎么被类接收到的?”→这是通过调用Student类的带有参数的构造函数生成的一个匿名对象
“ts.add()”方法的形参应该就是Student类型吧
作者:
黄基焜
时间:
2013-2-16 22:31
不要用你既定的思维去想代码,没有规定过不能的就可以,只要你想得出符合规则的你想怎么想都可以
new Student("lisi007",20)是一个匿名对象;
add()里面添加的就是对象
作者:
成吉思汗
时间:
2013-2-21 22:50
ts.add(new Student("lisi007",20));
new Student(); 这是匿名对象的写法,
new Student("lisi007",20);这是使用构造函数声明了一个匿名对象.
关于匿名对象有以下使用方式:
1. 当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化,如果一个对象进行多个成员调用,必须给这个对象起个名字。
2. 可以将匿名对象作为实际参数进行传递.正如上述中:ts.add(new Student("lisi007",20));这种形势,直接add了一个对象.
关于构造函数:
三个特点:1. 函数名与类名相同 2. 不用返回值类型 3. 不可以写return语句
作用:主要是用来初始化对象.如上述问题:new Student("lisi007",20);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2