目次
- 一、概念
- 二、オブジェクト指向を学ぶ理由
- 三、クラスの概要
- 四、オブジェクトのメモリ構造
- 五、メンバ変数とローカル変数の違い
一、概念
オブジェクト指向は技術ではなく、プログラミング思想の一つです。コードをどのように構成し、問題をどのように解決するかという考え方を含みます。
二、オブジェクト指向を学ぶ理由
日常生活では、私たちは自然とオブジェクト指向の考え方を使って問題を解決しています。プログラミングにおいてもこの思想を採用すれば、開発がより簡単になり、プログラムの理解も容易になります。
public class Test{
public static void main(String[] args){
Cat neko = new Cat(); // オブジェクトの作成 -- 猫
Mouse nezumi = new Mouse();
neko.eat(nezumi);
}
}
三、クラスの概要
(一)Javaでオブジェクトを作成するには、まずクラスの定義が必要です。Javaではクラスに基づいてオブジェクトを作成し、一つのクラスから複数のオブジェクトを生成できます。
1. クラスの構成:属性と振る舞い
- 属性(メンバ変数):これまでの変数定義形式と同じですが、メソッドの外部に配置する必要があります
- 振る舞い(メソッド):これまでのメソッド定義形式と同じですが、staticキーワードは不要です
public class Student{
String name;
int age;
public void study(){
System.out.println("Javaを学習中");
}
public void eat(){
System.out.println("フルーツを食べる");
}
}
public class Test{
public static void main(String[] args){
Student student1 = new Student(); // 名前がtanaka、年齢22歳の学生オブジェクトを作成
student1.name = "tanaka";
student1.age = 22;
Student student2 = new Student(); // 名前がsuzuki、年齢21歳の学生オブジェクトを作成
student2.name = "suzuki";
student2.age = 21;
System.out.println(student1.name); // student1オブジェクトの情報を出力
System.out.println(student1.age);
student1.study();
student1.eat();
}
}
四、オブジェクトのメモリ構造
オブジェクトがメモリ上にどのように配置されるかを理解することは、Javaプログラミングにおいて重要です。オブジェクトはヒープメモリ上に作成され、変数参照はスタックメモリに保存されます。
五、メンバ変数とローカル変数の違い
| 違い | メンバ変数 | ローカル変数 |
|---|---|---|
| クラス内の位置 | メソッドの外側 | メソッドの内側 |
| 初期化の位置 | デフォルト値で初期化される | 初期化値がなく、使用前に値を設定する必要がある |
| メモリ上の位置 | ヒープメモリ | スタックメモリ |
| ライフサイクル | オブジェクトの作成時に生成され、オブジェクトが破棄されると消える | メソッドの呼び出し時に生成され、メソッドの終了時に消える |
| スコープ | 所属するブロック内で有効 | |