Java Chapter 08


1.クラスパス

  • Javaを複数のルートで上位機のクラスファイルを検索するように導く.
  • 現在ディレクトリ:実行中のプログラムの作業ディレクトリ
  • C:\PackageStudy>javac WhatYourName.java
  • 現在のディレクトリからJavaファイルを検索する.
  • そしてコンパイル後、現在のディレクトリに3つのクラスファイルを作成
  • // WhatYourName.java 파일
    class AAA {}
    class ZZZ {}
    class WhatYourName {
        // 현재 디렉토리에서 AAA Class 파일을 찾습니다.
        AAA aaa = new AAA();
    }

  • クラスの位置が違うとしたら?
  • AAAレベルが見つからず、エラー=>指示が必要
  • 指定レベルパス、ここでレベルを探せ!

  • クラスパス:Java仮想マシンのクラスナビゲーションパス
  • set classpath:クラスパス設定の検証
  • 環境変数未定義=>未設定
  • set classpath=.;C:\PackageStudy\MyClass
  • 命令提示限定
  • .:現在のディレクトリを示し、自分の位置で最初に検索したディレクトリを保持するには明確に追加しなければならない

  • 絶対パスvs相対パス
  • C:\PackageStudy > set classpath=.;.\MyClass:既存ディレクトリによる相対パス使用
  • C:\PackageStudy > set classpath=.;C:\PackageStudy\MyClass:ルートディレクトリからの絶対パス(非常用)

  • 環境変数を使用すると、クラスパスを完全にロックできます.
  • いい方法じゃない!
  • 2.パッケージの理解

  • 梱包宣言が必要な場合
  • スペース内の競合:同じ名前のクラスファイルを同じ場所に置くことはできません
  • アクセスメソッドでの競合:インスタンス作成メソッドでは、2つのクラスに違いはありません.
  • では、同じクラスを使いたい場合の方法は?
  • ディレクトリ変更=>パスの問題解決
  • クラス名も異なっている
  • 小包宣言
  • パッケージ名はすべて小文字で構成されている
  • インターネットドメイン名の逆順で命名
  • 名称の後に定義カテゴリの主体またはチームの名称を追加
  • 宣言パッケージのクラスファイルは、そのディレクトリに存在する必要があります.
  • ジャワ仮想マシンはクラスパスに基づいてcomというパスを検索する.
  • package com.wxfx.smart;
    public class Circle {
          double rad;
          final double PI;
    
          public Circle(double r) { . . . }
          public double getArea() { . . . }
    }
    
    package com.fxmx.simple;
    public class Circle { 
          double rad;
          final double PI;
        
          public Circle(double r) { . . . }
          public double getPerimeter() { . . . }
    }
    
    com.wxfx.smart.Circle c1 = new com.wxfx.smart.Circle(3.5);
    com.fxmx.simple.Circle c2 = new com.fxmx.simple.Circle(5.5);
  • パッケージとして宣言されたソースファイルのコンパイル方法
  • C:\PackageStudy>javac -d . src\circle1\Circle.java
  • パッケージ情報に基づき、ディレクトリ作成後にクラスファイルを作成する.
  • 一類についてimport宣言
  • インスタンス作成時にパッケージを指定する必要はありません.
  • 同じクラスの導入は宣言できません.
  • import com.wxfx.smart.*;:全体importの方式
  • あまり使われない方法=>衝突する可能性がある…

  • リファレンス

  • ホット・Javaプログラミング(著者尹成祐)