본문 바로가기

Java4

[자바의 정석] ch7-24 ~ ch7-26 객체지향 개념 정리 (참조변수의 형변환, instanceof 연산자) ch7-24,25 참조변수의 형변환 - 사용할 수 있는 멤버의 갯수를 조절하는 것 - [중요!] 조상 자손 관계의 참조변수는 서로 형변환 가능 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Car { } class FireEngine extends Car { } class Ambulance extends Car { } FireEngine f = new FireEngine(); Car c = (Car)f; // OK. 조상인 Car타입으로 형변환(생략가능) FireEngine f2 = (FireEngine)c; // OK. 자손인 FireEngine타입으로 형변환(생략가능) Ambulance a = (Ambulance)f; // 에러! 상속관계가 아닌 클래스 간의 형변환 불가 .. 2021. 8. 10.
[자바의 정석] ch6-30 ~ ch6-41 객체지향 개념 정리 (오버로딩, 생성자, 생성자 this(), 참조변수 this, 변수의 초기화) ch6-30 오버로딩(overloading) - 한 클래스 안에 같은 이름의 메서드 여러개를 정의하는 것 (하나의 메서드 이름에 메서드 하나여야 하는데, 오버로딩은 하나의 메서드 이름에 여러개의 메서드) - 오버로딩이 성립하기 위한 조건 (3가지) 1. 메서드 이름이 같아야함 2. 매개변수의 개수 또는 타입이 달라야함 3. 반환 타입은 영향 없음 보기1 (조건1만 성립-> 오버로딩 아님) -> 메서드 중복정의 int add(int a, int b) { return a+b; } int add(int x, int y) { return x+y; } 보기2 (조건1만 성립-> 오버로딩 아님) -> 메서드 중복정의 int add(int a, int b) { return a+b; } long add(int a, i.. 2021. 7. 16.
[자바의 정석] ch6-22 ~ ch6-29 객체지향 개념 정리 (호출스택, static 메서드) ch6-22 호출스택 - 메서드 수행에 필요한 메모리가 제공되는 공간 - 메서드가 호출되면 호출스택에 메모리 할당. 종료되면 해제. 스택(stack): 밑이 막힌 상자. 위에 차곡차곡 쌓임 ch6-23 기본형 매개변수 * 스택 부분 코드 보며 그림 그릴 수 있어야함 기본형 매개변수 - 변수의 값을 읽기만 할 수 있음 (read only) 참조형 매개변수 - 변수의 값을 읽고 변경할 수 있음(read & write) ch6-24 참조형 매개변수 * 스택 부분 코드 보며 그림 그릴 수 있어야함 ch6-25 참조형 반환타입 * 스택 부분 코드 보며 그림 그릴 수 있어야함 * static 메서드는 객체 생성 없이 호출 가능함 ch6-26 static 메서드와 인스턴스 메서드 -> iv 사용 여부로 나뉨 인스턴스.. 2021. 7. 16.
[자바의 정석] ch6-11 ~ ch6-21 객체지향 개념 정리 (선언위치, 변수종류, 메서드, return문) ch6-11 선언위치에 따른 변수의 종류 영역은 크게 두 가지로 나뉨 1. 클래스 영역 - iv, cv(static+iv) 2. 메서드 영역 - lv 변수의 종류 선언위치 생성시기 클래스 변수 (class variable) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수(instance variable) 클래스 영역 인스턴스가 생성되었을 때 지역변수(local variable) 클래스 영역 이외의 영역 (메서드 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 *클래스변수는 객체 생성이 필요 없음. 아무때나 사용 가능 *인스턴스 변수는 객체 생성 필요. 객체 생성을 해야 사용 가능 *지역변수는 메서드 종료 시 자동제거됨 *프로그래밍 관점에서 객체는 iv(인스턴스 변수) 를 묶어 놓은 것 c.. 2021. 7. 14.