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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭繁森 黑马帝   /  2011-12-17 23:23  /  3512 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 guofansen 于 2011-12-18 14:15 编辑

class person
{
        person()
        {
                System.out.println("person run");
        }
}
class persondemo
{
        public static void main(String[] args)
        {
                person p=new person();
        }

}
中                person p=new person();
的 person p   怎么理解?它是创立的对象么,格式如何书写

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

14 个回复

倒序浏览
Person 是类型,p先是类型变量,然后用构造器新造了一个对象赋给p,p就成了Person的一个具体对象。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
person p=new person();
new person();这个是创建对象;

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
在堆上开辟一段控件标记为P 而内容就是Person类的属性和方法。 作用是要把需要用的P这个对象放在P这个载体中,让它去传递。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
张帅 黑马帝 2011-12-18 00:06:56
报纸
首先,如果你没写构造函数,每个类会有一个默认的构造函数,所以可写可不写。
其次,似的你这是创建对象。格式为:
    (1)、在java中通过 new 操作符来完成 产生一个对象,其实就是在堆内存中产生一个实体
    (2)、类名 对象名 = new 类名();
    (3)、对象为类类型变量,记住:类类型变量指向对象
    (4)、对内存中的变量都有默认初始化值:str 为 null,int 为 0,赋给变量的值叫:显示初始化值。
    (5)、使用对象时,在java中为: 对象.对像成员
这是黑马视频中的例子
  1. class Car{
  2.         //描述颜色
  3.         String color = "red";
  4.         //描述轮胎数
  5.         int num = 4;
  6.        
  7.         //运行行为。
  8.         void run(){
  9.                 System.out.println(color+"|"+num);
  10.         }
  11.         public static void main(String[] args){
  12.                 //创建对象
  13.                 Car c = new Car();
  14.                 给对象赋值
  15.                 c.color = "blue";
  16.                 调用对象方法
  17.                 c.run();
  18.         }
  19. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
张帅 发表于 2011-12-18 00:06
首先,如果你没写构造函数,每个类会有一个默认的构造函数,所以可写可不写。
其次,似的你这是创建对象。 ...

(2)是我所疑惑的,其他的还知道
回复 使用道具 举报
郭繁森 黑马帝 2011-12-18 01:14:34
7#
熊明春 发表于 2011-12-17 23:33
Person 是类型,p先是类型变量,然后用构造器新造了一个对象赋给p,p就成了Person的一个具体对象。 ...

呃,对的
回复 使用道具 举报
张帅 黑马帝 2011-12-18 02:05:09
8#
guofansen 发表于 2011-12-18 01:13
(2)是我所疑惑的,其他的还知道

可否说的详细些?同学
回复 使用道具 举报
刘志祥 黑马帝 2011-12-18 07:05:32
9#
关于person p=new person();这句代码的分解:
=右边的new person()是在堆内存中开辟一片区域,用来存储实体对象。在一开辟出来以后,该对象实体就返回一个地址;
=左边是定义一个person类型的引用p,这个p可以用来存储地址(简单讲,p就是一变量);
=号就是赋值符,把右边产生的地址,赋给左边的地址引用变量p。
这样p就指向了堆内存中的实体对象。就可以利用p来调用对象中的方法。
回复 使用道具 举报
郭繁森 黑马帝 2011-12-18 08:01:26
10#
张帅 发表于 2011-12-18 02:05
可否说的详细些?同学

我 的意思是(2)所写的知识点我不知道,现在看懂了
回复 使用道具 举报
李明 黑马帝 2011-12-18 09:54:21
11#
Person p=new Person();
等号左边,Person p其实和int a差不多,是在栈内存中定义了一个变量。
等号右边,new Person(),这是固定格式,调用构造函数在堆内存中创建一个对象,创建对象时进行初始化,也就是执行构造函数Person()
然后把对象的内存地址赋给变量p,就可以用p来指向对象了,并且引用对象了。
回复 使用道具 举报
Person p是创建一个Person类的对象引用,new Person()是创建的一个对象,Person p=newPerson();是把这个引用指向这个对象。
回复 使用道具 举报
张帅 黑马帝 2011-12-18 11:00:37
13#
guofansen 发表于 2011-12-18 08:01
我 的意思是(2)所写的知识点我不知道,现在看懂了

:D,好的,以后一起进步
回复 使用道具 举报
wsssx 2011-12-18 11:33:00
14#
提示: 作者被禁止或删除 内容自动屏蔽
回复 使用道具 举报
刘健 黑马帝 2011-12-18 11:56:58
15#
person是类型,p是变量名称,=new person()是创建person的新的实例
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马