Java文法メモ クラス その1
クラスの宣言
クラスはフィールド(属性)とメソッド(操作)で構成されます。
Class |
---|
-field1 |
-field2 |
+method1 |
+method2 |
クラス宣言の例
class Person{ private int m_age; //フィールド private String m_name; //フィールド public void sleep() { //メソッド //処理 } public void eat() { //メソッド //処理 } }
クラスとパッケージ
Javaではパッケージと呼ばれる単位でドメインを区切っています。パッケージ内には一般に複数のクラスがあります。
package1 | package2 |
---|---|
class A,B,C | class P,Q,R |
クラスの利用
同じパッケージ内のクラスを利用する場合
Person taro = new Person("Taro"); //インスタンス化 taro.sleep(); //メソッドの利用(フィールドも同様)
外部パッケージ内のクラスを利用する場合
import パッケージ名 Person taro = new Person("Taro"); //インスタンス化 taro.sleep(); //メソッドの利用(フィールドも同様)
アクセシビリティ
クラスをどこから利用できるのか定めることができます。
クラスのアクセシビリティは次の2種類
class Sample //同一パッケージ内から参照可 public class Sample //外部パッケージから参照可
フィールドとメソッドのアクセシビリティは以下の4種類
class Sample{ private void pri() { //他の全てのクラスから参照不可 } protected void pro() { //派生クラスのみ参照可 } void none(){ //同一パッケージのクラスから参照可 } public void pub() { //全てのクラスから参照可 } }
コンストラクタ
クラスをインスタンス化する際に最初に呼び出されるメソッドをコンストラクタと呼びます
class Person{ private String m_name; //フィールド public Person(String name){ //コンストラクタ m_name = name; } }
静的フィールドと静的メソッド
class Sample{ private int field; //各インスタンスに生成される private static int commonFiled; //Sampleクラスで共通 public void method() { //各インスタンス } public static void commonMethod() { //Sampleクラスで共通 } } //利用例(フィールドも同様) Sample sample = new Sample; sample.commonMethod(); //インスタンスから呼び出す Sample.commonMethod(); //クラスとして呼び出す
Sampleクラスが保持する情報 | |
---|---|
commonFiled commonMethod | |
Sampleクラスのインスタンス1が保持する情報 | Sampleクラスのインスタンス2が保持する情報 |
field method | field method |
初期化子
コンストラクタ内の処理が実行される前に初期化処理を行うことができます。
class Sample{ private int field; private static int commonFiled; static{ //静的フィールドの初期化子 commonFiled = 0; } { //フィールドの初期化子 field = 0; } public Sample() { //コンストラクタ } }
その他
メインメソッド
Javaは全ての処理をクラスで記述します。mainメソッドがエントリポイントとなります。
public class SampleMain { public static void main(String[] arg){ //プログラム開始時の処理 } }
ちなみにクラス名は自由に定義することができます。