본문 바로가기
혼공자

[혼공단 7기] 혼자 공부하는 자바 2주차

by 도리에몽 2022. 1. 23.

▶ 2주차 기본 미션

- Parent.java

package sec01.verify.exam05;

public class Parent {
	public String nation;
	
	public Parent() {
		this("대한민국");
		System.out.println("Parent() call");
	}
	
	public Parent(String nation) {
		this.nation = nation;
		System.out.println("Parent(String nation) call");
	}
}

 

- Child.java

package sec01.verify.exam05;

public class Child extends Parent {
	private String name;
	
	public Child() {
		this("홍길동");
		System.out.println("Child() call");
	}
	
	public Child(String name) {
		this.name = name;
		System.out.println("Child(String name) call");
	}
}

 

- ChildExample.java

package sec01.verify.exam05;

public class ChildExample {
	public static void main(String[] args) {
		Child child = new Child();
	}
}

 

실행 결과 화면

더보기

→ 부모 클래스인 Parent의 기본 생성자가 호출됨

→ this("대한민국")에 의해 Parent(String nation) 생성자가 호출됨

→ "Parent(String nation) call" 출력

→ "Parent() call" 출력

→ Child 클래스에서 this("홍길동")에 의해 Child(String name) 생성자가 호출됨

→ "Child(String name) call" 출력

→ "Child() call" 출력

 

▶ 2주차 선택 미션

1. 객체 지향 프로그래밍(OPP)

객체 지향 프로그래밍(Object Oriented Programming)은 프로그래밍에 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.

 

2. 구성 요소

- 클래스(Class)

같은 종류의 집단에 속하는 속성행위를 정의한 것.

 

- 객체(Object)

클래스를 토대로 구현된 대상.

 

- 메서드(Method)

클래스로부터 생성된 객체를 사용하는 방법으로 객체에 명령을 내린다.

 

3. 특징

- 추상화(Abstraction)

불필요한 정보는 숨기고 중요한 정보만을 표현. 공통된 속성이나 기능을 묶고 관련 없는 부분은 제거한다.

 

- 캡슐화(Encapsulation)

코드를 수정 없이 재활용. 객체가 필요한 기능과 특성을 모아 하나의 클래스에 묶는다.

 

상속(Inheritance)

자식 클래스가 부모 클래스의 모든 속성과 메서드를 물려받는 것으로, 코드의 중복을 줄일 수 있다. 상속받은 것들은 그대로 사용하거나 재정의하여 사용할 수 있다.

 

- 다형성(Polymorphism)

하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것. 프로그래밍을 유연하고 단순하게 만들어 주는 효과가 있다.

 

  • 오버라이딩(OverRiding)

부모 클래스로부터 상속받은 메서드를 같은 이름으로 자식 클래스에서 기능을 변경하여 사용한다(재정의). 이때, 매개변수의 타입과 개수는 부모의 메서드와 같아야 한다.

 

  • 오버로딩(OverLoading)

하나의 클래스 내에서 같은 이름의 메서드를 여러 개 정의한다(다중 정의). 이때, 매개 변수의 타입과 개수를 다르게 하여 매개 변수에 따라 다르게 호출할 수 있도록 한다.