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でないメソッドや
フィールド変数、クラス内クラスを参照することはできない。為でした。
うーん、まだ、感覚的にわからないです。