クラスとインスタンス
研修で学んだ基礎的なことのまとめです。
修正点がありましたら教えていただけますと幸いです。
***
クラス
プログラミングを実行するのに必要な処理がまとめられたオブジェクトです。
クラスの中にメソッドを書き、メソッドの中に処理を記述します。
何のデータが含まれているクラスなのか、見てわかる名前が良いとされています。
メソッド
クラス内の処理のことを指します。
メソッドはクラスの中にのみ記述することが可能です。
プログラム中で呼び出すことができます。
メソッド名(); //同じクラス内から呼ぶとき
メソッドについている()の中には引数を入れることができます。
名称に決まりはありませんが、クラスと同様見てなんとなく理解ができる名前が望ましいのではないでしょうか。
オーバーロード
引数が異なれば、複数の定義ができます。
フィールド
クラス内のデータのことを指します。フィールド≒プロパティ
フィールド宣言
String name = nekomura
型と変数名を使い、変数を定義します。
ローカル変数とフィールド変数
ローカル変数はメソッド内で定義されたもので、そのメソッドを抜けるとなくなります。
一方フィールド変数は、クラス内に直接書かれている変数で、そのクラス内だったらどこからでも参照可能です。
public class Sample {
public void main(String[] args){
int add = 10; //フィールド変数
public void Product(){
int a = 2; //ローカル変数なのでこのメソッド限定
}
System.out.println(add); //フィールド変数なのでどこからでも呼び出し可能
インスタンス
クラスをもとに生み出されたオブジェクトです。
インスタンス化
クラスからオブジェクトを作成することをインスタンス化と言います。
クラス名 任意の変数名 = new クラス名(); //デフォルトコンストラクタ
インスタンス化をすることで、任意の変数名の新しいオブジェクトが作成されます。
このとき変数のフィールドは初期化され、値がない状態です。
コンストラクタ
インスタンス化した際に作動するメソッドです。
メンバ変数の初期化が行われます。戻り値は表記しません。
public クラス名(){ //引数なしのコンストラクタ
初期化処理
}
public クラス名(String str){ //引数ありのコンストラクタ
初期化処理
}
カプセル化
オブジェクト指向の特徴の一つです。
オブジェクト指向の特徴については後日別記事にまとめ、リンクをここに載せる予定です。
それまでの簡易的な説明↓
オブジェクトの属性を隠し、操作のみ公開された状態です。
属性を隠すというのは、外部から参照できないようにすることです。
オブジェクト指向では、private修飾子をつけてカプセル化をするのが通常です。
アクセサ
アクセサメソッド
カプセル化された変数を外部からアクセスするために使用するメソッドです。
アクセサメソッドを経由して直接参照させないようにすることができます。
原則、アクセサは必ず用意します。
publicを使っている等の参照できる場合は用意しないこともあります。
また、外部から参照させたくない場合にも用意しないことがあります。
getter
アクセサメソッドの一つです。
外部から変数の読み取り・参照に使われます。
setフィールド名()
このメソッドを使いアクセスします。
setter
アクセサメソッドの一つです。
外部から変数を書き込み・設定するのに使われます。
getフィールド名()
このメソッドを使いアクセスします。