内部クラスの紹介
別のクラスで定義されたクラスは、内部クラスと呼ばれます
メンバー内部クラス
1 ..新しいメンバーの内部クラスを作成するには、最初に外部クラスのインスタンスを作成し、次に.newを介して内部クラスのオブジェクトを作成する必要があります。
2 ..これは、クラス名を介して外部クラスのすべてのプロパティと方法にアクセスできます。
public class test1 {string name = "asnd"; public static void main(string [] args){test1 test1 = new test1(); inner minner = test1.new inner(); minner.print(); } void show(){system.out.println( "show"); } public class inner {string name = "123"; private void print(){show(); System.out.println(name); // print 123 system.out.println(test1.this.name); // print asnd}}}}匿名の内部クラス
名前のないクラスは、クラスの作成中にオブジェクトを作成します。
匿名の内部クラスを使用するためにクラスを1回使用するだけです
file file = new file( "d:/cc.txt"){@override public boolean delete(){system.out.println( "de delete y/n");スキャナーinput = new Scanner(System.in); string str = input.next(); if(str.equals( "y")){return super.delete(); } system.out.println( "delete failed"); falseを返します。 }}; file.delete(); }匿名のオブジェクト
オブジェクトは、1回アクセスする必要があります。
new shood(){@override public void run(){system.out.println( "thread start!"); {thread.sleep(2000); System.out.println( "スレッドエンド!"); } catch(Exception e){e.printstacktrace(); } super.run(); } }。始める();静的インナークラス
1.静的インナークラスは、外部クラスの静的メソッドと変数のみにアクセスでき、非静的にアクセスできません。
2。外部クラスへの参照を作成せずに、静的な内部クラスを直接作成できます。
匿名の内部クラスアクセスローカル変数
内部クラスアクセスローカル変数は最終的でなければなりません。追加されていない場合、JDK1.8はデフォルトで追加されます。使用される変数が変更された場合、次の方法を使用できます。または、次の方法を最初に静的として設定できます。
for(int i = 0; i <5; i ++){final int finali = i; new shood(){public void run(){system.out.println(finali); }; }。始める(); }以下は、内部クラスの実装スキルの紹介です
public static void main(string [] args){lam mlam = new lam(); //実装の最初の方法mlam.to(new light(){@Override public void shin(){system.out.println( "on's first method");}}); //実装クラスの2番目の方法MylamはLightを実装します{@Override public void shin(){system.out.println( "second"); }} mlam.to(new mylam()); }} interface light {void shin();} class lam {public void to(ligh ligh){ligh.shin(); system.out.println( "on"); }}読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!