JAVA プログラミング 入門

JAVAのプログラミングについて初歩から解説します。まずは、mainメソッド、変数、演算、if文、for文、while文、メソッド、配列など。続いて、メソッドを複数構成して、プログラムを作成(非オブジェクト指向プログラミング)、しばらく後になると思いますが、オブジェクト指向プログラミングを解説します。 クラスの構成、コンストラクター、継承、・・・、など、本格的OOP(Object Oriented Programming)を解説します。

Java: クラス・ライブラリの作り方と使い方

クラス・ライブラリの作り方と使い方
1) ライブラリにしたいプログラム(クラス)をディレクトリ構造(カレント・ディレクトリの下)を作ってそこに置く.
2) 全てのプログラムをコンパイルする.
3) 以下の命令を実行
jar cf myjar.jar ディレクトリ構造のルート
myjar.jarというファイルがライブラリになる
4) myjar.jarを適当な場所に置く.
例えばC:¥
5) C:¥myjar.jarを環境設定のCLASSPATHに書き、必要であれば”.;”を追加する.

例題で説明します。
今から作るライブラリには以下の四つのクラスがある。ただし、最初の三つをライブラリとし、4番目のクラスは作ったライブラリをテスト的に使うクラスである。

1) Abst_Class1(パッケージmylib.abst_class1の中)
  Class1の親クラス
  コンストラクタAbst_Class1がある
2) Class1(パッケージmylib.class1の中)
  メソッド show1, show2がある
  コンストラクタ Class1があり
  Abst_Class1をcallする

3) Seisuu(パッケージmylib.seisuuの中)
  static メソッドwaがある.

4) Proo16_1(namelessパッケージの中)
mainメソッドがある
  Class1, Abst_Class1などを使う 
  Seisuuクラスのメソッドwaを使う。

図Package_treeは以上を図示したものである。

f:id:Kurokawa_Tomio:20190716192226p:plain
図Package_tree
以下にそれぞれのクラスのソースを示す。
Abst_Class1.java

package mylib.abst_class1;
interface inter1{
   void show1();
   void show2();
}
public abstract class Abst_Class1 implements inter1
{   
   private int num1;
   protected Abst_Class1(int n){this.num1=n;}
   public void show1(){
      System.out.println("show1 num1=" + num1 );
   }
   public abstract void show2();
}

説明:
1行 パッケージ名
2行 inter1にはメソッドが二つある。
10行 コンストラクタAbst_Class1は別パッケージの子クラスから使われるのでprotectedにしてある。
Class1.java

package mylib.class1;
import mylib.abst_class1.*;
public class Class1 extends Abst_Class1 {
   private String s1;
	public Class1(int n, String s){
    	super(n);
      this.s1 = s;
   }
   public void show2(){
	show1();
      System.out.println("show2 s1="+s1);
   }
}

説明:
2行 このクラスは パッケージmylib.abst_class1を使う。
6行 親クラスのコンストラクタを使っている。
Seisuu.java

package mylib.seisuu;
public class Seisuu{
	public static int wa(int m, int n){
		int s=0;
		for(int i=m;i<=n;i++){
			s+=i;
		}
		return s;
	}
}

説明:
1,2行 Seisuuクラスはmylib.seisuuパッケージにある。
3行  メソッドwaはstaticである。

Proo16_1.java

import mylib.abst_class1.*;
import mylib.class1.*;
import mylib.seisuu.*;
class Proo16_1{
   public static void main(String args[]){
      Abst_Class1 f1 = new Class1(1, "Tokyo");
	f1.show2();
	System.out.println("Seisuu.wa(1,10)="+Seisuu.wa(1,10));
   }
}
/* 出力
show1 num1=1
show2 s1=Tokyo
Seisuu.wa(1,10)=55
*/

説明:
1,3行 三つのパッケージをimport
8行  メソッドwaはSeisuuクラスのクラスメソッドである。

それぞれのクラスをコンパイルするには
>javac mylib\abst_class1\Abst_Class1.java
>javac mylib\class1\Class1.java
>javac mylib\seisuu\Seisuu.java
>javac Proo16_1.java

実行:
>java Proo16_1
show1 num1=1
show2 s1=Tokyo
Seisuu.wa(1,10)=55

JAVA PROGRAMMING 入門 TOP へ