他クラスのメソッドの呼び出し
クラス名.メソッド名()とすることで、クラスのメソッドを呼び出せます。
【例】
class Main {
public static void main(String[] args) {
Person.hello(); //Personがクラス名でhelloがメソッドです
}
}
class Person { //Personがクラス名です
public static void hello() { //helloがメソッドです
System.out.println("おはよう");
}
}
上記のようにMain.javaのPerson.hello();でPerson.javaのPersonをクラスを呼び出します。
ちなみに、クラスの定義は「class クラス名」となります。
クラス名の最初の文字は大文字にし、ファイル名は「クラス名.java」に必ずします。
【例2】
public class Main {
public static void main(String[] args) {
Person.nameData(Person.fullName("佐藤", "太郎"), 20); //Personがクラス名でnameDataがメソッドです。Person.fullNameも同様です
}
}
class Person {
public static void nameData(String name, int age) { //nameDataがメソッドです
System.out.println("私の名前は" + name + "で" + "年齢は" + age + "歳です");
}
public static String fullName(String firstName, String lastName) {
return firstName + " " + lastName;
}
}
上記の結果は「私の名前は佐藤太郎で年齢は20歳です」ととなります。
なぜクラスを分けるか
Mainクラスは実行用のクラス、Personクラスはロジック(論理)をまとめる役割分担が明確になるためです。
Javaは、ファイルではなくクラスを実行します。実行時にmainメソッドを持つクラスしか実行できません(mainメソッドのないクラスは、他のクラスから呼び出して使います)。
またクラス名に関係なく、実行時にはmainメソッドが呼ばれます(Mainクラスだからmainメソッドが呼ばれるわけではありません)。
外部ライブラリ
他人が作ったクラスを利用することです。このようなクラスを外部ライブラリと呼び、自分のプログラムに読み込むことで利用できるようになります。
外部ライブラリを自分のプログラムに使えるようにするには、importを使います。
class定義より上で「import java.lang.Math」とします。
Mathクラスのメソッドは、数学的なメソッドの意味をもちます。
【例】
import java.lang.Math;
class Main {
public static void main(String[] args) {
int max = Math.max(3, 5); //Mathは外部から読み込んでいるクラスです
System.out.println("最大数字は" + max);
}
}
上記の場合maxメソッド(引数に渡した2つの数値の大きい方を返してくれるメソッド)を使っているので、結果は数字が大きい「最大数字は5」となります。
他にも引数の小数点以下を四捨五入して返すroundメソッドなどがあります。
importしなくても使える
先ほど、import java.lang.Math;を使いましたが、importしなくても自動で読み込まれます。
他にも、「java.lang.クラス名」となる外部ライブラリはすべて自動で読み込まれます。