Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,是否可以在没有类和构造函数的情况下创建对象?_Java_Class_Object_Constructor_New Operator - Fatal编程技术网

在Java中,是否可以在没有类和构造函数的情况下创建对象?

在Java中,是否可以在没有类和构造函数的情况下创建对象?,java,class,object,constructor,new-operator,Java,Class,Object,Constructor,New Operator,那里 我是Java新手,最近偶然发现了构造函数的概念。我想我理解这个概念,但我正在读的那本书介绍了数组中对象的概念,我迷路了 在示例中,本书仅使用构造函数new创建一个对象。但问题是,本书将其与引用不存在类中对象的对象引用变量一起使用 让我用代码来写 Dog [] pets; pets = new Dog[]; 我知道创建了一个名为Dog的对象,其中包含数组[] 在我目前的理解中,应该是这样的: //We have a class named Dog public class Dog{

那里

我是Java新手,最近偶然发现了构造函数的概念。我想我理解这个概念,但我正在读的那本书介绍了数组中对象的概念,我迷路了

在示例中,本书仅使用构造函数
new
创建一个对象。但问题是,本书将其与引用不存在类中对象的对象引用变量一起使用

让我用代码来写

Dog [] pets;

pets = new Dog[];
我知道创建了一个名为
Dog
的对象,其中包含数组
[]

在我目前的理解中,应该是这样的:

//We have a class named Dog

public class Dog{

//And We have a basic default constructor here
    public Dog(){
    }

}

//We have another class

public Class2{

//In this class we create a "reference variable" 
//to create an object from the above class named Dog.


Dog[] pets;
pets= new Dog[];

}

因此,我不知道这本书是否只是排除了名为
Dog
的类,或者是否可以根据需要创建一个对象
Dog[]
,而无需调用类/构造函数

如果有人能向我澄清这个概念,我将不胜感激


谢谢你的阅读

数组在Java中不是类,即使实例化它使用
new
关键字,并且没有构造函数。但是,撇开这一点不谈,让我们稍微澄清一下语法,因为对于代码的实际含义存在一些混淆


把一个数组想象成一系列串在一起的盒子。每个框或
元素
,都可能包含某个对象的实例。您需要告诉数组允许其所有框包含的类型,并将该类型的名称放在方括号之前。在本例中,作者使用了一个虚构的
类型(即
狗[]
),但它也可以是
整数
字符串
,或任何其他类型。您的代码创建了一个数组实例,该数组能够包含
Dog
或其后代类型的实例。

数组在Java中不是类,即使实例化它时使用
new
关键字,并且没有构造函数。但是,撇开这一点不谈,让我们稍微澄清一下语法,因为对于代码的实际含义存在一些混淆


把一个数组想象成一系列串在一起的盒子。每个框或
元素
,都可能包含某个对象的实例。您需要告诉数组允许其所有框包含的类型,并将该类型的名称放在方括号之前。在本例中,作者使用了一个虚构的
类型(即
狗[]
),但它也可以是
整数
字符串
,或任何其他类型。您的代码创建一个数组实例,该数组能够包含
Dog
或其后代类型的实例。

声明
Dog[]pets
要求有一个名为
Dog
的类或接口。它用类型
Dog[]
声明变量
pets
,这意味着
pets
将始终保持
null
或对类型
Dog[]
的数组的引用(或者可能是一个子类型,例如
Chihuahua[]
)。你的书显然假设
Dog
是在别处定义的,让你来填补空白。(这是很正常的:书籍通常不会针对每一个例子都呈现完整的程序,因为它们不想分散你对所展示的特定内容的注意力。)

赋值
pets=new Dog[]
无效:您不能创建一个数组而不说明它有多少个元素,或者使用一个数字(
new Dog[3]
),或者通过显式列出元素(
new Dog[]{null,null,null}


赋值
pets=newdog[3]
要求有一个名为
Dog
的类或接口,但它不调用任何
Dog
的构造函数(因为它不创建
Dog
,只创建
Dog[]
),所以它不关心
Dog
是否有无参数构造函数,无论
Dog
是否是一个具体的类,是否可以访问
Dog
的任何构造函数,或者诸如此类的东西。

声明
Dog[]pets
要求有一个名为
Dog
的类或接口。它用类型
Dog[]
声明变量
pets
,这意味着
pets
将始终保持
null
或对类型
Dog[]
的数组的引用(或者可能是一个子类型,例如
Chihuahua[]
)。你的书显然假设
Dog
是在别处定义的,让你来填补空白。(这是很正常的:书籍通常不会针对每一个例子都呈现完整的程序,因为它们不想分散你对所展示的特定内容的注意力。)

赋值
pets=new Dog[]
无效:您不能创建一个数组而不说明它有多少个元素,或者使用一个数字(
new Dog[3]
),或者通过显式列出元素(
new Dog[]{null,null,null}


赋值
pets=newdog[3]
要求有一个名为
Dog
的类或接口,但它不调用任何
Dog
的构造函数(因为它不创建
Dog
,只创建
Dog[]
),所以它不关心
Dog
是否有无参数构造函数,无论
Dog
是否是一个具体的类,是否可以访问
Dog
的任何构造函数,或者诸如此类的东西。

未创建包含数组的名为Dog的对象,创建了一个包含狗的数组对象。你能详细介绍一下你的目标吗?@Ashish Sharma我的主要问题是,如果有可能创建一个对象,那么在本例中,可以创建一个数组对象,而不需要将类和构造函数作为引用。因为构造函数的基本定义是“Java构造函数是一种特殊的方法,在对象不稳定时调用