2017-08-01 4 views
-4

私はJavaを学んでいて、背景を設定するのになぜnew Colorを置く必要があるのだろうと思っています。なぜ「新しい色」を入れる必要がありますか?

私は先生に尋ねたところ、彼は私にどのように答えるべきか分からず、私は周りを見回しましたが、答えも見つけられませんでした。私はColorを理解

setBackground(new Color(150, 150, 150)) 
setLayout(new GridLayout(3, 4)); 

は、Javaのライブラリから来て、newは、変数のためのメモリ上のスペースを作成するために使用されます。しかし、私はなぜここでそれを使うのか分からない。誰でも?

+4

***新しい**は、変数のメモリ上に領域を作成するために使用します。*いいえ、新しいオブジェクトを作成するために使用されます。オブジェクトを作成しているので、それを使用する必要があります。あなたは何について混乱していますか? – shmosel

+0

呼び出すメソッドは、Colorオブジェクトへの参照を受け入れます。色を表すオブジェクトを作成し、その色オブジェクトへの参照をメソッドに渡しています。ところで、*** Java変数はオブジェクトを表しておらず、Java変数は 'new' ***で割り当てられません。 –

+1

これは、Javaおよびオブジェクト指向プログラミングに関するほとんどのチュートリアルまたはテキストの章を読むことで最もよく答えられます。このチュートリアルや本を読むと、ファンダメンタルズを磨く必要があることが示唆されています。 –

答えて

1

Component.setBackground(Color)のメソッドはColorのインスタンスを取るためです。 RGB(またはCMYK)の値を直接取得するメソッドはありません。代わりに、色の抽象概念を取り、Colorという名前のクラスのインスタンス(メソッドがとる)で表現します。

0

機能自体を見てください。

メソッドsetBackground(Colour c)は、オブジェクト/インスタンスColorを取ります。これは、newを使用しなければならないことを意味し、その後にクラス名とそれに従うパラメータを指定すると、新しいオブジェクトが作成されます。

プライベートコンストラクタが存在しない限り、常にオブジェクトを作成するためにnewが使用されます。新しいを使用して作成することができます

例クラス:

public class Example { 
    private int id; 


    public Example() { 
     this.id = -1; 
    } 
} 
新しいを使用して作成することができません

例クラス:

public class Example { 
    private int id; 


    private Example() { 
     this.id = -1; 
    } 
} 

は、クラスがpublicコンストラクタを持っていない場合あなたが使用することができますキーワードを使用してインスタントを作成するce/object。通常、このクラスは代わりにこの機能を提供する静的関数を提供します。

関連する問題