システムとは?
システムとは、個々の要素が相互に影響しあいながら、全体として機能するまとまりや仕組みのこと。
IT分野では、個々の電子部品や機器で構成され、全体として何らかの情報処理機能を持つ装置のことや、ハードウェアやソフトウェア、ネットワークなどの要素を組み合わせ、全体として何らかの機能を発揮するひとまとまりの仕組み(情報システム、ITシステム)のことを指す。
なぜクラスやメソッドに分けるのか?
- クラスごとに役割分担して作れる!大規模システムも複数人で作成できる
- 短くまとまったソースコードは読みやすい&わかりやすい&テストが楽!
- 一度、書いたソースコードを様々なシーンで何度でも使い回すことが可能!(再利用性)
- 使うクラスだけをインスタンス化することでメモリ節約&処理スピードUP!
- どのプログラムがどこに書かれているか、誰がいつどのような背景で書いたかなど情報の管理や特定がしやすい
- 変更が必要クラスやメソッドのみを修正すれば良い!(メンテナンス性)
どのようにクラス分けをするか
1つ1つのクラスを、役割を持った『モノ(object)』と扱う = オブジェクト指向
クラスはモノの設計図
クラスブロック直下で宣言された変数 = 『フィールド』そのクラス(モノ)の情報を表します
class Sample01_car {
//フィールド(クラス直下で定義された変数)
String carModel = "ベンツ";
//メソッド(クラクションを鳴らす)
void klaxon(){
System.out.println("ブー、ブー");
オブジェクト指向とは
-
オブジェクト指向とは『ある役割を持ったモノ』ごとにクラス分けをし、モノとモノとの関係性を定義していくシステムを作り上げようとするシステム構成の考えかたのこと。
→ モノ(クラス)ごとに分業して一気に開発をすすめることができたり、情報の管理やメンテナンス性に優れているという点から、大規模なシステム開発で特に効果を発揮する -
モノを表現するためには2つの情報『属性(どのようなものか)』『機能(何ができるか) 』が必要となる。
-
クラス(=モノ全体の設計図)の『属性』を表す。また、メソッドはそのクラスの『機能』を表す
-
メソッドとフィールドを合わせて『メンバ』と言う
『クラス(設計図)』 ➡︎ 『インスタンス化』 ➡︎ 『インスタンス(実体)』
インスタンス
-
クラスはあくまでプログラムの設計図であるため、クラスそれ自身では命令を受け付けたり動作することはできません。
-
そのクラス(設計図)をもとに生成した、命令を受け付け実際に動作することのできる実体が必要になります。この実体のことを『インスタンス化』と言い、クラスを元にインスタンスを生成することを『インスタンス化』をいう。
//インスタンス化
クラス名 インスタンス名 = new クラス名();
Sample_car01 mocoCar = new Sample_car01();
//型(クラス) 変数名(インスタンス名) Sample_car01のインスタンス化
//インスタンスはクラス名を型として扱う
-
インスタンスの実態はフィールドやメソッドのメモリ上の場所情報を管理する参照変数であり、クラス名として扱う
-
以下のように記述すると生成したインスタンスのフィールドを参照したりメソッドを実行したりすることができる
インスタンス名.フィールそ変数名
インスタンス名.メソッド名(引数)
- 1つのクラスからいくらでもインスタンス化は可能であり、インスタンス名さえ違っていれば、それらは完全に独立したモノとして扱うことができる
参考サイト
【Java-オブジェクト指向】Javaプログラミングの「オブジェクト指向」が絶対理解できる講座【プロ講師が丁寧解説】
一週間で身につくJava言語の基本