-
[Java_Basic]패키지와 클래스 패스(윤성우의 열혈 Java 프로그래밍)Java/Basic 2020. 12. 30. 14:27
클래스 패스
자바 가상머신이 클래스 파일을 찾는 경로
C:\STUDY\javastudy\java\java8>set classpath=C:\STUDY\javastudy\java\java8\MyClass
이런식으로 클래스 패스를 설정할 수 있다.
상대 경로
.\MyClass
. 은 현재 디렉토리를 의미한다.
절대 경로와 상대 경로
C:\STUDY\javastudy\java\java8>set classpath=.;C:\STUDY\javastudy\java\java8\MyClass
와
C:\STUDY\javastudy\java\java8>set classpath=.;.\MyClass
는 동일하다.
패키지의 이해
클래스를 묶는 수단. 묶어서 '다른 클래스'와 구분하기 위한 수단.
이름 충돌의 해결을 위함이다.
충돌의 경우
공간에서의 충돌 / 동일 이름의 클래스 파일을 같은 위치에 둘 수 없다.
접근 방법에서의 충돌 / 인스턴스 생성 방법에서 두 클래스에 차이가 없다
패키지의 효과
접근 방법의 구분 -> 서로 다른 패키지의 두 클래스는 인스턴스 생성 시 사용하는 이름이 다르다.
공간에서의 구분 -> 서로 다른 패키지의 두 클래스 파일은 저장되는 위치가 다르다.
- 클래스의 이름과 구분이 되도록 패키지의 이름은 모두 소문자로 구성한다.
- 인터넷 도메인 이름의 역순으로 패키지 이름을 구성한다.
- 패키지 이름의 끝에 클래스를 정의한 주체 또는 침을 구분하는 이름을 추가한다.
wxfx.com 인 회사의 smart팀
com.wxfx.smart
패키지 com.wxfx.smart의 Circle 인스턴스 생성 문장
com.wxfx.smart.Circle c1 = new com.wxfx.smart.Circle()
package com.wxfx.smart; //패키지 선언 public class Circle{ double rad; final double PI; public Circle(double r){ rad = r; PI = 3.14; } public double getArea(){ return (rad * rad) * PI; } }
com.wxfx.smart의 Circle.java 위치
C:\STUDY\javastudy\java\java8\src\circle1
com 이라는 디렉토리가 들어있는 폴더가 classpath 에 포함되어 있으면 된다.
import 선언
import com.wxfx.smart.Circle; class ImportCircle{ public static void main(String args[]){ Circle c1 = new Circle(3.5); System.out.println("반지름 3.5의 원넒이 : " + c1.getArea()); Circle c2 = new Circle(5.5); System.out.println("반지름 5.5의 원넓이 : " + c2.getArea()); } }
위에서 import 를 해주면 인스턴스를 생성할 수 있다
Circle c1 = new Circle //com.wxfx.smart.Circle c1 = new com.wxfx.smart.Circle() 과 동일하다.
가급적 import선언은 제한적으로 사용해야하나 실상은 많이 사용한다.(안정적으로 사용해라)
import com.wxfx.smart.*;
이 안에 있는 class를 다 import한다. 가급적 사용하지 말라 하고 잘 사용하지 않는다.
'Java > Basic' 카테고리의 다른 글
[Java_Basic]클래스 변수와 클래스 메소드(윤성우의 열혈 Java 프로그래밍) (0) 2021.01.02 [Java_Basic]정보 은닉 그리고 캡슐화(윤성우의 열혈 Java 프로그래밍) (0) 2021.01.02 [Java_Basic]클래스와 인스턴스(윤성우의 열혈 Java 프로그래밍) (0) 2020.12.26 [Java_Basic]메소드와 변수의 스코프(윤성우의 열혈 Java 프로그래밍) (0) 2020.12.26 [Java Basic]실행 흐름과 컨트롤(윤성우의 열혈 Java 프로그래밍) (0) 2020.12.23