Help us understand the problem. What is going on with this article?

【Java】packageとimportによる複数ファイルでの開発

More than 1 year has passed since last update.

まとめるほどもない気もするが…

複数のファイルでの開発

複数のファイルで開発を行う場合、import文で他のファイルのクラスを使うことができる。クラスが増えてくると、パッケージでまとめる。

  • import:パッケージとクラスを指定して読み込む。packageの次に記述する。
  • package:文頭に記述する。パッケージを指定する。

ここではtest.maintest.subという二つのパッケージにそれぞれMainクラスとSubクラスを入れている。

Main.java
package test.main;

import test.sub.Sub;

public class Main{
    public static void main(String[] args){
        Sub.hello();
    }
}

Sub.java
package test.sub;

public class Sub{
    public static void hello(){
        System.out.println("Hello World!");
    }
}

Main.javaSub.hello()を詳しく書くとtest.sub.Sub.hello()。これをimportで略しているという認識。

フォルダの構成は
スクリーンショット 2019-04-24 15.49.31 2.png
という感じ。

カレントディレクトリをcdというフォルダにして

java test.main.Main

と打つことでMainクラスを使うことができる。

作業ファイルがカレントディレクトリになくともクラスパスをjavaコマンド時に指定するか、あらかじめOSに登録しておくかすれば、あとはクラスローダーがやってくれる。

API

Javaにあらかじめ添付されている多数のクラス群をAPI (Application Programming Interface)という。
(別にjava以外のところでも言うけど)
代表的なところでは

  • java.lang:Javaに欠かせないクラス群。
  • java.util:プログラミングを便利にする。
  • java.math:数学関係。
  • java.net:ネットワーク通信関係
  • java.io:ファイルの読み書きなど、データの逐次処理に関わる。

使う時は

// 例1
int r = new java.util.Random().nextInt(1);

// 例2
Thread.sleep(3000);

という書き方。これは、

  • 例1
    • パッケージ:java.util
    • クラス;Random
    • メソッド:nextInt
  • 例2
    • パッケージ:java.lang
    • クラス:Thread
    • メソッド:sleep

こんな風に認識しても良い。
Threadという部分を略さずに書くとjava.lang.Threadになる。
java.langというパッケージは頻出なので略して書ける。
なお、nextInt(1)は0〜1の乱数発生、sleep(3000)はプログラムの3秒停止というメソッド。

参考書籍

スッキリわかるJava入門第2版
6章 Pp.222-259

shg3
学習
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away