클래스패스
클래스패스란 말 그대로 클래스를 찾기 위한 경로를 나타내는 말입니다.
여러 디렉토리에 산재한 클래스들의 위치를 지정해서 패키지Package에 따라 클래스를 찾게 해줄 수 있는 경로를 의미하는 것입니다
물론 자바 파일을 컴파일을 할 때마다 -classpath 옵션을 적어주어도 되겠지만
특정한 경로에 필요한 클래스가 모여 있다면 클래스패스를 주는 것이 훨씬 더 효율적입니다.
클래스프래스를 환경변수에 잡아주게 되면, 그 디렉토리를 기준으로 클래스 파일을 검하게 되는 것입니다.
예를 들어 C:\class라고 클래스패스를 잡아주었고, 그런다음
C:\Java\A.class 라는 파일이 존재하고,
C:\java\B.java이 있다고 할때 B.java에서 A라는 클래스를 상속햇더나, 객체를 생성하는 코드가 있다면 다음과 같이 컴파일할 것입니다.
C:\javaj>javac B.java
하지만 이러한 경우에는 에러가 발생합니다.
(클래스패스를 환경 변수에서 잡으면 현재 폴더에서는 클래스를 찾지 않습니다.
물론 환경변수를 지정하지 않은 상태하면 현재 촐더에서 현재 )
클래스변수
클래스를 멤버(변수,메소드) 앞에 붙이면 클래스의 멤버가된다
정보의 은닉이란,
클래스 내부에서 사용되는 변수(필드) 들을 private 이나 protected 등으로 선언해 줌으로, 자기 클래스, 혹은 자식 클래스 외에는 직접적으로 제어를 불가능하게 해주는 것을 의미합니다
get 과 set 함수를 이용하지 않은 직접 제어 불가를 통해, 변수의 값이 마음대로 바뀌는 것을 제어해주는 것 이지요
캡슐화란
하나의 추상화된 객체를 하나의 묶음으로 하되, 정보 은닉을 포함하는 것 이지요
어디까지묶을지가 문제 개발자의 경험으로판단된다
'개발 > Java' 카테고리의 다른 글
변수(Variable)와 자료형(Data Type), 연산자(Operator) (0) | 2018.05.19 |
---|---|
Exception 처리 (0) | 2018.05.19 |
객체지향프로그래밍의 이해와 자바의 이름규칙 (0) | 2018.05.19 |
메모리 구조 (0) | 2018.05.19 |
구조체란? (0) | 2018.05.19 |