2016-06-30 16 views
-2

Javaでは、一部のクラスではnewというキーワードを使用してインスタンスを作成する必要があります。一部のクラスではインスタンス化が必要なものがいくつかあります。なぜですか?

newを使用してインスタンス化すると、eclipseのみがオブジェクトの後ろにmethodsと表示されます。しかし、いくつかのクラスはクラス名とクラス名を入力するだけです。提案が発生します。

違いは何ですか?具体的に私が話しているクラスは、次のとおりです。

WebDriverWait - インスタンス化を必要としない - インスタンス化

ExpectedConditionsが必要です。

+4

'static 'メソッドと' non-static'メソッドについて調べてください。 –

+0

これは、インスタンスメソッドと静的メソッド(クラスメソッド)の違いです。 –

+2

[静的クラスのJava]の可能な複写(http://stackoverflow.com/questions/7486012/static-classes-in-java) – nautical

答えて

-1

Javaでは、静的キーワードを使用する必要があります。

静的メソッドを定義するとき、オブジェクトを作成する必要はありません.uは直接className.methodName()として呼び出すことができます。

public class add{ 
    public static class addTwoNumber(int a, int b) { 
     return a+b; 
    } 
} 

public class staticTest{ 
    public static void main(String args[]) { 
     system.out.println(add.addTwoNumber(2,2)); 
    } 
} 
+0

1)これはJavaでクラスを定義する方法ではありません。 2) 'addTwoNumber'は静的ではないので、呼び出すために' add'をインスタンス化する必要があります。 –

+0

@AndyTurnerオハイオ州私は訂正 – suresh

0

他の投稿と同様に、この機能にはstaticというキーワードが適用されます。

  1. クラスレベル
  2. インスタンスレベル
、それらが定義されている場合

クラスレベルの変数/メソッドは、キーワードstaticで接頭辞:オブジェクト指向プログラミングでは、我々は、すなわち変数/メソッドの2種類を、持っていますインスタンスレベルの変数/メソッドはそうではありません。クラスの異なるインスタンス間で異なるものを定義したいときは、静的変数/メソッドを使用します。クラスのインスタンスを作成し、参照を使用して静的メソッド/変数を呼び出すこともできますが、規約に従って、静的変数/メソッドはクラスに属し、特定のインスタンスには属さないため、回避されます。

静的キーワードhereについて詳しく読むことができます。

+0

のためにおかしなことを忘れてしまった。 –

+0

いいえ、なぜそれをしたいですか? –

0

実際はとてもシンプルです。
クラスがインスタンス化されたクラスオブジェクトが作成されるたびに、ランタイムシステムは、インスタンスメンバと呼ばれるそのオブジェクト/インスタンスのすべての変数とメソッドのコピーを作成します。今私たちのオブジェクトは、これらのコピーメンバーだけを使用します。これらのメンバーにアクセスするには、obejctname.memberを使用します。
対照的に、クラスメンバと呼ばれるものがあります。クラスメンバは、staticキーワードを使用して定義されます。つまり、作成されるインスタンスの数に関係なく、クラスはこれらのメンバーのコピーを1つだけ作成します。これらのメンバーにアクセスするには、classname.staticmemberを使用します。

簡単な例:
クラス名はです。です。これには、名前、年齢、run()、sleep()などのインスタンスメソッドなどのインスタンス変数があります。クラスには1つの静的メソッドsalary()が含まれています。

public class Person { 

    //Instance Members 
    private String name; 
    private int age; 

    public void run() { 

    } 

    public void sleep() { 

    } 

    //Class Member 
    public static void salary() { 

    } 

    public static void main(String[] args) throws IOException { 
     Person person1 = new Person(); 
     Person person2 = new Person(); 

     //accessing instance members 

     String person1NameInMain = person1.name; 
     int person1AgeInMain = person1.age; 

     person1.run(); 
     person2.sleep(); 

     Person.salary(); // accessing static member 

    } 
} 

これだけです。私はこれが助けて欲しい

関連する問題