ApexとJavaの違い 内部クラスについて
内部クラスについて説明
内部クラスは、Java の静的な内部クラスのように機能しますが、static キーワードを要求しません。
内部クラスは、外部クラスのようにインスタンスメンバー変数を持つことができますが、
(this キーワードを使った) 外部クラスのインスタンスへの暗黙的ポインタはありません。
使用例
1.Javaの内部クラスの書き方
// 外部クラス
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なしでコードを記述します
// 外部クラス
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(); }