ApexとJavaの違い 内部クラスについて

内部クラスについて説明
内部クラスは、Java の静的な内部クラスのように機能しますが、static キーワードを要求しません。
内部クラスは、外部クラスのようにインスタンスメンバー変数を持つことができますが、
(this キーワードを使った) 外部クラスのインスタンスへの暗黙的ポインタはありません。

使用例
1.Javaの内部クラスの書き方

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// 外部クラス
class Outer {
// static内部クラス
public static class Inner {
public void funA() {
//処理コード
}
}
}
public class Main {
public static void main(String[] args) {
// static内部クラスインスタンス生成
Outer.Inner tt = new Outer.Inner();
tt.funA();
}
}
// 外部クラス class Outer { // static内部クラス public static class Inner { public void funA() { //処理コード } } } public class Main { public static void main(String[] args) { // static内部クラスインスタンス生成 Outer.Inner tt = new Outer.Inner(); tt.funA(); } }
// 外部クラス
class Outer {
    // static内部クラス
    public static class Inner {
        public void funA() {
            //処理コード
        }
    }
}
 
public class Main {
    public static void main(String[] args) {
        // static内部クラスインスタンス生成
        Outer.Inner tt = new Outer.Inner();
        tt.funA();
    }
}

2.Apexの内部クラスの書き方
Apexでstaticなしでコードを記述します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// 外部クラス
public class OuterClass {
//内部クラス
public class InnerClass {
}
}
public class Main {
//static修飾子がついている場合と同じようにインスタンス化できる
OuterClass.InnerClass tt = new OuterClass.InnerClass();
}
// 外部クラス public class OuterClass { //内部クラス public class InnerClass { } } public class Main { //static修飾子がついている場合と同じようにインスタンス化できる OuterClass.InnerClass tt = new OuterClass.InnerClass(); }
// 外部クラス
public class OuterClass {   
    //内部クラス
    public class InnerClass {
    }
}
public class Main {
    //static修飾子がついている場合と同じようにインスタンス化できる
    OuterClass.InnerClass tt = new OuterClass.InnerClass();
}

 

 

Apex

Posted by arkgame