Java-10강
2010년 1월 6일 10강
Abstract Methods
오버라이드의 강제화
객체생성 불가능
자식객체를 이용해야함.
Interface
- 다중상속을 목적으로
- 인터페이스는 클래스가 아니다.
- 인스턴스화 할 수 없다.
- 변수를 가질 수 없다.
- 메소드 가질 수 없다.
- 상수 & 추상메소드 만 가능하다.
Java는 다중상속을 위해서 Interface라는 개념을 사용
객체 복제.
clone()
객체의 값복사, cloneable 인터페이스가 필요
try catch 써야함, 예외잡기.
정상적인 객체는 복제 안됨
cloneable 자식들만 복제가능함
java.lang
method
clone()
interface
cloneable
재정의할 메소드 없음.
cloneable interface가 붙은 자식들만이 값복제 가능
mark(flag) interface
재정의할 메소드 없음, 상수 없음
기능없음.
shallow copy(값 복사) <-> deep copy(주소복사)
CLASSPATH 를 잡는 이유
컴파일할 때 컴퍼넌트가 어디에 있는지를 잡아줘야한다
파일의 위치가 만약
C:\temp
Component.java
Component.class
D:\jongsun
Main.java
Main.class
있다면
- complie option
>javac -classpath C:\temp Component.java
- runtiime option
>java -classpath .;C:\temp Main
운영체제 환경변수에 “CLASSPATH”를 세팅하면 컴파일, 실행시 옵션 지정 안해도 됨.
경로가 바뀔 경우에는 옵션지정.
Package와 import
- package
유사한 클래스들의 묶음
디렉토리
해당 디렉토리에 package…
package com.javasoft.lib.HR; 라는 package를 선언했다면
complie option
javac -d C:\temp Insa.java
c:\temp 아래 com->javasoft->lib->HR
- import
FQN(Fully Qualified Name) 방식
Java home path로 부터
- jar 만들기
C:\temp> jar -cvf example.jar /com
example.jar 복사
C:\Program Files\Java\jre6\lib\ext
classpath 관련 글들..
- static import
syntax:
import static TypeName.*;
Advanced Access Control
| modifier | same class | same package | subclass | universe |
| public | y | y | y | y |
| protected | y | y | y | |
| default | y | y | ||
| private | y |
public – 클래스, 변수, 메소드
protected – 변수, 메소드
default – 클래스, 메소드, 변수
private – 변수, 메소드
내일은..
static
inner class




