두배로

시험 안내 › 정보처리기사 › 실기 개념서

3장. Java

정보처리기사 실기 개념서 · 1부. 프로그래밍 · 절 10개

앱에서 전체 내용 보기

이 장에서 배우는 것

3-1. 출력과 문자열 연결

+는 왼쪽부터 계산하며, 한쪽이 문자열이 되는 순간부터 이후는 모두 문자열 연결이다. char는 숫자와 더하면 정수(유니코드 값)가 된다.

3-2. 생성자와 호출 순서

new B("hi")는 super()가 자동으로 들어가 A()가 먼저 출력된다.

3-3. 상속·오버라이딩·동적 바인딩

a.show()는 Animal의 메서드지만 그 안의 sound() 호출도 실제 객체인 Dog의 것으로 연결된다 — "부모 메서드 안에서 호출되는 오버라이딩 메서드"는 단골 함정이다.

3-4. 오버로딩 vs 오버라이딩

add(1.0, 2)는 int 2가 double로 자동 변환되어 double 버전이 선택된다. final 메서드는 오버라이딩 불가, final 클래스는 상속 불가, final 변수는 값 변경 불가(상수)다.

3-5. static — 클래스 공유 멤버

static 변수는 객체가 몇 개든 하나다 — 어느 참조로 바꿔도 모두에게 보인다. static 메서드 안에서는 this와 인스턴스 멤버를 쓸 수 없다.

3-6. 추상 클래스와 인터페이스

println(객체)는 그 객체의 toString()을 호출한다. area()가 double이므로 6.0처럼 소수점이 붙는다.

3-7. 문자열 — == vs equals, 불변성

같은 리터럴은 상수 풀의 한 객체를 공유하므로 a == b는 true, new String은 새 객체라 a == c는 false

3-8. 배열과 참조

b = a는 배열 복사가 아니라 같은 배열을 가리키는 참조 복사

3-9. 예외 처리

return을 만나도 finally가 먼저 실행된 뒤 값이 반환된다. 예외가 난 줄의 나머지("try " 출력)는 실행되지 않는다.

3-10. 형변환·오버플로·컬렉션

int 최댓값 + 1은 최솟값으로 넘친다(오버플로), (byte) 200은 200 − 256 = −56

그림·예제·문제와 함께 이어 보기