栗悟飯とカメハメ波

秋葉系ニートブログ。

【Javaメモ】クラス分割、パッケージ、インポートからクラスローダーについて

こんちゃ、Roaでし。

今回はクラスをぶった切る方法について書いていきますがブログ内だとファイルを分けて表示することは厳しいので分割表示して書きだしていきます。

ちなみに僕が使用している統合開発環境Intellij ideaと言うものです。


【ソースファイルの分割】

public class Calc {
  public static void main(String[] args) {
    int total=CalcLogic.tasu(10,2);   //クラス名の指定
    int delta=CalcLogic.hiku(10,2);   //クラス名の指定
    System.out.println("足すと"+total+"引くと"+delta);
  }
}
public class CalcLogic {
  public static int tasu(int a,int b) {
    return (a+b);
  }
  public static int hiku(int a,int b) {
    return (a-b);
  }
}


【パッケージで分割する】
順番:main行数が増えたらメソッドを分割→メソッドが増えたら複数クラスに分割→クラス数増加したら複数パッケージへ。
注)パッケージに親子関係、階層関係はない
注)クラス名を同じにしてもパッケージ名が異なれば同じクラス名を使用することができる

package calcapp.main;   //package指定

public class Calc {
  public static void main(String[] args) {
    int total=calcapp.logics.CalcLogic.tasu(10,2);   //パッケージ名+クラス名+メソッド名
    int delta=calcapp.logics.CalcLogic.hiku(10,2);   
    System.out.println("足すと"+total+"引くと"+delta);
  }
}
package calcapp.logics;

public class CalcLogic {
  public static int tasu(int a,int b) {
    return (a+b);
  }
  public static int hiku(int a,int b) {
    return (a-b);
  }
}


【import文で省略可能】

package calcapp.main;
import calcapp.logics.CalcLogic;   //import+パッケージ名+クラス名

public class Calc {
  public static void main(String[] args) {
    int total=CalcLogic.tasu(10,2);   //FQCNじゃなくてもエラーにならない
    int delta=calcapp.logics.CalcLogic.hiku(10,2);   //FQCNにしても良い
    System.out.println("足すと"+total+"引くと"+delta);
  }

//CalcLogicクラスは上を参照


【クラスローダーについて】
FQCNを指定するとその名前を持つクラスファイルを検索してJVMに読み込み利用可能にするもの
パッケージ階層を考えてフォルダ階層を作り、クラスファイルを作る必要がある
→分かりやすいディレクトリを!