본문 바로가기

객체지향4

Day75_객체지향 복습_IV 상속과 다형성 본사의 방침을 모두 갖고있으면서 자신만의 새로운 메소드를 가지는 클래스를 만드려고 할 경우 상속을 사용한다. 맥도날드와 맥도날드DT점을 생각하면 이해가 쉽다. DT는 본사의 메뉴얼을 그대로 하면서도, 추가적으로 DT에 대한 메뉴얼이 있어야한다. YalcoChicken을 YalcoChickenDT가 상속받기 때문에 Main 클래스에서 YalcoChickenDT의 인스턴스를 만들고 YalcoChicken의 메소드를 사용하는 것이 가능한 것이다. 다음으로 오버라이딩(@Override)이 있는데, 부모가 상속해준 메소드를 자식이 마음대로 바꿔 사용할 수 있는 기능이다. 부모의 유전자를 물려받지만, 자식 마음대로 유전자를 배합하는 거라 이해하면 된다. 아래 예시를 보면 부모 Button 클래스를 ShutDownB.. 2023. 11. 8.
Day74_객체지향 복습_III 접근 제어자, Getter&Setter 접근제어자는 클래스 구성요소의 공유 가능 범위를 설정하는 거라 이해하면 된다. 필요한 인스턴스는 public으로 공개하고, 불필요한 인스턴스는 private으로 숨겨 혼동을 방지하는 것이다. public과 private을 주로 사용하지만, 그 외에도 protected와 default가 있다. 접근 가능 범위는 아래와 같다. 접근 가능 public protected default private 해당 클래스 안에서 ✅ ✅ ✅ ✅ 동일 패키지 안에서 ✅ ✅ ✅ 동일 패키지 또는 자손 클래스 안에서 ✅ ✅ 다른 패키지 포함 어느 곳에서든 ✅ 코드를 못 보게 감추는 것은 아니고 볼 수는 있으나 작성자의 의도대로 사용하기 위해 접근에 대한 제한을 거는 것이다. 아래 예시를 보면, 앞에 접근제어자를 붙이지 않은 po.. 2023. 11. 4.
Day72_객체지향 복습_II 생성자(Constructor), static 앞서 객체지향 개념 이해 부분에서 본사와 프렌차이즈에 빗대어 설명을 했다. 앞전의 코드에서는 이미 매장이 만들어진 이후에 매장에 대한 정보를 수동으로 입력했는데, 본사에서 처음부터 매장에 대한 정보를 형식화하도록 하는 것이 생성자이다. 바로 코드를 통해 예시를 보면, 좌측의 본사 클래스에서 체인점에 대한 속성들을 형식화해놨다. 우측의 체인 클래스에서는 값만 입력하면 된다. 생성자 특징 정리 • 메서드 이름이 붙지 않고, 반환 타입(해당 클래스)이 앞에 붙으며, 뒤로 괄호가 따라옴 • return을 명시하지 않음 → 해당 클래스 타입의 인스턴스 반환 • new 연산자와 함께 사용되어 인스턴스를 반환 • 생성자 없이 값을 따로 지정해줘서 사용할 수도 있지만, 생성자를 만들지 않았다해도 생성자는 존재함(컴파일.. 2023. 10. 31.
Day71_객체지향 복습_I 객체지향 개념 Java 객체지향이 헷갈려서 다시 기본부터 공부중이다. 객체지향은 반복되는 복잡한 코드들을 줄여 관리하기 편하게 만들어주는 도구다. 예를 들어, 게임 캐릭터가 가지는 공통된 속성들이 있을 것이다. 이름, 레벨, 필살기, 아이템 등. 그럼 캐릭터 하나하나에 일일이 이름, 레벨, 필살기, 아이템 등에 대한 코드를 작성해줘야하고, 필살기에 대한 내용을 수정해야한다면, 모든 캐릭터에 쓰인 필살기 코드를 찾아서 일일이 수정해줘야한다는 불편함이 있다. 속성과 기능에 대해 선언하는 부분을 본 클래스, 캐릭터에 대해 값들을 부여하는 부분을 캐릭터 클래스라고 칭하겠다. 객체지향은 이름, 레벨, 필살기, 아이템 등에 대한 속성을 본 클래스에 모두 선언을 해버리고, 캐릭터에 이런 속성에 대한 값들은 캐릭터 클래스에서 따로 .. 2023. 10. 31.