複数パッケージに分けた記載方法 JavaAPI クラスが読み込まれる仕組み
複数クラスに分けた記載方法
(考え方)
メソッド数が多くなりすぎて、プログラムが複雑になってしまうため、クラス(記載ファイル)を分割することで、より簡潔にプログラムを作成する。
(方法)
メソッドの呼出時にクラス名 メソッド名
と記載する
(例)
mainクラスの4行目で、keisanクラスのtasuメソッドを呼び出している
public class Main {
public static void main(String[] args){
int a = 10; int b = 20;
int total = keisan tasu(a,b);//クラス名 メソッド名 指定
System.out.println(total);
}
}
public class keisan {//クラス名 keisan
public static int tasu(int a, int b){//メソッド名 tasu
return (a + b);
}
}
(補足)
必ず最初はメインクラスから呼び出す必要がある
複数パッケージに分けた記載方法
(考え方)
クラス数が多くなりすぎて、プログラムが複雑になってしまうため、パッケージ(フォルダ)を分割することで、より簡潔にプログラムを作成する。
また、異なるパッケージであれば、同じクラス名を使用出来る。
(方法)
メソッドの呼出時にパッケージ名 クラス名 メソッド名
と記載する
(例〜pkg図〜)
(例)
package pkg1;
public class Main {
public static void main(String[] args){
int a = 10;
int b = 20;
int total = pkg2.keisan.tasu(a,b);//パッケージ名 クラス名 メソッド名 指定
System.out.println("足したら"+total);
}
}
(補足)
パッケージ名 クラス名 メソッド名
と記載しているクラスのことを、完全限定クラス(FQCN)という。
package pkg2;//自分の所属するパッケージ名 pkg2
public class keisan {//クラス名 keisan
public static int tasu(int a,int b){//メソッド名 tasu
return (a + b);
}
}
パッケージ名作成時のルール
(考え方)
世界中で開発が行われているため、被らない様に以下のルールがある。
(ルール)
保有するインターネットドメインを前後逆にしたもの
(例)
メールドメイン:abcd.co.jp
パッケージ名:jp.co.abcd
完全限定クラス名の省略
(考え方)
異なるパッケージのクラスを使用する場合、パッケージ名の入力を省略出来る。
(方法)
import
パッケージ名.クラス名;
(例)※pkg2
は複数パッケージに分けた記載方法と同じ内容のため、省略。
package pkg1;
import pkg2.keisan;//importするパッケージ名の指定
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 20;
int total = keisan.tasu(a, b);//pkg2の記載が不要になる
System.out.println("足したら" + total);
}
}
(補足)
そのパッケージの全てのクラスをimportしたい場合は、import パッケージ名.*;
と記載する。
Java APIについて
(考え方)
・Javaには、API(アプリケーションプログラムインターフェイス)というのが元々あって、200以上のパッケージや3,500以上のクラスがある。
・java.lang
パッケージは、使用頻度が多いためimport
しなくても、デフォルトで使用可能。
・java.lang
パッケージに所属する代表的なメソッドに、System.out.println
などがある。
クラスが読み込まれる仕組み
・JVMがクラスローディングを実行し、クラスファイルを読み込む。
・クラスローディングは必要な時に、必要な分だけ読み込むという仕組みに基づいている。
・JVMの中で、クラスローダーという部分が、ファイルを探している。
・この時、JVMは使いたいクラス名は指定するが保存場所は指定しない。
・クラスローダーはクラスパスという、あらかじめ指定された場所を探す事で、高速検索を実現している。
Author And Source
この問題について(複数パッケージに分けた記載方法 JavaAPI クラスが読み込まれる仕組み), 我々は、より多くの情報をここで見つけました https://qiita.com/k_sk193/items/a2b7ae9df167beb4d7b5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .