在没有实例化和初始化的情况下声明 Class 的实例 - 说明
Declaring Instance of Class without Instantiation & Initialization - Clarification
我正在学习与 Java Swing 相关的课程,但我 运行 遇到了障碍。在这个项目中,我们正在为不同的组件设置大小,然而,指导老师专门敲了一行代码,我不是特别理解,我只是想对这行代码的概念进行解释。
基本上,我知道如何创建 class 的 object。假设我们想要一个新的扫描仪 class。为 Scanner class 创建一个 object 很简单,看起来像下面这样:
public class ScannerProgram {
import java.util.Scanner; //Imports Scanner Class
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// ^ Creates object of the Scanner Type, and calls the "Scanner" constructor.
}
}
在我正在观看的一节课中,讲师正在使用扩展 JPanel 的 user-created class 创建自定义组件,我们希望获得首选大小。导师是这样做的:
import java.awt.Dimension; //Imports Dimension class
import javax.swing.JPanel; //Imports JPanel class
public class FormPanel extends JPanel {
public FormPanel() {
Dimension dim = getPreferredSize(); //Question 1
System.out.println(dim); //Prints results
//The result is java.awt.Dimension[width=10,height=10]
}
}
问题一:我想知道这行代码究竟是做什么的。我知道您正在声明 "Dimension" 类型的变量,但之后它变得混乱,因为您没有调用构造函数。在这种情况下,变量被设置为 "getPreferredSize()," 并且我不是特别确定它在做什么。它是从维度 class 调用特定方法吗?那是我的猜测,但实际上我一点也不确定。感谢任何愿意阐明这一点的人。
此外,如果需要,请随时更改标题。
getPreferredSize()
是 JPanel
(或 JPanel
的超 class)的方法,returns 是 Dimension
实例. getPreferredSize()
在由 FormPanel
构造函数构造的实例上调用。
我正在学习与 Java Swing 相关的课程,但我 运行 遇到了障碍。在这个项目中,我们正在为不同的组件设置大小,然而,指导老师专门敲了一行代码,我不是特别理解,我只是想对这行代码的概念进行解释。
基本上,我知道如何创建 class 的 object。假设我们想要一个新的扫描仪 class。为 Scanner class 创建一个 object 很简单,看起来像下面这样:
public class ScannerProgram {
import java.util.Scanner; //Imports Scanner Class
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// ^ Creates object of the Scanner Type, and calls the "Scanner" constructor.
}
}
在我正在观看的一节课中,讲师正在使用扩展 JPanel 的 user-created class 创建自定义组件,我们希望获得首选大小。导师是这样做的:
import java.awt.Dimension; //Imports Dimension class
import javax.swing.JPanel; //Imports JPanel class
public class FormPanel extends JPanel {
public FormPanel() {
Dimension dim = getPreferredSize(); //Question 1
System.out.println(dim); //Prints results
//The result is java.awt.Dimension[width=10,height=10]
}
}
问题一:我想知道这行代码究竟是做什么的。我知道您正在声明 "Dimension" 类型的变量,但之后它变得混乱,因为您没有调用构造函数。在这种情况下,变量被设置为 "getPreferredSize()," 并且我不是特别确定它在做什么。它是从维度 class 调用特定方法吗?那是我的猜测,但实际上我一点也不确定。感谢任何愿意阐明这一点的人。
此外,如果需要,请随时更改标题。
getPreferredSize()
是 JPanel
(或 JPanel
的超 class)的方法,returns 是 Dimension
实例. getPreferredSize()
在由 FormPanel
构造函数构造的实例上调用。