2016-04-05 23 views
-3

'da anlam ve anlamıyorum. Java için yeni biriyim ve üzerinde bir düğme bulunan bir JFrame yapan bir ödev yazdım. Tam olarak ne "this.setTitle ..." ve "this.setSize ..." ne demek."Bu" ne demektir. 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

Bu arada, muhtemelen Stack Overflow için en iyi sorudur. – spektr

+0

Resmi Java eğiticileri oldukça iyi. [İşte bu sayfa] (https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html). – DavidS

cevap

2

"Bu" bu durumda özel bir JFrame olan sınıfın, Assignment1, bir örneğini temsil eder: İşte benim kodudur.

1

setTitle, setSize, getContentPane ve setVisible yöntemleri JFrame yöntemleridir ve Assignement1 sınıfınız tarafından devralınırlar.

Bu bu, kullandığınız sınıfın örneğini belirten ayrılmış bir sözcüktür. Örneğin, this.setTitle dediğinizde, kullandığınız geçerli Assignement1 örneğinin setTitle yöntemine başvurunuz. Eğer a1.setTitle ("alfa") derseniz size örnek a1 setTitle metodu kullanarak olacak

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

:

böyle Assignment1 iki örneğini oluşturmak varsayalım. Sınıfın içinde, tam olarak sınıfınızda olduğu gibi this.setTitle olarak bu yönteme başvurursunuz. Sonra a2.settitle ("beta") derseniz, ilk ifadeyle çelişmez. Biri "alfa" ve diğeri "beta" başlıklı iki JFrames alırsınız.

Bunu statik yöntemlerle kullanamazsınız. Statik yöntemler, sınıfın bir örneğini oluşturmaya gerek kalmadan çağrılabilir. Bu yüzden "sınıf yöntemleri" olarak da adlandırılır.

+0

Bu arada, @choward ile katılıyorum. Bu soru StackOverflow'ta daha iyi olurdu ... –