黑马程序员技术交流社区
标题:
两种初始化
[打印本页]
作者:
yanglfree
时间:
2013-9-4 16:58
标题:
两种初始化
本帖最后由 yanglfree 于 2013-9-4 16:59 编辑
在类中有两种初始化方式,一种是定义成员变量的时候直接赋值,还有一种是通过构造函数进行初始化
这两张初始化的方式可以这样理解吗?
第一种是Person这个类的一个共同属性,每一个人一出生就有这两个属性,针对的是这个类
第二种是我自己给这个人赋值,自己进行初始化,针对的是每个对象
class Person //第一种初始化方式
{
String name = "zhangsan";
int age = 20;
}
class Person //第二种初始化方式
{
String name;
int age;
Person(String name,int age)
{
this.name = name;
this.age = age;
复制代码
作者:
王松松
时间:
2013-9-4 17:44
其实,对象初始化过程都是在创建类的实例的时候
无论是第一种默认初始化,还是第二种显示初始化其实都是针对对象。
因为类只有属性,没有值,只有对象才会有值
类和类的实例是两个概念,比如人和人的实例对象,人是抽象的,人的实例对象是具体的。
作者:
王广亚
时间:
2013-9-4 20:39
你第一种初始化方式是死的,如下代码:
class Aminer{
public String name=dog;
public Function(){
。。。。。。。。
}
}
当创建这个Aminer类的对象时不管你创建的是猫还是狗他的名字都叫dog;这就是不在构造函数中初始化的缺点。
第二种初始化在构造函数中初始化
class Aminer{
public String name;
Aminer (String name){
this.name=name;
}
public Function(){
。。。。。。。。
}
}
这样创建对象时我想创建个对象叫什么他就叫什么。比如:Aminer mm=new Aminer ("cat");我创建个Aminer 对象name的值就是cat
作者:
lonely_zb
时间:
2013-9-4 20:50
你的第一种指定方法就把这个人的名字和年龄给定死了,这就不符合OOP的思想了,而通过构造方法去构造一个person类型的对象的时候是活得,你给传的名字和年龄,那么这个person对象就是你穿过来的...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2