标题: 关于new 和对象 [打印本页] 作者: air 时间: 2013-10-22 16:18 标题: 关于new 和对象 本帖最后由 air 于 2013-10-22 18:23 编辑
class Person
{
Person()
{
System.out.println("Zombie");
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p= new Person();
}
}
复制代码
是这样的,毕老师的视频里,听来听去3,4遍,老是不能明白对象和代码之间的关系,有没有童鞋能告诉我.这个new Person和Person p和类:person的关系.我对对象的概念不清楚.作者: kellyzyb 时间: 2013-10-22 16:41
首先Person这个类相当于对某一事物的描述,可以看做是图纸:比如要生产汽车,首先要设计出图纸。类就相于现实生活中对图纸的描述。
Person p= new Person(); 这一名牵扯到两个知识点:首先要知道Java的基本数据类型中的引用数据类型,才能理解前面的Person p
=号后面的new Person(); new 是一个关键字,在堆内存中开辟出一个空间用来对person这个类进行实例化。当然会产生一个内存地址,将这个内存地址赋给了在栈内存中的变量P 。p有了地址以后,就指向了这个对象。
可以在看一下实例化过程的视频。
作者: 王松松 时间: 2013-10-22 16:46
给你举个例子吧!
类:人,这是一个抽象的概念。
对象:张三,这是一个实例对象,是具体的!
Person p= new Person();
p是引用类型变量,new Person()是Person类的实例对象。Person是一个类。
按照你的说法.我能这么理解吗?
类person,这个类里面有描述.有一些细节的东西.
person p.引用了一个堆内存地址
这个堆内存地址里面有 实实在在的详细的东西.(就是堆内存分配了一些地址给类.person吗?)用Person p引用了这个类,能干嘛?
new的作用呢?
对象在哪呢?是什么呢?
帮人帮到底,你告诉我吧 作者: mayor125 时间: 2013-10-22 17:43
class Person定义一个类,类实际上是表示一个客观世界某类群体的一些基本特征抽象,而对象就是表示一个个具体的东西。
例如:人就是现实生活中的一个类,而对象就是具体的某一个人。
Person p= new Person();这句话的意思是在主方法中实例化了一个Person对象,对象名为p,对象名是保存在栈内存中的,而对象的具体内容(包括对象的属性)都是保存在堆内存中的,通过new这个关键字开辟堆内存空间,并且实例化产生的堆内存地址被栈内存中的对象p所指向。
{:soso_e183:} 作者: 蓝雨星空 时间: 2013-10-22 18:19
Person类: 描述person这种事物应该具有哪些属性,就像前面的朋友们说的汽车图纸
Person p: 意思是定义一个Person类型的引用变量,其实和 int x 的意思差不多,只是类型不一样。
new Person:创建一个Person类对象
= :把创建的对象的内存地址赋值给 p ,这样就可以通过 p 来操作这个对象了 作者: air 时间: 2013-10-22 18:23
各位的回答,我又翻了一遍视频, 完全清晰.~~很爽,谢谢大家