23_객체지향문법-메소드, 메시지 교환 자판기에 메소드 추가하기

Jiyoon.lee·2024년 3월 14일
0

Java_inflearn

목록 보기
23/25

1. 객체는 다른 객체와 어떻게 관계를 맺으며 이용될까?

만들고 싶은 프로그램이 있다면, 그 프로그램을 구성하고 있는 객체들이 메모리에 몇 개가 올라가고, 메모리에 올라간 객체들 간에는 어떤 고나계를 맺어야 할까?를 생각한 후 클래스를 작성해야 한다.

2. 객체지향의 핵심은 "메시징"

의도는 "메시징"이다.
훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가보다, 모듈이 어떻게 커뮤니케이션하는가에 달려있다.
Alan Curtis Kay

  • 객체 지향 프로그래밍을 한다는 것은 메소드가 언제 호출되고, 어떻게 호출될까? 메소드의 이름은 어떻게 지어야 할까? 어떻게 호출해야 할까?를 고민해야 한다.

3. 객체는 자율적인 책임을 가진다.

  • 자율적인 객체란 스스로 정한 원칙에 따라 판단하고 스스로의 의지를 기반으로 행동하는 객체다. 객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. (즉, 객체는 책임을 가지고 있음)
  • 자율적인 책임의 특징은 객체가 어떻게 해야 하는가가 아니라 무엇을 해야하는가를 설명한다는 것이다.

4. 메시지와 메소드

  • 요청이라는 메시지 -> 객체

5. 메소드 선언 방법

[접근제한자] [static] 리턴type 메소드이름([매개변수, ......]) {
	실행문
}

*메소드 이름은 소문자로 시작하는 것이 관례

6. 헷갈릴 수 있는 단어

  • 매개변수(parameter)
  • 전달인자(argument)

매개변수는 메소드의 정의 부분에 나열되어 있는 변수들을 의미하며, 전달인자는 메소드를 호출할 때 전달되는 실제 값을 의미한다.

7. 자판기에 메소드를 추가한다.

public class VendingMachine {
    public String pushProductButton(int menuId) {
        System.out.println(menuId + "를 전달받았습니다.");
        return "콜라";
    }
}
public class VendingMachineMain {
    public static void main(String[] args) {
        VendingMachine vm1 = new VendingMachine();
        VendingMachine vm2 = new VendingMachine();
        
        String product = vm1.pushProductButton(100);
        System.out.println(product);
    }
}

0개의 댓글