今日からしばらくは、昨年度に新人さん相手にJava勉強会をやった際に作成したメモを清書していこうと思います。
今日はJavaのクラスについてまとめます。
1. クラスとインスタンス
クラス・・・設計図のようなもの
インスタンス・・・設計図をもとに作成した実体
// 動物の設計書(クラス) public class Animal { /** 名前 */ public String name; /** 体長 */ public int height; /** * コンストラクタ<br> * * @param name 名前 * @param height 体長 */ public Animal(String name, int height) { this.name = name; this.height = height; } } public class Main { public static void main(String[] args) { // ねこ(インスタンス)の作成 Animal cat = new Animal("ねこ", 90); } }
2. クラス
2.1 クラスに関する色々なものについて
番号 | 名称 | 説明 |
---|---|---|
1 | 定数 | 最初に代入した値を後から変更できない変数のこと。 キーワードfinalをつける。 |
2 | ローカル変数 | メソッド内やコンストラクタ内で宣言した変数のこと。宣言したメソッド・コンストラクタ内でのみ使用可能。 |
3 | メンバ変数 | クラスに宣言した変数のこと。クラス内のメソッド・コンストラクタから自由に使用できる。インスタンスごとに異なる変数となる。 |
4 | static変数 | インスタンスを生成せずに使える変数のこと。クラス内の変数なので、そのクラスから作られたインスタンス全てで共有される。 |
5 | staticメソッド | インスタンスを生成せずに使えるメソッドのこと。 |
6 | コンストラクタ | インスタンスを生成する(newする)際に自動で呼ばれるメソッド。コンストラクタ名はクラス名と同じにする。 |
public class Sample { /** 定数 */ public static final int NUMBER_OF_MONTHS = 12; /** メンバ変数 */ public String name; /** static変数 */ public static String hoge; /** コンストラクタ */ public Sample(){ } /** (インスタンス)メソッド */ public void doSomething(String str) { // ローカル変数 String keishou = "さん"; name = str + keishou; } /** staticメソッド */ public static void doStatic(){ System.out.println(hoge); } } public class Main { public static void main(String[] args) { // コンストラクタでインスタンスを作成する Sample sample = new Sample(); // インスタンスメソッドはインスタンスから実行する sample.doSomething("はなこ"); // メンバ変数はインスタンスから参照できる sample.name; // staticメソッドはクラスから実行する Sample.doStatic(); // static変数はクラスから参照できる Sample.hoge; } }
2.2 アクセス修飾子
番号 | 名称 | 説明 |
---|---|---|
1 | public | すべてのクラスからアクセスできる |
2 | protected | 同じパッケージ内のクラスやそのクラスを継承したサブクラス内部(違うパッケージでも可)からアクセスできる |
3 | パッケージプライベート | 同じパッケージ内のすべてのクラスからアクセスできる |
4 | private | クラス内部からのみアクセスできる |