👋

プログラミング自主学習 DAY59 Library/Module/Coding test

2023/07/25に公開

Library

プログラミング開発時に必要なclassとinterfaceを集めた圧宿ファイル **(JAR)**のこと。

IDE

Library : export -> jar
Build Path : configure buildpath -> libraryjarをadd
(compile:ソース単位、build:プロジェクト単位)

CMD

.は現在の経路を探すという意味で ;は.(現在経路)にないばいはここを探せという意味だ。

System Variable

cmdでいつも経路を設定することは、大変だ。システム変数に設定する。

Module(モジュール)

同じライブラリ(.jar)で、より多い機能がある。

  1. パッケージを管理する。一般ライブラリの場合、全てのパッケージを使用できるが、モジュールは共有したいパッケージのみ使用させる。(privateの似ている。)

  2. 依存関係が分かる。モジュールを実行するため、必要なモジュールをmodule.info.java
    に作成する。

普段、一つのプロジェクトは、モジュールとして管理され、アプリケーションの一つの機能を担当する。プログラムのブロックみたいなもので、OOP的だ。

Application Module

pack1,pack2,pack3が必要なプロジェクトを作成してみる。

プロジェクトを生成し、モジュールをチッェクするとsrcにinfoが生成される。
その中で、パッケージとクラス、infoを作成する。

package pack1;

public class A {
	//field
	//constructor
	//method
	public void method() {
		System.out.println("A-method");
	}
}

package pack2;

public class B {
	//field
	//constructor
	//method
	public void method() {
		System.out.println("B-method");
   }
}
module my_module_a {
	exports pack1;
	exports pack2;
}

同様、module Bを作成し、pack3, pack4をexportsする。

次は、モジュールを利用するmy_application_2を作成する。プログラムもモジュールを使用するため、結局モジュールだ。

module my_application_2 {
	requires my_module_a;
	requires my_module_b;
}
package app;

import pack1.A;
import pack2.B;
import pack3.C;

public class Main {
	public static void main(String[] args) {
		
		A a = new A();
		a.method();
		
		B b = new B();
		b.method();
		
		C c = new C();
		c.method();

	}

}

このように、moduleを通して組み合わせができる。

Coding Test

約数の個数(平方根)


https://chwan.tistory.com/entry/Java-약수의-개수-구하기

int N = 1000000000;

int count = 0;
for (int i = 1; i * i <= N; i++) {
	if (i * i == N) count++;  //完全平方根
	else if (N % i == 0) count += 2; //約数の対象性
}

System.out.println(count);
時間計算量 = O(\sqrt{N})

Discussion