0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Java 入門_第8章_「インスタンス」と「クラス」について

Last updated at Posted at 2020-01-09

#はじめに
超ド級の初心者である私が、私自身解る様にまとめた用語解説集である。
Java入門の-第8章-「インスタンス」と「クラス」とはどういう事か?どのように動いているか?
が、解る様にまとめている。

#仮想世界の作り方

  • オブジェクトを生み出す手順

①クラスを定義
②そのクラスに基づいて、オブジェクトを生成する。

  • クラスとオブジェクトは、全く違うものである。

  • 仮想世界で活躍するのは、**「インスタンス」**である。

  • オブジェクト
    時々クラスのことを指して使われることもある曖昧なもの。

  • インスタンス
    金型(クラス)ではなく、その型から生み出された仮想世界で活躍する実体を厳密に示すもの。

  • インスタンス化
    クラスからインスタンスを生成することをいう。

  • [インスタンスとクラスの関係]
    仮想世界で活躍するのは、**「インスタンス」であり、そのインスタンスを生み出す為の金型が、「クラス」**である。

#プログラムに登場する2つのクラス

「登場人物クラス」
「神様クラス」
※プログラムを作成していく上で、この2種のクラスが、必要である。

#クラスの定義方法
####[概要]

  • 「クラスの宣言」
  • 「属性の宣言」
  • 「定数フィールド」
  • 「this」
  • 「メンバ」

######クラスの宣言

Hero.java
1   public class Hero {
2   }

######属性の宣言(フィールド)

Hero.java
1   public class Hero {
2       String name;
3       int hp;
4   }
  • フィールド
    クラスブロック内の中宣言された変数をいう。

  • フィールドの宣言
    属性を宣言するには、クラスブロックの中変数宣言を記述する。

※**「name」「hp」**が、フィールドである。

######定数フィールド
フィールド宣言の先頭にfinalを付ける。finalを付ける事によって、値を書き換えできない様にする。

teisuu.java
1   public class Matango {
2       int hp;
3       final int LEVEL = 10;

######this
「自分自身」インスタンスを意味している。

  • ドット「.」は、「の」と同じ意味。
Matango.java
1   public class Matango {
2       int hp;
3       void sleep() {
4           this.hp = 100;
5           System.out.println( this.name + "は、眠って回復した!");
6
Matango.java
 this.hp = 100;
  • 自分自身のインスタンスのhpフィールドに値100を代入という意味。

  • thisは、省略しない。
    予想外の動作が起きる場合がある。フィールドを用いる際は、明示的にthisを付ける。

######メンバ
クラスの中にいる要素で、「フィールド」「メソッド」の事である。

#クラス定義

①そのクラスに基づいて、インスタンスを生成できるようになる。
②そのクラスから生まれたインスタンスを入れる変数の型が利用可能になる。
例) Heroクラスを定義 → Hero型の変数が利用できる。

  • クラス型
    クラスを定義することで、利用可能になる
    ※クラス型変数を準備する方法は、int型やString型と同じ。
    例) Hero(クラス型) h(変数) = 100(値);

  • インスタンスは、通常クラス型変数に入れて利用する。
    例) Hero h ;

  • クラス型変数を用いる理由
    仮想世界内に、複数存在しうる同名インスタンスの中から、特定の1つのインスタンスをプログラム的に識別する為である。

#神様クラスの作り方(mainメソッドを持ったクラス)

  • 神様クラスとは、mainメソッドを持ったクラスのことである。
  • mainメソッドは、プログラムを実行させる際に、使用するメソッドである。
    (Heroクラス等、他クラスで作成したプログラムは、mainメソッドを使う事で、動作する)
Main.java
public static void main(String[] args) {

####[概要]

  • 「インスタンスの生成」
  • 「フィールドへの値の代入」
  • 「インスタンスのメソッドの呼び出し」

######インスタンスの生成

  • [ クラス名 変数名 = new クラス名( ); ]
    例) Hero h = new ( );

  • インスタンスを生成しているのは、右辺の「new Hero( )」という部分であり、「=」によって生成したインスタンスを型変数に代入している。

######フィールドへの値の代入

  • [ 変数名 . フィールド名 = 値 ; ]
Main.java
h.name = "ミナト";
  • 勇者 h のフィールドに値を代入する文法
    P.319 リスト8-12参照
Hero.java
1   public class Hero {
2       String name;
3       int hp;
4       void attack();
5       void run();
Main.java
1   public class Main {
2       public static void main (String[] args) {
3           Hero h = new Hero () ;
4           h.name = "ミナト"  ;  
5           h.hp = "100" ;
6           System.out.println("勇者" + h.name + "を生み出しました!");
7       }
8   }

Mainクラスの**「h.name = "ミナト";」**の説明

  • h は、Hero h の 「 h 」。Hero型の変数「 h 」である。

  • name は、Heroクラスで定義したフィールドである。

  • "ミナト"は、である。

######インスタンスのメソッドの呼び出し

  • [ 変数名 . メソッド名( ) ]
Method.java
h.sit(5);
h.slip();
h.sit(25);
h.run();
  • h は、Hero型 h の h(変数)
  • sit, slip, sit, runは、メソッド名
  • 引数に渡された、「5」や「25」は、

#簡単にまとめると

  • インスタンスの生成には、「new」を使う。
  • フィールドを利用する場合は、「変数名 . フィールド名」
  • メソッドを呼び出す場合は、「変数 . メソッド名( )」

#まとめ
Java入門-第8章-の「インスタンス」と「クラス」とはどういう事か?また、どのように動いているか?が解る様に作成した。

#参考文献
スッキリわかるJava入門-第2版- 株式会社インプレス出版 中山清喬/国本大悟・著

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?