본문 바로가기

Programming/Java83

[Java] - super란? super()란? 출처 : 자바의 정석 super 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는 데 사용되는 참조 변수이다. 다시 말해서 조상의 멤버를 구별하기 위해 사용된다. 이처럼 조상 클래스에 선언된 멤버 변수와 같은 이름의 멤버 변수를 자손 클래스에서 중복해서 정의하는 것이 가능하며 참조변수 super를 이용해서 서로 구별할 수 있다. 변수만이 아니라 메서드 역시 super를 써서 호출할 수 있다. (자바의 정석 331p) super() 조상 클래스의 생성자를 호출하는데 사용된다. super()가 존재하는 이유 (관련 개념 포스팅 : 상속관계, 생성자) 상속관계에서 자손 클래스의 인스턴스가 생성되면 조상 클래스의 멤버와 자손 클래스의 멤버가 합쳐진 하나의 인스턴스로 생성된다. 이때문에 자손 클래스에서 .. 2021. 2. 26.
[Java] - 오버라이딩이란? + 오버로딩과 헷갈리지 않기 출처 : 자바의 정석 오버라이딩 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것. 오버라이딩의 조건 오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부는 조상의 것과 완전히 일치해햐 한다. -> 이름 -> 매개변수 -> 반환타입 이 같아야 한다. 다만, 접근 제어자와 예외는 제한된 조건 하에서만 변경이 가능하다. - 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다. (public - protected - (default) - private 순으로 범위가 좁아진다.) - 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. - 인스턴스 메서드를 static 메서드로 또는 그 반대로 변경할 수 없다. 오버로딩 오버로딩은 기존에 없는 새로운 메서드를 추가하.. 2021. 2. 26.
[Java] - 상속관계와 포함관계 상속관계 2021/02/25 - [Programming/Java] - [Java] - 상속이란? 포함관계 2021/02/25 - [Programming/Java] - [Java] - 상속 이외에 클래스를 재사용하는 방법 출처 : 자바의 정석 상속관계와 포함관계 상속 관계와 포함관계는 얼핏 보면 차이가 나지 않는다. '자바의 정석'저자는 클래스간 관계를 결정하는 방법을 명쾌하게 설명해주었다. A는 B다. is A는 B를 가지고 있다. has is 관계이면 상속관계 has 관계이면 포함관계를 맺어주면 된다. 2021. 2. 25.
[Java] - 상속 이외에 클래스를 재사용하는 방법 2021/02/25 - [Programming/Java] - [Java] - 상속이란? 출처 : 자바의 정석 상속 이외에 클래스를 재사용하는 방법 클래스간의 포함 관계를 맺어 주는 것이다. 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것을 뜻한다. 원을 표현하기 위한 circle 클래스가 있다. class Circle{ int x; int y; int radius; } 좌표를 다루기 위한 point 클래스가 있다. class Point{ int x; int y; } point 클래스를 재사용해서 circle 클래스를 작성한다면 아래와 같이 할 수 있다. 공통된 멤버 변수 int x, int y 대신 Point 클래스를 Circle 클래스에 포함관계를 맺어주었다. class Circle{.. 2021. 2. 25.
[Java] - 상속이란? 출처 : 자바의 정석 상속이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 자식, 부모 클래스 상속의 정의로 자식, 부모 클래스를 알아보자. 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 기존의 클래스 : 부모 클래스, 상위 클래스, 기반 클래스 자손 클래스 : 자식 클래스, 하위 클래스, 파생된 클래스 자손 클래스는 기존의 클래스(부모 클래스)를 재사용하여 새로운 클래스를 작성하기 때문에 기존의 클래스(부모 클래스)에 있는 멤버변수는 자동적으로 자손 클래스에 추가된 것가 같은 효과를 얻는다. -> 자손 클.. 2021. 2. 25.
[Java] - 변수의 초기화 방법 출처 : 자바의 정석 변수의 초기화 변수를 선언하고 처음으로 값을 저장하는 것. 초기화 방법 1. 명시적 초기화 변수를 선언과 동시에 초기화. 2. 생성자 3. 초기화 블럭 - 클래스 초기화 블럭 : 클래스가 메모리에 처음 로딩될 때 한번만 수행된다. - 인스턴스 초기화 블럭 : 인스턴스가 생성될 때 마다 수행된다. class initVar{ static{ // 클래스 초기화 블럭 } {// 인스턴스 초기화 블럭} } (주의 : 생성자보다 인스턴스 초기화 블럭이 먼저 수행된다.) 초기화 블럭 언제 사용하나? 클래스의 모든 생성자에 공통으로 수행되어야 하는 문장들이 있을때, 이 문장들을 각 생성자마다 써주기 보다는 인스턴스 블럭에 넣어주면 코드가 보다 간결해진다. 멤버변수의 초기화 시기와 순서 packag.. 2021. 2. 25.