반응형
오버라이딩 ( overriding ) 오버라이딩이란, 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 말합니다. 상속받은 메서드를 그대로 사용해도 되지만, 자손 클래스에 맞게 변경해야할 경우 오버라이딩을 사용합니다. 오버라이딩의 조건 오버라이딩이 성립되기 위해서는 다음과 같은 조건들을 만족해야 합니다. 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 1. 이름이 같아야 한다. 2. 매개변수가 같아야 한다. 3. 반환타입이 같아야 한다. 요약하면 선언부가 서로 일치해야 한다는 것과 같습니다. 오버라이딩 예시 class Point { int x; int y; String getLocation() { return "x :" + x + ", y :" + y; } } class Point3..
상속 상속이란, 기존의 클래스를 재사용해 새로운 클래스를 작성하는 것입니다. 상속을 통해서 클래스를 작성하면, 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 도 있어 코드의 추가 및 변경이 용이합니다. 상속 방법 상속 방법은 아주 간단하게 상속받고자 하는 클래스의 이름 앞에 "extends"를 붙여주면 됩니다. 만약 새로 작성하고자 하는 클래스의 이름이 "Child"이고 상속받고자 하는 기존 클래스의 이름이 "Parent"라면 다음과 같습니다. class Child extends Parent { ... } 이 두 클래스는 서로 상속관계에 있다고 하며, 상속해주는 클래스를 "조상 클래스", 상속 받는 클래스를 "자손 클래스"라고 합니다. 이 상속관계를 그림으로 표현하면 다음..
아래의 포스팅을 통해 멤버변수가 무엇인지, 지역변수가 무엇인지에 대해 알아보았습니다. (Java/자바) 클래스 변수, 인스턴스 변수, 지역 변수란? 이 글을 읽기 앞서 자바의 클래스와 객체란? 인스턴스란 ? 무엇인지 모른다면 아래 포스팅을 참고하시면 좋습니다. (Java/자바) 클래스와 객체 클래스와 객체 클래스와 객체를 설명하는 예시로 여 hstory0208.tistory.com 다시 한번 간단하게 복습하자면 다음과 같습니다. 멤버변수(클래스변수, 인스턴스변수)와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다. 이번 시간에는 멤버변수의 초기화의 방법들에 대해 알아보고자 합니다. 멤버변수의 초기화 방법으로는 총 3가지가 있습니다. 명시적 초기화 생성자 초기화 블럭 - 인스턴스 초기화 블럭,..
생성자 ( Constructor ) 생성자는 new 연산자를 통해 인스턴스가 생성될 때 호출되고 제일 먼저 실행되는 "인스턴스 초기화 메서드" 입니다. 어떻게 보면 메서드와 비슷해보이지만 생성자는 단순히 인스턴스 변수들의 초기화에 사용되는 조금 특별한 메서드입니다. 생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값 (return)이 없다는 점이 다릅니다. 그렇다고 해서 리턴값이 없음을 뜻하는 void를 사용하지는 않습니다. 생성자의 조건 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. 생성자 선언 방법 생성자는 다음과 같이 정의합니다. 생성자도 오버로딩이 가능하므로 하나의 클래스의 여러 개의 생성자가 존재할 수 있습니다. 클래스이름 (타입..
오버로딩(Overloading)이라는 뜻은 사전적으로 '과적하다.'라는 뜻으로, 오버로딩이란 ? 한 클래스 내에서 같은 이름의 메서드를 여러 개 정의하는 것을 말합니다. 오버로딩의 조건 오버로딩이 성립되기 위해선 다음과 같은 조건을 만족해야합니다. 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 비록 메서드의 이름이 같더라도 매개변수가 다르면 서로 구별될 수 있기 때문에 오버로딩이 가능합니다. 위의 조건을 만족시키지 못할시에는, 메서드가 중복으로 간주되어 컴파일 시 에러가 발생합니다. 주의할 점으로는 반환 타입( 리턴 타입 )은 오버로딩을 구현하는데 아무런 영향을 주지 않습니다. 오버로딩 예시 코드 아래 코드는 전부 오버로딩의 조건을 만족합니다. class Overloa..
클래스 변수와 인스턴스 변수에서도 그랬듯이, 메서드 앞에 static이 붙으면 클래스 메서드, 없으면 인스턴스 메서드 입니다. 클래스 메서드도 클래스 변수처럼, 객체를 생성하지 않고도 "클래스이름.메서드이름(매개변수)"와 같은식으로 호출이 가능합니다. 반면에, 인스턴스 메서드는 반드시 객체를 생성해야만 호출이 가능합니다. (Java/자바) 클래스 변수, 인스턴스 변수, 지역 변수란? 이 글을 읽기 앞서 자바의 클래스와 객체란? 인스턴스란 ? 무엇인지 모른다면 아래 포스팅을 참고하시면 좋습니다. (Java/자바) 클래스와 객체 클래스와 객체 클래스와 객체를 설명하는 예시로 여 hstory0208.tistory.com 인스턴스 메서드 인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을..