黑马程序员技术交流社区
标题:
构造函数问题?
[打印本页]
作者:
蓬头小道士
时间:
2015-8-19 19:48
标题:
构造函数问题?
本帖最后由 蓬头小道士 于 2015-8-20 21:03 编辑
class Person
{
private String name;
private int age;
Person(String name)
{
this.name=name;
}
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public void Speak()
{
System.out.println("name="+name+"----"+"age="+age);
}
public static void main(String[] args)
{
Person p=new Person("hello");
p.Speak();
Person p1=new Person("hello",22);
p1.Speak();
}
}
上面程序中红色部分在堆内存中的具体内容是什么?它们在堆内存中创建了什么内容?在新创建的对象中是否包含speak()方法?
作者:
sunsteam
时间:
2015-8-19 20:14
堆内存地址值和空间在变量初始化的时候就创建好了 构造代码块和构造函数将一些特性赋值到了堆内存的对象中 简单来说包含局部变量时就是从栈内存获取值并赋值 this.name = name; 不包含局部变量时可能做了一些特定值改变 比如 this.name= "李四";
有时候对象创建必须有特性 比如报名参军的对象要求达到指定年龄 那么对象就必须有年龄特性 那么就要构造函数初始化
就红色代码来说 第一条创建了一个一出现就有名字 并且名字叫hello的人对象p 这是他的特性 第二条创建了一个一出现就有名字和年轻 并且名字叫hello 年龄是22岁的人对象p2
作者:
何时指点江山
时间:
2015-8-19 21:50
楼上的都是高手啊
作者:
黑马的味道
时间:
2015-8-19 22:12
都是高手
作者:
壊亊唑侭
时间:
2015-8-19 22:27
堆内存是啥
作者:
q985274961
时间:
2015-8-19 22:28
构造函数我到现在也是迷糊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2