タグ付けされた質問 「class-variables」


6
最終的な定義は不適切ですか?
まず、パズル:次のコードは何を出力しますか? public class RecursiveStatic { public static void main(String[] args) { System.out.println(scale(5)); } private static final long X = scale(10); private static long scale(long value) { return X * value; } } 回答: 0 下のネタバレ。 Xscale(long)で印刷してを再定義するX = scale(10) + 3と、印刷はにX = 0なりX = 3ます。つまり、Xは一時的にに設定され0、後でに設定され3ます。これは違反ですfinal! static修飾子は、final修飾子と組み合わせて、定数の定義にも使用されます。最後の修飾子は、このフィールドの値を変更できないことを示しています。 ソース:https : //docs.oracle.com/javase/tutorial/java/javaOO/classvars.html [強調を追加] 私の質問:これはバグですか?されfinal不明確な? …

7
Rubyクラスのインスタンス変数とクラス変数
「Rubyインスタンス変数はいつ設定されますか?」と読みましたが、クラスインスタンス変数をいつ使用するかは2つ考えています。 クラス変数はクラスのすべてのオブジェクトで共有され、インスタンス変数は1つのオブジェクトに属します。クラス変数がある場合、クラスインスタンス変数を使用する余地はあまりありません。 誰かがこれらの2つの違いとそれらをいつ使用するかを説明できますか? 次にコード例を示します。 class S @@k = 23 @s = 15 def self.s @s end def self.k @@k end end p S.s #15 p S.k #23 私は理解しました、クラスインスタンス変数は継承チェーンに沿って渡されません!

5
Rubyで@@ variableはどういう意味ですか?
ダブルアットマーク(@@)が前に付いているRuby変数は何ですか?アットマークが前に付いた変数についての私の理解は、それがPHPの次のようにインスタンス変数であるということです。 PHPバージョン class Person { public $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } Rubyと同等 class Person def set_name(name) @name = name end def get_name() @name end end 二重アットマークの@@意味と、単一アットマークとの違いは何ですか?

10
クラス変数に関するアップキャストとダウンキャストの違いは何ですか
クラス変数に関して、アップキャストとダウンキャストの違いは何ですか? たとえば、次のプログラムクラスでは、Animalにはメソッドが1つしか含まれていませんが、Dogクラスには2つのメソッドが含まれているため、Dog変数をAnimal変数にキャストする方法を示しています。 キャストが行われたら、どうすればDogの別のメソッドをAnimalの変数で呼び出すことができますか。 class Animal { public void callme() { System.out.println("In callme of Animal"); } } class Dog extends Animal { public void callme() { System.out.println("In callme of Dog"); } public void callme2() { System.out.println("In callme2 of Dog"); } } public class UseAnimlas { public static void main (String [] …

4
Rubyでモジュール変数を作成する
Rubyのモジュールでクラス変数と同様に動作する変数を作成する方法はありますか?つまり、モジュールのインスタンスを初期化しなくてもアクセスできますが、(モジュールの定数とは異なり)変更できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.