자바의 정석 16

[Java] 오버로딩 vs 오버라이딩

오버로딩(overloading) : 기존에 없는 새로운 메서드를 정의하는 것(new) 오버라이딩(overriding) : 상송받은 메서드의 내용을 변경하는 것(change, modify) class Parent{ void parentMethod() {} } class Child extends Parent{ void parentMethod() {} //오버라이딩 void parentMethod(int i) {} //오버로딩 void childMethod() {} void childMethod(int i) {} //오버로딩 void childMethod() {} //error 중복 }

[Java] 오버라이딩

오버라이딩의 조건 오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부는 조상의 것과 완전히 일치해야 한다. 조건은 다음과 같다. 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 - 이름이 같아야 한다. - 매개변수가 같아야 한다. - 반환타입이 같아야 한다. 조상 클래스의 메서드를 자손 클래스에서 오버라이딩 할 때 1. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. 2. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다. 3. 인스턴스메서드를 static메서드로 또는 그 반대로 변경할 수 없다.

[Java] 상속(inheritance)

상속의 정의와 장점 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 코드의 재사용성을 높이고, 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 구현 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써 주기만 하면 된다. 조상 클래스 : 부모(parent)클래스, 상위(super)클래스, 기반(base)클래스 자손 클래스 : 자식(child)클래스, 하위(sub)클래스, 파생된(derived)클래스 ex) 자손 클래스는, 조상의 멤버를 모두 상속 받는다. class Parent{ } class Child extends Parent { }

[Java] 오버로딩

오버로딩이란? 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것. 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. ex) int add(int a, int b) return a+b; ex) int add(int x, int y) return x+y; 오버로딩의 장점 여러 메서드들이 하나의 이름으로 정의될 수 있다면, 하나의 이름만 기억하면 되므로, 기억하기 쉽고 이름도 짧게 할 수 있어서 오류의 가능성을 많이 줄일 수 있다.

[Java] 클래스 메서드와 인스턴스 메서드

메서드 앞에 static이 붙어 있으면 클래스 메서드 이고, 붙어 있지 않으면 인스턴스 메서드 이다. 1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다. 2. 클래스 변수(static 변수)는 인스턴스를 생성하지 않아도 사용할 수 있다. 3. 클래스 메서드(static 메서드)는 인스턴스 변수를 사용할 수 없다. 4. 메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다.

[Java] 객체의 구성요소

속성과 기능 객체는 속성과 기능 두 종류의 구성요소로 이루어져 있으며, 일반적으로 객체는 다수의 속성과 다수의 기능을 갖는다. 즉, 객체는 속성과 기능의 집합 이라고 할 수 있다. 객체가 가지고 있는 속성과 기능을 그 객체의 멤버(구성원)이라고 한다. 속성(property) : 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state) 기능(function) : 메서드(method), 함수(function), 행위(behavior) ex) Tv 를 예제로 만들어 보면, 속성 크기, 길이, 높이, 색상, 볼륨, 채널 기능 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 등 class Tv{ String color; // 색깔 boolean power;..

[Java] 클래스와 객체

클래스와 객체의 정의와 용도 클래스란? 객체를 정의해놓은 것. -> 객체란? 실제로 존재하는 것, 개념이나 논리와 같은 무형적인 것들도 객체로 간주. 클래스의 정의와 용도 클래스의 정의 : 객체를 정의해 놓은 것. 클래스의 용도 : 클래스는 객체를 생성하는데 사용. 객체의 정의와 용도 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념. 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름. 유형의 객체 : 책상, 의자, 자동차, TV와 같은 사물 무형의 객체 : 수학공식, 논리나 개념 예제 클래스 객체 제품 설계도 제품 TV 설계도 TV 붕어빵 기계 붕어빵