본문 바로가기

Java

(10)
클래스 문법 클래스의 문법클래스객체를 정의하는 틀, 객체를 추상화 한 것클래스의 구성속성생성자기능field객체의 속성 변수를 나타내는 필드(field)필드의 종류클래스 변수(static 키워드를 가지는 변수)인스턴스 변수(static 키워드를 가지지 않는 변수)지역 변수(메소드, 생성자 블록 내에 위치한 변수)-스택 영역에 저장클래스 변수는 클래스가 메모리에 올라갈 때 생성되고 프로그램이 종료될 때 소멸된다.메소드 영역에 저장된다.(프로그램이 종료될 때까지 메모리에 남아있다.)해당 클래스의 모든 인스턴스가 공유해야 하는 값을 유지하기 위해 사용한다.인스턴스 변수는 인스턴스가 생성될 때 생성되고 인스턴스가 소멸될 때 함께 소멸된다.힙 영역에 저장된다.(stack영역과 다르게 보관되는 메모리가 호출이 끝나도 삭제되지 않..
[Java] 업캐스팅, 다운캐스팅 업캐스팅?자식 클래스가 부모 클래스 타입으로 캐스팅 되는 것특징명시적 형변환 연산자 생략 가능부모 클래스에 정의된 필드, 메소드만 접근 가능자식 클래스에서 오버라이딩 된 메소드는 실제 객체 타입에 따라 실행된다(런타임 다형성) 업캐스팅 사용 시 주의 사항 필드, 메소드 갯수가 제한되어 자식 클래스에 있는 필드, 메소드는 사용할 수 없게 된다.자식 객체를 부모 타입으로 참조했기 때문에 부모 클래스에 정의된 필드, 메소드만 접근할 수 있다.오버라이딩 된 메소드는 자식 메소드로 실행된다.실제 객체 타입(자식 클래스)의 것이 실행된다. (다형성) 업캐스팅을 왜 사용하는가?다양한 자식 객체를 부모 타입으로 통일해 관리자식 클래스가 많아도 하나의 인스턴스로 묶어서 관리할 수 있다. 다운캐스팅?부모 클래스 타입의 ..