A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanglfree 中级黑马   /  2013-9-4 16:58  /  959 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yanglfree 于 2013-9-4 16:59 编辑

在类中有两种初始化方式,一种是定义成员变量的时候直接赋值,还有一种是通过构造函数进行初始化
这两张初始化的方式可以这样理解吗?
第一种是Person这个类的一个共同属性,每一个人一出生就有这两个属性,针对的是这个类

第二种是我自己给这个人赋值,自己进行初始化,针对的是每个对象
  1. class Person //第一种初始化方式
  2. {
  3.        String name = "zhangsan";
  4.        int age = 20;
  5. }



  6. class Person //第二种初始化方式
  7. {
  8.     String name;
  9.     int age;
  10.       
  11.       Person(String name,int age)
  12.       {
  13.             this.name = name;
  14.             this.age = age;  
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

3 个回复

倒序浏览
其实,对象初始化过程都是在创建类的实例的时候
无论是第一种默认初始化,还是第二种显示初始化其实都是针对对象。
因为类只有属性,没有值,只有对象才会有值
类和类的实例是两个概念,比如人和人的实例对象,人是抽象的,人的实例对象是具体的。
回复 使用道具 举报
你第一种初始化方式是死的,如下代码:
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
回复 使用道具 举报
你的第一种指定方法就把这个人的名字和年龄给定死了,这就不符合OOP的思想了,而通过构造方法去构造一个person类型的对象的时候是活得,你给传的名字和年龄,那么这个person对象就是你穿过来的...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马