テトリスゲームを作ろうとしていますが、コンパイラエラーが発生します Shape is not an enclosing class オブジェクトを作成しようとしたとき public class Test { public static void main(String[] args) { Shape s = new Shapes.ZShape(); } } それぞれの形状に内部クラスを使用しています。これが私のコードの一部です public class Shapes { class AShape { } class ZShape { } } 何が悪いのですか?
私はJava 8でラムダで遊んでいて、警告に出くわしましたlocal variables referenced from a lambda expression must be final or effectively final。匿名クラス内で変数を使用する場合、それらは外部クラスでfinalでなければならないことは知っていますが、それでも-finalと実質的にfinalの違いは何ですか?
私は次のコードを持っています: class Hello { class Thing { public int size; Thing() { size = 0; } } public static void main(String[] args) { Thing thing1 = new Thing(); System.out.println("Hello, World!"); } } 私Thingは何もしないことを知っていますが、私のHello、Worldプログラムはそれなしで問題なくコンパイルできます。私で失敗しているのは、定義されたクラスだけです。 そして、それはコンパイルを拒否します。私No enclosing instance of type Hello is accessible."は新しいものを生み出す線にたどり着きます。私はどちらかを推測しています: システムレベルの問題(DrJavaまたは私のJavaインストールのいずれか)または Javaで動作するプログラムを構築する方法について、いくつかの基本的な誤解があります。 何か案は?
次のコードがあります。内部クラスオブジェクトの作成に使用した外部クラスオブジェクトを取得しますinner。どうすればできますか? public class OuterClass { public class InnerClass { private String name = "Peakit"; } public static void main(String[] args) { OuterClass outer = new OuterClass(); InnerClass inner = outer.new InnerClass(); // How to get the same outer object which created the inner object back? OuterClass anotherOuter = ?? ; …
外部クラスが内部クラスのプライベートインスタンス変数にアクセスできることを確認しました。これはどのようにして可能ですか?以下は、同じことを示すサンプルコードです。 class ABC{ class XYZ{ private int x=10; } public static void main(String... args){ ABC.XYZ xx = new ABC().new XYZ(); System.out.println("Hello :: "+xx.x); ///Why is this allowed?? } } この動作が許可されるのはなぜですか?
次のコードがあります。 public class MyClass { class Inner { int s, e, p; } public static void main(String args[]) { Inner in; } } この部分までのコードは大丈夫ですが、私のようなmainメソッド内「で」インスタンス化することはできませんよin = new Inner()、それが表示されているようnon static field cannot be referenced in static context。 どうすればよいですか?Innerクラスを静的にしたくありません。
Pythonのネストされたクラスのスコープを理解しようとしています。これが私のコード例です: class OuterClass: outer_var = 1 class InnerClass: inner_var = outer_var クラスの作成が完了せず、エラーが発生します。 <type 'exceptions.NameError'>: name 'outer_var' is not defined 試しinner_var = Outerclass.outer_varてもうまくいきません。私は得ます: <type 'exceptions.NameError'>: name 'OuterClass' is not defined outer_varからスタティックにアクセスしようとしていますInnerClass。 これを行う方法はありますか?
私は建物だユーザークラスをしかし、この時、私は少し違っそれを構築するために考えていた、私の新しいウェブサイトのための... C ++、Java、さらにはRuby(そしておそらく他のプログラミング言語)でも、メインクラス内でネストされたクラスや内部クラスを使用できるため、コードをよりオブジェクト指向で組織化することができます。 PHPでは、私はそのようなことをしたいと思います: <?php public class User { public $userid; public $username; private $password; public class UserProfile { // some code here } private class UserHistory { // some code here } } ?> PHPでそれは可能ですか?どうすれば達成できますか? 更新 それが不可能な場合、将来のPHPバージョンはネストされたクラスをサポートする可能性がありますか?