Java 图形用户界面和构造函数
Java gui and constructor
我对 java 和 gui 有疑问,这已经困扰了我一段时间 now.Below 我已经发布了一个小代码,我需要你看一下它的构造函数部分。
import java.awt.*;
class First extends Frame {
First(){
Button b=new Button("click me");
b.setBounds(30,100,80,30);// setting button position
add(b);//adding button into frame
setSize(300,300);//frame size 300 width and 300 height
setLayout(null);//no layout manager
setVisible(true);//now frame will be visible, by default not visible
}
public static void main(String args[]){
First f=new First();
}
}
我了解到,在main方法中,我们已经创建了class"First"的一个对象。我还了解到,当创建一个新对象时,会调用其 class 的构造函数进行初始化。
我的疑问是我们如何在没有点运算符的情况下使用 setSize、setLayout、setVisible 函数?如果这些函数要修改对象,创建对象会触发构造函数调用,那么我们不应该使用 this 指针吗?我们不是一直都是这样做的吗?但是我在互联网上遇到过类似的代码片段,最近真的很困惑。非常感谢任何帮助。
setSize
、setLayout
、setVisible
方法可以直接使用,因为它们是Frame
class的成员,而你的First
class 是 Frame
的子 class。
从这个意义上说,您正在使用 "inside" Frame
对象,因此可以直接调用其成员。
您只需要限定来自对象外部的方法调用,这样 Java 就可以知道您正在调用哪个对象。
可以使用 this
显式调用这些方法,即
this.setSize()
,但是this
是假定的,所以你可以写出更简洁的代码。并非所有语言都这样做 - 例如在 Python 中,您始终需要指定 this
(在 Python 中称为 self
)
您发布的代码包含对 setSize()、setLayout() 等方法的引用,这些方法继承自 Frame class,并且始终可用于当前正在执行的对象。
在java中没有C或C++中显式指针的概念。但是有 this
关键字引用当前对象。
因此,此关键字的使用是可选的,
setSize(300,300);
this.setSize(300,300);
两者是一回事。
我对 java 和 gui 有疑问,这已经困扰了我一段时间 now.Below 我已经发布了一个小代码,我需要你看一下它的构造函数部分。
import java.awt.*;
class First extends Frame {
First(){
Button b=new Button("click me");
b.setBounds(30,100,80,30);// setting button position
add(b);//adding button into frame
setSize(300,300);//frame size 300 width and 300 height
setLayout(null);//no layout manager
setVisible(true);//now frame will be visible, by default not visible
}
public static void main(String args[]){
First f=new First();
}
}
我了解到,在main方法中,我们已经创建了class"First"的一个对象。我还了解到,当创建一个新对象时,会调用其 class 的构造函数进行初始化。
我的疑问是我们如何在没有点运算符的情况下使用 setSize、setLayout、setVisible 函数?如果这些函数要修改对象,创建对象会触发构造函数调用,那么我们不应该使用 this 指针吗?我们不是一直都是这样做的吗?但是我在互联网上遇到过类似的代码片段,最近真的很困惑。非常感谢任何帮助。
setSize
、setLayout
、setVisible
方法可以直接使用,因为它们是Frame
class的成员,而你的First
class 是 Frame
的子 class。
从这个意义上说,您正在使用 "inside" Frame
对象,因此可以直接调用其成员。
您只需要限定来自对象外部的方法调用,这样 Java 就可以知道您正在调用哪个对象。
可以使用 this
显式调用这些方法,即
this.setSize()
,但是this
是假定的,所以你可以写出更简洁的代码。并非所有语言都这样做 - 例如在 Python 中,您始终需要指定 this
(在 Python 中称为 self
)
您发布的代码包含对 setSize()、setLayout() 等方法的引用,这些方法继承自 Frame class,并且始终可用于当前正在执行的对象。
在java中没有C或C++中显式指针的概念。但是有 this
关键字引用当前对象。
因此,此关键字的使用是可选的,
setSize(300,300);
this.setSize(300,300);
两者是一回事。