2
0

More than 1 year has passed since last update.

スッキリわかるJava入門 第3版を読んでみて- part6 -複数クラスを用いた開発

Last updated at Posted at 2023-08-07

はじめに

こんにちは(・ω・)ノ
今回はクラスの分割について学びました!

第6章 複数クラスを用いた開発

1.ソースファイルを分割する

前回メソッドを複数に分けることを学んだ
だが...
メソッドの数が増えるとソースコードの全体を把握することが難しい...
⇨複数のソースファイルに分割して記述をする
 ≒複数のクラスに分けて開発する

メリット
ファイルごとに開発を分担し、分業がしやすくなる

1つのプログラムを複数の部品に分けること...部品化

計算機プログラムの分割
元のプログラム

public class Calc {
    public static void main(String[] args){
        int a = 10; ing b = 2;
        int total = tasu(a,b);
        int delta = hiku(a,b);
        System.out.println("足すと"+total+"引くと"+delta);
    }

    public static int tasu(int a,int b){
        return(a+b);
    }

    public static int hiku(int a,int b){
        return(a-b);
    }
}


2つに分割
計算処理のClacLogicファイル

public class ClacLogic {
    public static int tasu(int a,int b){
        return(a + b);
    }

    public static int hiku(int a,int b){
        return(a - b);
    }
}

mainメソッドのあるClacファイル

public class Clac  {
    public static void main(String[] args){
        int a = 10; ing b = 2;
        int total = tasu(a,b);
        int delta = hiku(a,b);
        System.out.println("足すと"+total+"引くと"+delta);
    }
}

しかしClacにはtasu()hiku()のメソッドがないため呼び出せない


int total = ClacLogic.tasu(a,b);
int delta = ClacLogic.hiku(a,b);

のようにクラス名.メソッド名で呼び出す必要がある
.は「〜の」という意味がある

2.複数クラスで構成されるプログラム

:sparkles:javaプログラムの完成品
・javaプログラムの完成品は、複数のクラスファイルの集合体
・誰かに配布する場合には、すべてのクラスファイルを渡す必要がある

実行方法
java クラス名
mainメソッドが含まれているクラスの名前を指定する

:sparkles:複数の完成クラスファイルを渡す場合の注意点
すべてのクラスファイルを渡すだけではなく、
「mainメソッドが含まれているクラス名」も伝える必要がある

3.パッケージを利用する

クラス数が多くなると管理が大変に...
⇨ パッケージ...グループに所属させて分類・管理できる仕組み

:pencil2:クラスをパッケージに所属させる
package 所属させたいパッケージ名;
※パッケージに親子関係や階層関係はない

パッケージ名を添えたクラス名
⇨完全限定クラス名(完全修飾クラス名、FQCN)
:pencil2:完全限定クラス名(FQCN)の指定
パッケージ名.クラス名

:pencil2:FQCN入力の手間を省くための宣言
import パッケージ名.クラス名;

4.パッケージに属したクラスの実行方法

:pencil2:javaコマンドの正確な構文
>java 起動したいクラスの完全限定クラス名(FQCN)

:question:なぜクラス名を指定するのか...?
クロスローダー
完全限定名を指定されたら、その名前を持つクラスのクラスファイルをPC内から検索し、JVMに読み込んで利用可能にする
  ※JVM...起動時に指定されたクラスのmainメソッドを呼び出し、プログラムを実行する

クロスローダーはクラスパスを使いながらクラスファイルを探してくる

クラスパスの指定方法
1.起動時にjavaコマンドで指定する
2.検索場所をOSに登録する
3.特に指定しない
クラスパスで指定できる対象
1.フォルダの場所
2.クラスファイルが入ったJARファイルやZIPファイル
3.複数のフォルダ、JAR/ZIPファイル、それらの組み合わせ

5.名前空間

パッケージを使うことのもう1つのメリット
⇨自分の作るクラスに対して自由に名前をつけることができる
 ⇨パッケージが異なれば同じ名前もつけることができる
名前が同じになっても大丈夫

:question:パッケージが同じ名前のときは?
 ダメになる
そうしないために...
パッケージ名はインターネットドメインを前後逆順にしたものから始まる
パッケージ名を推奨されている

6.java APIについて学ぶ

Hell Worldのような1つだけのクラスも実は...
他の数百個のクラスと連携して動く、多数のクラスからなるプログラム

数百個のクラスはjavaに初めから標準添付されているクラス
API

APIは通常「java」「Javax.」で始まるパッケージを用いている

どのようなAPIがあるかの説明書... APIリファレンス

まとめ

ソースファイルの分割、複数クラスについては理解することができました
パッケージの利用もどういった使い方をするのかはなんとなく理解はしました
ただ、見てすぐパッケージを使っているか判断したり具体的な動き方がどうなっているのかというコードの中での応用という部分では多分理解しきれていないと感じたのでまた復習したです。
APIについて簡単なHellWorldを出す1つのクラスでもその裏では数百個のクラスが動いているのはすごいと感じました

今回もありがとうございました!
ではまた〜 *˙︶˙*)ノ"

2
0
0

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
2
0