質問: new test1(); t.calc(); } }
回答: > 「test1 t」をグローバル変数で定義したのですが 出発点から誤解があります。この場合のtはグローバル変数ではありません。インスタンス変数です。 > 「main」は特別な関数というのは分るのですが、staticフィールドとか > クラスオブジェクトしか、main()からは覗けないという設計思想(?) > とかはどのようなものなのでしょうか。 main()が特殊だからインスタンス変数のtを参照できないのではありません。main()がstaticメソッドだからです。 main()以外にstaticメソッドを定義して、同じようにインスタンス変数のtをアクセスしようとしたら同じようにコンパイルエラーになります。