Java 객체지향이 헷갈려서 다시 기본부터 공부중이다.
객체지향은 반복되는 복잡한 코드들을 줄여 관리하기 편하게 만들어주는 도구다.
예를 들어, 게임 캐릭터가 가지는 공통된 속성들이 있을 것이다.
이름, 레벨, 필살기, 아이템 등.
그럼 캐릭터 하나하나에 일일이 이름, 레벨, 필살기, 아이템 등에 대한 코드를 작성해줘야하고,
필살기에 대한 내용을 수정해야한다면, 모든 캐릭터에 쓰인 필살기 코드를 찾아서
일일이 수정해줘야한다는 불편함이 있다.
속성과 기능에 대해 선언하는 부분을 본 클래스,
캐릭터에 대해 값들을 부여하는 부분을 캐릭터 클래스라고 칭하겠다.
객체지향은 이름, 레벨, 필살기, 아이템 등에 대한 속성을
본 클래스에 모두 선언을 해버리고,
캐릭터에 이런 속성에 대한 값들은 캐릭터 클래스에서 따로 부여하기만 하면 된다.
게임캐릭터를 선택했을 때 캐릭터가 자기소개를 하도록 기능을 부여할 경우도
객체지향을 이용해서 코드를 간결하게 만들 수 있다.
속성과 마찬가지로 본 클래스에 메소드를 선언한 후,
캐릭터 클래스에서 메소드를 실행만 해주면 된다.
이렇게 속성과 기능을 묶어놓은 본 클래스를 객체 / 인스턴스라고 칭한다.
이해를 돕기 위해 코드로 예시를 들었다.
본사와 프랜차이즈의 관계로 이해하면 더 쉬운데,
본사에서는 프랜차이즈에 대한 속성과 메뉴얼들을 가지고 있고,
프렌차이즈는 이에 맞춰 값만 다르게 메뉴얼대로 움직이면 된다.
좌측이 본 클래스인 본사 클래스,
우측이 캐릭터 클래스였던 체인 클래스라 칭하겠다.
1. 좌측 본사 클래스에서 속성(필드)들을 선언하고,
2. 메소드(기능)을 static을 제외하고 설정해준다.
3. 우측 체인 클래스에서는 본사 클래스에서 선언한 속성들에 값을 부여하는데,
본사 클래스에서 선언한 속성들은 체인 클래스에서 하나의 자료형으로 사용할 수 있게 된다.
4. 그리고 인스턴스의 메소드를 호출해준다.
사진 하단을 보면, 각 체인점의 정보를 입력한 Intro가 호출된 것을 볼 수 있다.
이렇게 코드를 보다 간결하게 만들어주고 유지보수가 쉽도록 해주는 것이 객체지향이다.
'Back > Java' 카테고리의 다른 글
Day74_객체지향 복습_III 접근 제어자, Getter&Setter (0) | 2023.11.04 |
---|---|
Day72_객체지향 복습_II 생성자(Constructor), static (0) | 2023.10.31 |
Day70_for문 별찍기 (2) | 2023.10.27 |
Day26_Java 메서드 정리 (0) | 2023.06.17 |
Day25_Read 코드 작성 (0) | 2023.06.15 |