ここでは下記ご紹介の本よりかなり要約して説明させていただきます。詳しく勉強したい人は下記の本をご購入してくださいませ。もっと理解が深まります。
オブジェクト指向プログラミングとは、多くの人で分業して行う仕事をまねてプログラムすることです。そのメリットは次のようなものがあります。
- 担当者に分けて考えていけるので、複雑な処理を行うときも「どんな担当者が必要か」、「全体としてどんな流れで処理を行っていくのか」という、現場監督的な広い視点で見れる。
- プログラムをオブジェクトごとに切り分けて作れるので、1つのプログラムを複数の開発者で手分けして作ることが出来る。
- 修正もオブジェクトで切り分けされているので、やりやすくなります。
クラスとインスタンス
クラスとは、いわばオブジェクトの設計図です。そのクラスを見れば、そのオブジェクトにどんなことが出来て、どんな手順で処理をおこなうのかがわかります。
インスタンスとは、クラスという設計図からプログラムの中で実際に動いて登場するもの。
クラスの作り方
クラスの作り方のルール
- Javaでは基本的に1クラスは1ファイルで作ります。
- ファイル名はクラス名と同じ名前でつくる。「クラス名.java」
- クラスは、波カッコで囲んで作る「{ }」
クラスを作る書式: class クラス名{ }
クラスからインスタンスを作る クラス名 変数名 = new クラス名();
では実際にクラスを作ってみましょう、今回は作り方を覚えるので「何もしない空っぽのオブジェクトを作るプログラム」です。クラス名はMyClassとします。
新しいクラス用のファイルを作る
+のタグをクリックすると新しいファイルが作られます。File1と出ますのでファイル名を変更します。
次にクラスを作ります。class MyClassと書いたあと{ }で囲んで、これでとりあえず空っぽのクラスは完成です。
書いたら今度はMain.javaをクリックして移動し、MyClassクラスのインスタンスを作ります。書式は次のようでしたね。
クラスからインスタンスを作る: クラス名 変数名 = new クラス名();
クラス名、変数名=new インスタンスを作る命令を書いて完成です。
補足: クラスは設計図で、インスタンスを作ってはじめて使えるようになるのですが、「static」で指定すると、インスタンスがなくても使えるフィールドやメソッドを作れます。 インスタンスではなく「クラスが持っているフィールドやメソッド」なので「クラスフィールド」「クラスメソッド」と呼びます。 クラスメソッドはこれまでも使ってきていますが、お気づきでしょうか? Main.javaを実行したときの最初に実行される「public static void main(String[]args)」がstaticクラスメソッドでした。だからインスタンスを作らなくても、それだけで使えていたのです。 他にも「System.out.println」もインスタンスを作らないで使える、クラスメソッドです。
フィールドとメソッド
クラスが機能を持って動くには、フィールドとメソッドが必要です。
フィールドとはクラスが持っている変数のことです。「データ型 変数名;」で作ります。
メソッドとはクラスにできる仕事です。「戻り値の型 メソッド名(引数リスト){ 処理}」で定義します。
引数や戻り値を返さない場合は「void メソッド名(){ 処理 }」でvoidを加えて作ります。 戻り値がある場合には、voidは加えずに「メソッド名( ) { 処理 }」で作ります。
それでは、先ほど作ったMyClass.javaファイルにフィールドとメソッドを追記しましょう。
つづいてMain.javaに移り、インスタンスのメソッドを呼び出してみましょう。
myClass.hello();によってMyClassインスタンスのhelloメソッドにアクセスしています。
インスタンスの追加
インスタンスを追加して、違う名前を表示するようにしてみよう。
赤線のようにクラスMyClassでも変数が違うものを2つ用意しインスタンスを作成しましたました。(yourClass, hisClass)
そして各インスタンスのmyNameフィールドに値を入れました(css, Python)
最後に各インスタンスのhelloメソッドにアクセスして呼び出しています。