java构造函数初始化的问题

最近正在自学java,在学到java构造器的时候,写到这样一段代码!不是构造函数对参数进行初始化了吗?那输出的age的值应该是10啊!为什么还会出现两个0!新手不太明白!... 最近正在自学java,在学到java构造器的时候,写到这样一段代码!

不是构造函数对参数进行初始化了吗?那输出的age的值应该是10啊!为什么还会出现两个0!新手不太明白!请高手帮忙解答一下!谢谢!
展开
 我来答
小傻

推荐于2017-12-16 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部
1.首先明白构造函数的定义,如下:
java 构造函数
一般我们讲的“函数”就是“方法”;构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点。(1)构造方法的方法名必须与类名相同。(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。(5)构造方法可以重载,以参数的个数,类型,或排列顺序区分。
2.请注意这句话:(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。也就是上面你的构造函数根本就没有传递参数给它,也就是说你在构造函数声明的int age=10,只是相当于函数里的一个变量,超出这个函数就失去作用了,也就是说为默认的int值为0.
3.如果是要初始化成员变量,最好还是构造有参。
知识水平有限,望请采纳!!!呵呵!!!
liangzai_cool
2013-04-13 · TA获得超过669个赞
知道小有建树答主
回答量:188
采纳率:50%
帮助的人:107万
展开全部
class TestPerson
{
int age; //成员变量 默认值为0
public TestPerson()
{
int age = 10; //age声明在此处,为局部变量
System.out.println("My name is sss");
System.out.println(age); //编译器会默认此处为局部变量的age
System.out.println(this.age);//this在构造函数内,调用了成员变量
}
public static void main(String[] args)
{
TestPerson pl = new TestPerson();
System.out.println(pl.age);//pl对象的age属性,自然指的是成员变量
}
}
参考一下:http://tieba.baidu.com/p/2256201700
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
23_VS_24
2013-04-13
知道答主
回答量:1
采纳率:0%
帮助的人:1513
展开全部
输出的10是因为那个age为你构造函数的局部变量,this.age是这个类的成员变量,就是你类定义的一个属性,因为你没有为它赋初值java内部会自动赋值为0,而在你main函数中之所以会打印0是因为调用的是p1类的成员变量,自然也应该是没有赋初值的那个age,所以是0!希望对你有帮助!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫风影杀
2013-04-13 · 超过23用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:19.9万
展开全部
3行构造函数外面的age是类的成员变量,6行构造函数内的按格式构造函数的变量,是一个局域变量,8行输出的是6行的那个age;9行输出的是类的成员变量age,而类的成员变量age没有赋初值,默认初值为0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿跃47
2013-04-13 · 超过17用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:47.1万
展开全部
楼上说的都对,构造函数里的新变量是10,构造结束 就销毁了。第二个输出函数this 关键字指代当前对象的引用,可以指向实例化的成员变量。建议看java核心技术里关于类与对象部分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式