クラスとオブジェクト

JAVA

javaの基本的な書き方の次のステップとして、クラスとオブジェクトに差し掛かっていきます。
まずはクラスとはなにかを勉強し、その後にオブジェクト指向の勉強に進めていきます。

2014.09.24 追記
クラスとは、関連した情報を1つにまとめたもの。
以下のように宣言します。

public class TestClass {
	String test_a;
	int test_b;
}

実際にプログラムして、動きを確かめようと思い、次のようなソースを作りました。(ファイル名は「array_test2.java」としました)

public class array_test2 {

    public static void main(String[] args) {
        
        //「tc」はTestClassのインスタンスという
        TestClass tc = new TestClass();
        
        tc.test_a = "A";
        tc.test_b = 1;
        

        //ひとつのクラスから2個目のインスタンスを作る
        TestClass tc2 = new TestClass();
        tc2.test_a = "B";
        tc2.test_b = 2;
        
    }

	public class TestClass {
		String test_a;
		int test_b;
	}
}

コンパイルを実行する

c:\javac array_test2.java

すると、次のような結果がでます(エラー)。

array_test2.java:6: static でない 変数 this を static コンテキストから参照することはできません。
        TestClass tc = new TestClass();
                       ^

ネットを調べたりしましたが、少しの時間悩み、次のように書き直したところ、動作しました。

public class array_test2 {

    public static void main(String[] args) {
        
        TestClass tc = new TestClass();
        
    }

}

class TestClass {
	String test_a;
	int test_b;
}

結局、TestClassのクラスが「public class array_test2 」の外側にないとエラーになるようです。
理由としては、staticのついたメソッド(クラスメソッド)の中で、自クラス内のstaticでないメソッドや
フィールド変数、クラス内クラスを参照することはできない。為でした。

うーん、まだ、感覚的にわからないです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です