수강 진행
자바 기초 1~14강 완료, 15~28강 수강 예정
주요 내용
JAVA, IntelliJ 설치
객체 지향
1) 클래스
표현하고자 하는 대상의 공통 속성을 정의해 놓은 것
2) 인스턴스
클래스로부터 만들어진 객체
ex) Phone galaxy = new Phone();
3) 생성자
생성자는 인스턴스가 생성될 때 사용되는 '인스턴스 초기화 메소드'
형식
클래스이름 (타입 변수명, 타입 변수명, ...){
인스턴스 생성 될 때에 수행하여할 코드
변수의 초기화 코드
}
- 생성자의 이름은 클래스명과 같아야 한다.
- 생성자는 리턴 값이 없다.
* alt + insert로 생성자 등 주요 메서드 생성 가능
4) 상속
- 상속의 특징
- 부모 클래스로에서 정의된 필드와 메소드를 물려 받습니다.
- 새로운 필드와 메소드를 추가할 수 있습니다.
- 부모 클래스스에서 물려받은 메소드를 수정할 수 있습니다.
- 오버로딩
한 클래스 내에 동일한 이름의 메소드를 여러개 정의하는 것
→ 메소드 이름이 동일해야 합니다.
→ 매개변수의 개수 혹은 타입이 달라야 합니다.
|
1
2
3
4
5
6
7
8
9
10
|
int add(int x, int y, int z) {
int result = x + y + z;
return result;
}
long add(int a, int b, int c) {
long result = a + b + c;
return result;
}
// 반환타입은 다르지만 매개변수의 자료형과 개수는 같기에 오버로딩이 아닙니다.
|
cs |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
int add(int x, int y, int z) {
int result = x + y + z;
return result;
}
long add(int a, int b, long c) {
long result = a + b + c;
return result;
}
int add(int a, int b) {
int result = a + b;
return result;
}
// 오버로딩의 조건에 부합하는 예제입니다.
|
cs |
- 오버라이딩
→ 부모 클래스로부터 상속받은 메소드의 내용을 변경하는 것
→ 상속받은 메소드를 그대로 사용하기도 하지만, 필요에 의해 변경해야할 경우 오버라이딩을 합니다.
- 오버라이딩의 조건
→ 부모 클래스의 메소드와 매겨변수가 같아야 합니다.
→ 부모 클래스의 메소드와 반환타입이 같아야 합니다.
→ 부모 클래스의 메소드와 이름이 같아야 합니다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
class Animal {
String name;
String color;
public void cry() {
System.out.println(name + " is crying.");
}
}
class Dog extends Animal {
Dog(String name) {
this.name = name;
}
public void cry() {
System.out.println(name + " is barking!");
}
}
public class Main {
public static void main(String[] args) {
Animal dog = new Dog("코코");
dog.cry();
}
}
|
cs |
- 오버로딩 vs 오버라이딩 (비교)오버로딩 : 기존에 없는 새로운 메소드를 정의하는 것 오버라이딩 : 상속받은 메소드의 내용을 변경하는 것
기본적이지만 객체지향언어 자체를 관통하는 내용이기도 하고 항상 헷갈리는 내용이라 상당히 의미 깊은 수업이었다.
'JAVA' 카테고리의 다른 글
| [알고리즘 Lv.1] 달리기 경주(HashMap을 아니?, 깊은 복사) (0) | 2023.04.19 |
|---|---|
| 2022.12.01 인터페이스, 람다, 스트림, Optional (0) | 2022.12.01 |
| 2022.11.25 은행 관리 시스템 거래 내역 기능 (0) | 2022.11.27 |
| 2022.11.24 은행 관리 시스템 입, 출금 기능 구현 (0) | 2022.11.24 |
| 2022.11.23 MemoList Class (0) | 2022.11.23 |