ホームページ >Java >&#&チュートリアル >Java がサンプルコードのリフレクティブ静的ロードと動的ロードを実装する方法の詳細な説明

Java がサンプルコードのリフレクティブ静的ロードと動的ロードを実装する方法の詳細な説明

伊谢尔伦
伊谢尔伦オリジナル
2017-07-17 16:06:511808ブラウズ

1. Java で動的にロードされるクラスと静的にロードされるクラスの違い

new がオブジェクトを作成する方法は静的ロードと呼ばれますが、Class.forName("XXX") を使用することは動的ロードと呼ばれます。それは、静的にロードされるクラスのソース プログラムはコンパイル時にロードされる (存在する必要がある) のに対し、動的にロードされるクラスのソース プログラムはコンパイル時に存在しなくてもよい (ソース プログラムが存在する必要はない) ということです。

2. なぜクラスを動的にロードする必要があるのですか

私自身の理解では、クラスを動的にロードするとプログラムの柔軟性が高まります。たとえば、プログラムには 50 個の関数がありますが、静的ロードを使用する場合は、コンパイル前に 100 個の関数の定義をすべて指定する必要があります。そうしないと、コンパイルが通過しません。動的読み込みメカニズムなので、それほど時間をかける必要はなく、使用するメカニズムを定義するだけで済みます。

静的読み込み:

public class Office_Static {
	public static void main(String[] args) {
		//new 创建对象,是静态加载类,在编译时刻就需要加载所有的可能使用到的类
		if("Word".equals(args[0])){
			Word w = new Word();
			w.start();
		}
		if("Excel".equals(args[0])){
			Excel e = new Excel();
			e.start();
		}
	}
}

このプログラムは、Excel が使用されない場合でも、コンパイル時に Word クラスと Excel クラスが必要です

動的読み込み:

1. インターフェイス OfficeAble。 :

public interface OfficeAble {
	public void start();
}

2. Word実装インターフェース:

public class Word implements OfficeAble{
	public void start(){
		System.out.println("word start");
	}
}

3. Excel実装インターフェース:

public class Excel implements OfficeAble{
	public void start(){
		System.out.println("excel start");
	}
}

4. りー

以上がJava がサンプルコードのリフレクティブ静的ロードと動的ロードを実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。