Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Oop_Object - Fatal编程技术网

在java中创建对象

在java中创建对象,java,oop,object,Java,Oop,Object,我相信这个问题已经得到了回答,但我不确定这个词是什么,所以搜索什么 我不确定以下两者之间的区别: JPanel a = new JPanel(); a = new JPanel(); 在第二行中,是否需要在类的顶部声明一个变量 有人能帮我附上一个链接,我可以在这里找到这个话题。我知道这是非常基本的。有三种情况:声明,初始化,和(声明和初始化): 这是您的对象声明: JPanel a; 此对象的初始化: a = new JPanel(); 您可以像这样一步到位: JPanel a =

我相信这个问题已经得到了回答,但我不确定这个词是什么,所以搜索什么

我不确定以下两者之间的区别:

  JPanel a = new JPanel();
  a = new JPanel();
在第二行中,是否需要在类的顶部声明一个变量


有人能帮我附上一个链接,我可以在这里找到这个话题。我知道这是非常基本的。

有三种情况:声明初始化,和(声明和初始化):

这是您的对象声明:

JPanel a;
此对象的初始化:

a = new JPanel();
您可以像这样一步到位:

JPanel a = new JPanel();

我认为您需要了解什么是强类型语言:

Java是强类型语言

Java、Pascal、Ada和C要求所有变量都有一个声明的类型,并支持将算术值显式转换为其他算术类型。Java、C#、Ada和Pascal有时被称为比C更强类型,这一说法可能是基于C支持更多类型的隐式转换,C还允许显式转换指针值,而Java和Pascal则不支持。Java本身可能被认为比Pascal更具有强类型,因为Java中避免静态类型系统的方式是由Java虚拟机的类型系统控制的。C#在这方面与Java类似,尽管它允许通过显式地将代码段置于“不安全上下文”中来禁用动态类型检查。Pascal的类型系统被描述为“太强”,因为数组或字符串的大小是其类型的一部分,使得一些编程任务非常困难


在第一行中,将
a
声明为
JPanel
,然后为其分配一个新对象。在第二行中,您只给它分配了一个新对象,它需要事先声明(作为
JPanel
或它扩展的一个类/接口)。此外,我发现这是一个很好的起点,请参见@YCF_L answer,换句话说,您不能在没有声明的情况下通过
new
关键字初始化对象
a
。在Java中,您必须在初始化之前声明对象的类型(通过JPanel a,这意味着我想要一个JPanel类型的对象
a
)。