java basic summary

Edit

객체지향 관련 개념, 문법

하위클래스=(상위클래스)하위클래스; // (컴파일 오류)

상위클래스=(하위클래스)상위클래스; // (런타임 오류)

하위클래스=(하위클래스)상위클래스; // (런타임 오류)

대입에서의 오류는 컴파일 오류, casting에서의 오류는 runtime 오류를 생성한다. 그러나 하위클래스의 오브젝트가 상위 클래스의 핸들로 가리켜 질 때, 그 오브젝트가 다시 하위클래스로 casting되는 경우는 오류가 발생하지 않는다.

오버라이드 된 메소드를 호출하면 실제 오브젝트가 생성된 하위 클래스의 메서드가 호출된다. 이때는 하위클래스에만 정의되어 있고 상위클래스에는 없는 메소드는 호출할 수 없다.

생성자

오버로딩(Overloading)

2) 같은 이름을 가져야 한다.

3) 이 메소드들은 매개변수의 형이 다르거나 개수가 달라야 한다.

4) 리턴형은 상관이 없다.

오버라이딩(Overrideing)

2) 상위클래스의 메소드 매개변수의 개수와 데이터형이 일치해야 한다.

3) 상위클래스의 메서드 리턴형과 일치해아 한다.

4) 상위클래스의 접근 제한자와 범위가 같거나 더 넓은 접근 제한자로 선언해야 한다.

inner class

접근제한자

public

static

private

protected

friendly(키워드 아님)

아무것도 붙이지 않은 제한자로 friendly라는 키워드는 없다. 같은 패키지 내의 클래스에서 접근할 수 있다.

abstract

클래스, 메서드, 내부 클래스에 선언될 수 있다.

메서드 앞에 abstract 제한자를 붙일 경우, 반드시 클래스 앞에도 abstract 제한자르 붙여야 한다.

변수에는 선언될 수 없다.

abstract 클래스를 상속받은 클래스가 abstract 메소드를 모두 오버라이드 하지 않앗다면, 그 클래스도 abstract로 선언해야 한다.

abstract로 선언된 메소드는 public 또는 protected로 선언되어야 한다.

final

상위클래스에서 final로 선언된 메소드는 오버라이딩할 수 없다.

final로 선언된 변수는 상수와 같다. (상수는 보통 static final로 선언된다.)

기타

transient키워드는 object serialization에서 제외되는 변수 앞에 붙는다.

native 키워드는 메서드 앞에만, volatile 키워드는 변수 앞에만 붙을 수 있다.

Interface

Package

javac -classpath 파일명.jar 파일명.java

2) 윈도우의 환경변수-시스템 변수의 classpath변수를 통해서 해당 jar을 지정할 수도 있다. 이때 현재 디렉토리를 같이 지정하는 것이 좋고, 파일명.jar까지 같이 포함을 시킨다.

예) .;c"\temp\tv.jar

3) c:\j2sdk1.4.1_02\jre\lib\ext 디렉토리 밑에 jar파일을 복사하면 별도의 classpath 지정없이 사용할 수 있다.

Exception handling

Garbage Collection

java.lang

Math

2) 생성자는 private 제한자로 선언되어 있어 객체생성을 할 수 없다.

3) 메서드들은 static 제한자로 선언되어 있어서 객체 생성없이 접근할 수 있다.

2) Math.round()는 인자가 double형이면 long형으로, float형이면 int형으로 리턴한다.

3) Math.min(), Math.max()는 int,long,float, double형으로 오버로드 되어 있다.

String

StringBuffer

Wrapper Class

Thread

예) ThreadA ta=new ThreadA; ta.start();

2) java.lang.Runnable 인터페이스를 구현하고 run()메소드를 구현

RunnableB rb=new RunnableB();

Thread tb=new Thread(rb); //rb를 매개객체로 쓰레드 객체 tb생성

tb.start();

java.lang.Thead.NORM_PRIORTY :5

java.lang.Thead.MAX_PRIORTY :10

setPriorty(MAX_PRIORTY)와 같이 사용한다.