[Java] 클래스 패스, 패키지, 접근 수준 지시자

YoungMinKim·2020년 11월 8일
0
post-thumbnail

Class Path

.class 파일의 경로가 다를 경우?

Class Path

Class Path

  • 프로젝트 내에서 소스 파일 작성, [이때 확장자는 파일명.java]로 생성 된다.
  • 컴파일을 통해 하나의 소스 파일 당 하나의 .class 파일이 생성 된다.
  • 하나의 프로젝트 단위로 보는 것이 아닌, 하나의 소스 파일 단위로 봐야 한다.
  • JVM(자바 가상 머신)에 의해 해당 .java 파일이 컴파일 된다.
  • 컴파일 진행을 위해서는 반드시 하나의 Main Method가 존재 해야 한다.
  • Cmd 창 내에서 .java 파일이 저장된 경로로 이동.
  • Ex) cd C:/youngmin
  • javac testfile.java [컴파일 수행]

CLASS PATH?
[Class 파일을 찾기 위한 경로를 사용자가 지정할 수 있다?]

  • JVM(자바 가상 머신)의 클래스 탐색 경로 지정.
  • .class 파일을 찾는 경로를 지정해 줄 수 있다 [Class Path]를 통해

절대 경로
C:\youngmin>set classpath=.;C:\youngmin/Myclass

  • . 은 현재 Directory를 의미
  • C:\youngmin\Myclass Directory도 Class Path 영역으로 지정 해준다.

상대 경로
C:\youngmin>set classpath=.;.\Myclass

  • 현재 Directory 밑에 Myclass Directory를 상대 경로로 지정.
  • 클래스 패스를 고정시키는 것은 상당히 안 좋은 방법이다.

Package [패키지]

Package

  • 한 Directory 내에 동일 이름의 Class 파일을 둘 수 없다.
  • 동일한 이름을 가진 Class를 사용하기 위해서는 경로를 달리 해줘야 한다.
    → Package 경로를 구분한다.
  • Package는 Directory[폴더]와 같은 의미를 갖는다.
  • 서로 다른 패키지의 두 Class는 Instance 생성 시 사용하는 이름이 다르다.
  • 서로 다른 패키지의 두 Class File은 저장되는 위치가 다르다.

접근 수준 지시자

접근 수준 지시자

  • public : 접근을 제한하지 않고 어디서든 접근 할 수 있도록 선언.
  • protected : 상속 관계 또는 동일 패키지 내에서 접근 할 수 있도록 선언.
  • default : 동일한 패키지 내에서만 접근 가능.
  • private : 동일 클래스 내부에서만 접근 가능.
  • 하나의 소스 파일에 두 개의 public 클래스(Class)를 둘 수 없다.
  • Package 선언이 없는 각각의 Class는 Default Package로 정의된다.

profile
https://ym1085.github.io

0개의 댓글