2016-04-05 5 views
-3

私は新しいJavaの一種であり、それをボタンでJFrameにした課題を書いた。正確に "this.setTitle ..."と "this.setSize ..."はどういう意味ですか?ここに私のコードは次のとおりです。「これは何ですか?」平均とJavaで参照する

import javax.swing.JButton; 
import javax.swing.JFrame; 

public class Assignment1 extends JFrame{ 
    public Assignment1() throws Exception{ 
     this.setTitle("Assignment 1"); 
     this.setSize(400,800); 
     this.getContentPane().add(new JButton("Click")); 
     this.setVisible(true); 
    } 
public static void main(String[] args) throws Exception{ 
    new Assignment1(); 


} 
} 
+0

これはおそらく、スタックオーバーフローのための最良の質問です。 – spektr

+0

公式のJavaチュートリアルはかなり良いです。 [ここにはこのページがあります](https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html)。 – DavidS

答えて

2

「これは」このケースでは、特殊なJFrameのあるクラス、Assignment1、のインスタンスを表します。

1

setTitle、setSize、getContentPaneおよびsetVisibleは、JFrameのメソッドであり、Assignment1クラスによって継承されています。

は、使用しているクラスのインスタンスを示す予約語です。 this.setTitleと言うと、たとえば、使用しているAssignement1の現在のインスタンスのsetTitleメソッドを参照します。

a1 = new Assignment1(); 
a2 = new Assignment1(); 

あなたはa1.setTitle(「アルファ」)を言う場合は、インスタンスa1ののsetTitleメソッドを使用することがあります:

は、あなたがこのようなAssignment1の2つのインスタンスを作成するとします。クラスの中では、このメソッドをthis.setTitleと呼んでいます。これはあなたのクラスとまったく同じです。そして、a2.settitle( "beta")と言うと、これは最初のステートメントと衝突しません。 2つのJFrameを取得します.1つはタイトル「alfa」、もう1つはタイトル「beta」です。

これは静的メソッドでは使用できない理由です。静的メソッドは、クラスのインスタンスを作成する必要なく呼び出すことができます。これが「クラスメソッド」とも呼ばれる理由です。

+0

ところで、私は@chowardに同意します。この質問はStackOverflowでもっとうまくいくはずです... –

関連する問題