java中类创建对象在有构造函数和声明对象的情况下,必须使用new关键字分配内存么?

例如
class 圆
{ 圆 底圆;//这个中没有为对象分配内存,是怎么回事?
底圆=circle;
圆 circle=new 圆();
}

第1个回答  2011-10-21
你只是定义了一个圆类,声明了一个底圆。相当于只告诉了计算机有这么一个叫底圆的东西。只有有new关键字给一个类实例化是,才分配空间
打个比方:你到银行存钱,人很多,这时候你会先抽一个号,然后等服务员叫这个号时,你才能去办理业务。底圆就相当于你抽的号码。
不知道我的比喻合理不,反正你就当它是个声明就行追问

声明了它和创建了它有什么区别?望赐教!

追答

你在看看我给你那个比方。其实答案就在里面。简单的说,声明就是预先通知计算机有这样一个东西,以便于以后用到。而创建则是直接在计算机内分配一个内存空间给它使用

本回答被提问者采纳
第2个回答  2011-10-21
在面向对象中,类和对象是最核心的概念,定义一个类,就相当于定义了一个类型,它是引用类型,跟基本数据类型不一样,在引用数据类型中,(除String类型)都需要使用new关键字来创建一个对象,如你的第三种写法,实质是调用圆的无参构造函数来创建一个对象。也就是在内存中为该对象占了一个内存空间,而你的第一种写法只是为声明了有底圆这么一个对象,并没有为它分配空间。
第3个回答  2011-10-21
new 是实例化一个对象,实例的时候会调用构造方法。
你不实例化是分配不了内存空间,除了静态的。
这个与有无构造方法无关。

我本军团为你解答
第4个回答  2011-10-21
圆 底圆;//这个中没有为对象分配内存,是怎么回事?
这是一个对象声明,这个时候对象还没有创建,所以不用分配内存;

使用new关键字这个部分称为类的实例化,对象必须以这种形式来创建,这个时候开始为创建的对象分配内存
第5个回答  2011-10-21
除非是静态的,不然是必须的。

java new是什么意思?
:Java中的new关键字是创建对象的一种方式。它是在堆内存中分配对象空间并返回一个指向该对象的引用。在使用new关键字时,需要提供对象的构造函数参数,Java编译器会根据提供的参数确定使用哪个构造函数来创建对象。因此,使用new关键字创建对象是在Java面向对象编程中非常重要的一部分。:除了创建对象之外,...

java里的new到底是什么意思???
Java中使用 new关键字 加上 构造方法,来创建一个对象,下面是一个名为Cat的类,public class Cat { public Cat() { System.out.println("这是构造方法"); }}使用new + 构造方法 来创建一个对象。那么也就是Cat c = new Cat();前半部分,Cat c 的意思是,在内存中分配一个变量,名字叫c...

JAVA中加new和不加new的区别
在java中,new用来开辟堆内存,又叫初始化,一般情况下,对象创建好后,都需要用new进行实例化;不用new通常在单例模式中可见,对象在类里面创建,构造函数用private修饰,外面不能创建对象,只能调用内部方法静态方法,即对象的初始化在创建对象时已经完成一般来说,不使用new的情况都属于一些特定的情况,...

java里的new到底是什么意思???
2. 创建对象的过程:当你使用“new”关键字创建一个对象时,Java会做几件事情。首先,它会在内存中为这个对象分配空间。然后,它会调用类的构造函数。最后,返回对象的引用,使得你可以在后续的代码中使用这个对象。3. 对象实例化的重要性:在面向对象编程中,对象是程序的基本单元。对象包含了类的属性...

java类中定义构造函数时定义了一个有参数的构造函数 ,是否必须定义空参 ...
不用了,因为你自己定义了有参的构造函数以后,其实已经调用了无参的构造函数(其实你自己写的构造函数会默认调用this();方法,只不过写不写都一样,不信你在你的有参构造的第一句,必须第一句,写this();试试),自己定义了有参构造函数以后,就必须用有参构造函数来初始化了,这个你懂得 ...

java中new是什么意思
除此之外,new关键字还可以用来调用类的构造函数,初始化对象属性。在Java中,每个类都有一个默认的构造函数,但是当我们使用new来创建对象时,我们可以提供我们自己的构造函数,以定制对象初始化的方式。这种方法非常有用,因为它允许我们根据特定的需求创建对象,从而使我们的程序更加灵活和高效。

unity写代码时为什么有的变量或者类前面需要加new,而有得
在Unity开发中,使用new关键字是创建对象的一种方法。不过,有的情况下你可能不需要使用new。不使用new的原因有两种。一种是使用一个函数返回的对象作为新对象。例如,某些函数在返回时会创建一个对象,这时候你可以直接获取这个返回值,不需要额外的new操作。另一种情况是在声明对象时没有使用new。在...

java创建对象
new在JAVA里是一个特殊操作符,但是我们的操作系统是用C语言来写的,new必然对应C语言的某个或某组系统函数调用。这里一般是等价于C语言的malloc函数,作用是请求操作系统为对象分配一块内存空间。book()是构造函数,是在new出来的内存区域填充数据,初始化book类对象的一些变量或状态。book a=new note...

java中实例化一个类用new关键字,没用是什么情况?
Q q;单纯这句,只能说明定义了这个类型的变量。不能说实例化了。这时候,不能调用q这个变量的方法,如果程序运行中,没有调用q的成员,是不会报错的。,没有定义构造函数的情况下,系统会加一个默认无参的构造。

一个Java对象创建的全过程详解
在Java中,创建对象的基本过程非常直观,通常只需一个"new"关键字。然而,这个看似简单的操作背后涉及到一系列复杂的步骤。首先,遇到new指令时,虚拟机会对类进行检查,确保它已在常量池中存在,且已加载、解析和初始化。如果类未完成这些步骤,就会触发相应的类加载过程。接着,虚拟机会确定对象所需的...

相似回答