Java

【Cではincludeだけどjavaでは何??】複数のクラスを用いた開発

別のクラスのメソッドを用いる

通常、メソッドはインスタンス化しないと使用することができないが、staticをつけることによってインタンス化しなくても使用するとができる mainメソッドにstaticがついているのもこのためである。 違うクラスのメソッドを使用する場合はメソッド名だけでは、呼び出すことはできない

クラス名を書かないと次のようになる

 Calc.java:19: エラー: シンボルを見つけられません
int total = tasu(a, b);
^
シンボル: メソッド tasu(int,int)
場所: クラス Calc
Calc.java:20: エラー: シンボルを見つけられません
int delta = hiku(a, b);
^
シンボル: メソッド hiku(int,int)
場所: クラス Calc

クラスが増えた場合→各クラスをパッケージにまとめる

.javaのファイルにクラスが増えてくるとのJavaのファイルをまとめて扱うことで、扱い易くなる

クラスをパッケージに所属させる方法

ソースコードの先頭にpackage文を記述する(パッケージに親子関係はない) package 所属させたいパッケージ名; ※パッケージを作成する場合は、そのディレクトリを作成する。 例えば、、、package hoge.huga.fooと作成した場合は、hoge/huga/fooの階層のディレクトリを作成する必要がある。

別のパッケージにあるクラスを呼び出す

  • パッケージが同じだったらクラス名は同じではダメだが、パッケージが異なれば同じクラス名を使っても良い →クラス名(FQCN=完全限定クラス名)が異なるので両者を区別できる。
  • 長い完全限定クラス名を書くのは大変である。しかし、import文を使うことによってFQCN入力の面倒さを軽減できる ※import文はソースコードの先頭にかくが、package 文より後に記述する
  • パッケージを作成する場合は、そのディレクトリを作成する。 例えば、、、package hoge.huga.fooと作成した場合は、hoge/huga/fooの階層のディレクトリを作成する必要がある。 import パッケージ名.クラス名;

Java APIに含まれる代表的なパッケージ

詳しく知りたい方は、java API リファレンス

  • java.lang: Javaに欠かせない重要なクラス群  importしなくても自動的にimportされる
  • java.util: プログラミングを便利にする様々なクラス群
  • java.math: 数学に関するクラス群
  • java.net: ネットワーク通信などを行うためのクラス群
  • java.io: ファイルの読み込みなど、データを逐次処理するためのクラス群