#【Java オブジェクト指向編】
新人研修時のJava オブジェクト指向のメモです。
##オブジェクト指向(プロパティ、メソッド)
部品化の考え方であり、「人間が把握しきれない複雑さ」を克服するために考えられた。
//①
public class Car{
String maker
int displacement
String color
void start(){
System.out.println("発進")
}
void turn(){
System.out.println("曲がる")
}
void stop(){
System.out.println("停止")
}
}
//②
public class TestCar{
public static void main(String[] args) {
Car car = new Car();
}
}
オブジェクト指向でやっていること。(上記の例)
①車の設計書を作成
↓
②車の設計書を元に、インスタンス(new)車を製造。
コンストラクタは、インスタンス化後にすぐに実行される。最初のみ。
//コンストラクタの基本書式
public class クラス名
クラス名() {
//ここに自動実行処理を記述する。
}
}
コンストラクタは、メソッド名とクラス名が同じ。メソッド宣言に戻り値なし(voidもなし)
クラスブロックの中に宣告された変数を、フィールドという。
##【オブジェクト指向の3大機能】
###①カプセル化(アクセス制御)
private 同一クラスからしかアクセスできない
クラスは、private
メソッドは、public
フィールドは、private で修飾する。
フィールドは、privateで隠して、getter,setter メソッド経由でアクセスする。
メソッドでフィールドを保護している。
####getterとsetter
//getterメソッドの定石
public 値を取り出すフィールドの型 getフィールド名() {
return this.フィールド名;
}
自分のクラスのフィールドを他クラスから呼び出せるようにするために、
フィールドの中身を返すだけのメソッド
//setterメソッドの定石
public void setフィールド名(フィールドの型 任意の変数名) {
this.フィールド名 = 任意の変数名;
}
ある特定のフィールドに、指定された値を代入するだけのメソッド
###②継承( 【extends】 類似したものを作成)
オーバーライドとは、親クラスを継承した子クラスを宣言する時に、親クラスのメンバを子クラス側で上書きすることをいう。
継承は、ある2つのクラスに特化・汎化の関係があることを示す。
継承元を、スーパークラス
継承先を、サブクラス
※宣言時にfinalと記述すれば、クラスは継承できない。
###③多様性(だいたい同じように。その結果が効率よい開発に)
インスタンスを曖昧に捉えて考える。
is-aの関係 子クラスis-a親クラス(子クラスは親クラスの一種)
##①②③ これらを利用して、コンピューター内の仮想世界を再現
Javaの仮想世界は、コンピュータのメモリ領域
##余談
Java研修で学習したオブジェクト指向が現在の業務で活かされています。
この記事は、プログラミング初心者の私がまとめたものなので、何か助言がありましたら、コメントを頂けるととても嬉しいです!
業務外は、Ruby,Ruby on Railsを使用して、ポートフォリオ作成をしています。
今後も引き続き頑張っていきます。