본문 바로가기

OOP

(10)
헤드퍼스트 디자인패턴 - Facade 패턴 퍼사드 클래스를 구현함으로써 복잡한 서브클래스에 메소드를 건드리지 않고 필요한 기능만 간단하게 골라서 이용 할 수 있다. 1-1. 서브클래스 앰프 기능 Onpackage ch02.sec02; public class Amplifier { String description; Tuner tuner; StreamingPlayer player; public void on() { System.out.println("앰프가 켜졌습니다"); } } 1-2. 서브클래스 팝콘 주문접수 기능package ch02.sec02; public class PopcornPopper { public void order() { System.out.println("팝콘 821번 주문접수 완료"); } public void done() {..
헤드퍼스트 디자인패턴 - 커맨드패턴 요청 리시버 Light.javapackage ch01.sec01; // 리시버 public class Light { String location =""; public Light(){ this.location = location; } public void on() { System.out.println(location + " light is on"); } } 커맨더 인터페이스 package ch01.sec01; public interface Command { public void excute(); } 커맨더 인터페이스를 구현한 "LightOnCommand" 클래스가 가지고 있는 "execute()" 메서드 내에서 "Light" 객체의 메서드를 호출하고 있다. 이렇게 "execute()" 메서드 내에서 호출되..
파이썬 객체생성 초기화__init__ , SELF 매개변수 1. 클래스 객체를 만들때 __init__ 인스턴스를 초기화해야한다.def __init__(self): self.switchIsOn = False 1-1. 매개변수 self는 클래스 객체 스코프에 속한 모든 메서드에 접근이 가능하다 그리고 모든 객체 메서는 반드시 매개변수 self가 있어야한다.class LightSwitch(): # 클래스 객체를 만들때 인스턴스를 초기화해야한다. # 매개변수 self는 클래스 객체 스코프에 속한 모든 메서드에 접근이 가능 def __init__(self): self.switchIsOn = False def turnOn(self): self.switchIsOn = True def turnOff(self): self.switchIsOn = False # turn on,of..
인터페이스 설계도 동물 클래스를 상속받고 동물 중에 애완동물 클래스도 상속 받고 싶다 하지만 다중상속은 위험해서 다중상속의 문제점을 해결하기 위해 인터페이스를 사용하기로 한다. package ch01.sec01; public interface Pet { // 추상메서드 public abstract void beFriendly(); public abstract void play(); } 상속받은 강아지,고양이 클래스에 몸통({})을 만들어 추상메서드를구현해야한다. package ch01.sec01; public class Dog extends Animal implements Pet { @Override public void beFriendly() {} @Override public void play() { } } packa..
다형성 강아지,고양이,하마,햄스터등 이와같은 동물들의 공통적인 행동을 그룹화 싶을 때 어떻게 하면 좋을까? 먼저 하위클래스에 있는 고양이,강아지 클래스를 상위 클래스인 동물클래스로 상속시켜 오버라이딩을 시켜보자 package ch01.sec01; public class Animal { // 동물 무리를 지어서 움직이는 성향 public void roam() {} // 소리 public void makeNoise() {} // 먹이 public void eat() {} } package ch01.sec01; public class Dog extends Animal { } package ch01.sec01; public class Cat extends Animal { } 동물 등록을 하는 MyAnimalList 클..
PHP 객체의 속성에 객체 저장 예제 코드를 보면 객체의 속성을 다른 객체에 있는 속성을 불러와서 저장할 수 있다. class Account { public AccountNumber $number; // 다른 객체 AccountNumber타입의 속성을 가져와서 저장할 수 있다 public string $type; protected float $balance; ...... } // 다른 객체 class AccountNumber { public int $accountNumber; public int $routingNumber; public function __construct(int $accountNumber, int $routingNumber) { $this->accountNumber = $accountNumber; $this->rout..
PHP 게터 세터 1. getBalance()메서드는 클래스 속성 protected float $balance값을 가져오는 것으로 게터(getter)라고한다. protected는 클래스 외부에서 볼 수 없다. 그러므로 게터를 사용해 값을 가져온다. 2. 세터(setter)는 값을 업데이트하고 설정할 수 있다 3. 예제에서 게터메서드로 클래스 balance속성을 가져온다. 절약 전 금액: $ // 게터메서드로 balance속성을 가져온다. 절약 후 금액: $ https://www.yes24.com/Product/Goods/118203397 백엔드 프로그래밍을 위한 PHP & MySQL - 예스24 이제 프로그래밍 공부도 아름답고 우아하게 하자 지루하고 어려운 프로그래밍 서적은 이제 그만. 화려하고 아름다운 이미지로 프로그래..
PHP 클래스, 객체 1. 클래스 클래스안에는 속성과 함수메서드가 들어있고 속성과 메서드를 사용하려면 먼저 객체를 생성하고 생성한 객체의 속성에 원하는 값을 할당해야 한다. 2. 객체 new 키워드를 사용하면 앞에서 정의한 클래스 객체를 생성할 수 있다. ex) $account = new Account() 3.객체와 속성을 사용하기 Email: Balance: 4.객체 메서드 사용해 보기 $ // 메서드 호출 5. __construct () 메서드를 사용하면 따로 객체 생성하고 생성한 객체에 값을 할당해주는 빈번한 일을 한줄로 간략하게 표현할 수 있다. 앞에 4번에서 본 객체 생성후 원하는 속성값 할당을 했다면.. $account = new Account(); $account -> balance = 100.00 __const..