본문 바로가기

코린이

혼공자 2주차 미션 본문

자바/혼공 학습단 10기

혼공자 2주차 미션

winsome99 2023. 7. 14. 15:34
반응형

2주차 과제

📝기본 과제 330p. 5번 문제 출력결과

// Parent.java
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
public class Child {
    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
public class ChildExample {
    public static void main(String[] args) {
        Parent parent = new Parent();
        Child child = new Child();
    }
}

실행 결과

 

📝선택 과제 객체지향 프로그래밍 정리

객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으며 식별 가능한 것

객체를 만들고 이를 조립한 프로그램을 만드는 기법을 객체 지향프로그램이라고 한다.

추상화

추상화는 클래스의 공통적인 요소를 뽑아서 상위 클래를 만들어낸다.

복잡한 시스템이나 개념을 단순화하여 중요한 부분에 집중할 수 있도록 하는 과정이다.

자바에서 추상화를 구현하기 위해 사용되는 주요한 개념은 클래스와 인터페이스로 클래스는 객체를 만들기 위한 설계도라 한다.

클래스로부터 만들어진 객체를 클래스의 인스턴라고 한다.

인터페이스(interface)는 추상화를 위한 개념으로 사용되는 중요한 요소로 클래스들이 구현해야 할 메서드의 목록을 정의한다.

public interface 인터페이스명 {
    // 상수 필드
    public static final 타입 상수명 = 값;

    // 메서드 시그니처
    반환타입 메서드명(매개변수);
}

상속

하위 클래스(자식 클래스)가 상위 클래스(부모 클래스)의 속성과 메서드를 상속받는다.

상속을 통해 하위 클래스는 상위 클래스의 필드(속성)와 메서드를 모두 물려받아 상위 클래스의 코드를 재사용하고, 하위 클래스에서는 추가적인 필드와 메서드를 정의할 수 있다.

자바에서 상속은 extends 키워드를 사용하여 구현한다.

public class Superclass {
    // 상위 클래스의 필드와 메서드 정의
}

하위 클래스는 extends 키워드를 사용하여 상위 클래스를 상속받음

javaCopy code
public class Subclass extends Superclass {
    // 하위 클래스의 추가적인 필드와 메서드 정의
}

다형성

다형성은 같은 타입이지만 다양한 형태로 동작할 수 있는 능력을 가리키는 개념으로 코드의 유연성과 재사용성을 높이는 중요한 원리 중 하나이다.

대표적인 예로는 오버라이딩과 오버로딩이 있다.

오버라이딩

  • 버라이딩은 상속 관계에 있는 클래스에서 상위 클래스의 메서드를 하위 클래스에서 재정의하는 것을 의미
  • 메서드 오버라이딩은 상속받은 메서드를 하위 클래스에서 동일한 시그니처(이름, 매개변수, 반환 타입)를 가진 새로운 구현으로 재정
class Animal {
    public void makeSound() {
        System.out.println("동물은 소리를 낸다.");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("강아지가 짖는다.");
    }
}

오버로딩

  • 오버로딩은 같은 이름을 가진 메서드들이 서로 다른 매개변수를 가지도록 정의되는 것을 의미한다.
  • 오버로딩을 통해 동일한 이름의 메서드를 다양한 매개변수 조합에 대해 사용할 수 있다.
class Calculator {
    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }
}

캡슐화

캡슐화는 정보 은닉(information hiding)과 관련하여 객체의 내부 구현을 외부로부터 감추는 기능을 제공한다.

캡슐화의 목적으론 데이터 보호, 정보 은닉, 인터페이스 제공이 있다

자바에는 접근제한자가 존재해 캡슐화를 구현한다.

  • public 접근 제한자: 단어 뜻 그대로 외부 클래스가 자유롭게 사용할 수 있도록 한다.
  • protected 접근 제한자: 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 한다.
  • private 접근 제한자: 개인적인 것이라 외부에서 사용될 수 없도록 한다.
  • default 접근 제한자: 같은 패키지에 소속된 클래스에서만 사용할 수 있도록 한다.(위의 3가지 접근 제한자가 적용되지 않으면 접근 제한을 가진다.)

 

Chapter6장 클래스 정리

https://winsome99.tistory.com/33

 

혼공자 Chapter06. 클래스

06_1 객체 객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으며 식별 가능한 것을 말한다. EX) 자동차, 자전거, 책, 강의 등 속성 필드(field) + 동작 메t

winsome99.tistory.com

Chapter7장 상속 정리

https://winsome99.tistory.com/35

 

혼공자 Chapter07. 상속

chapter7 상속 07_1 상속 객체 지향 프로그래밍에서도 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다. 프로그램에서는 부모 클래스를 상위 클래스라고 하고 자식 클래스를 하위 클래스 또

winsome99.tistory.com

 

Chapter8장 인터페이스

https://winsome99.tistory.com/36

 

chapter08 인터페이스

08_1 인터페이스 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능해 어떤 객체를 사용하느냐에 따라 실행 내용과 리턴값이

winsome99.tistory.com

 

반응형

'자바 > 혼공 학습단 10기' 카테고리의 다른 글

혼공자 chapter08 인터페이스  (0) 2023.07.15
혼공자 Chapter07. 상속  (0) 2023.07.14
혼공자 Chapter06. 클래스  (0) 2023.07.14
혼공자 1주차 3장~5장(2)  (0) 2023.07.07
혼공자 1주차 미션 JDK설치(1)  (0) 2023.07.04
Comments