1. 클래스 정의

// class 키워드를 이용해서 클래스를 정의한다.
class Car {
    // 멤버 변수를 정의한다.
    var $color;
    var $speed;
   
    // 생성자
    function Car($color = 'red') {
        // $this 를 사용해서 멤버에 접근한다.
        $this->color = $color;
    }
   
    // 메소드를 정의한다.
    // 메소드 오버로딩을 지원하지 않는다.
    function speedUp($amount=1) {
        $this->speed += $amount;
    }
   
    function getSpeed() {
        return $this->speed;
    }
}



2. 클래스 사용하기

$car = new Car('blue');
$car->speedUp();
echo($car->getSpeed());



3. 상속하기
class Super {
    var $s_member;
   
    function s_method() {
        echo("call s_method()...\n");
    }
}

 

// extends 키워드를 이용해서 상속한다.
// 다중상속은 지원하지 안는다.

class Child extends Super {
    var $c_member;
   
    function c_method() {
        echo("call c_method()...\n");
    }
}

 

$super = new Super();
$super->s_member = 10;
$super->s_method();

 

$child = new Child();
$child->c_member = 5;
$child->c_method();

 

// 상속받은 부모의 속성을 사용할 수 있다.
$child->s_member = 10;
$child->s_method();

 

// 부모객체는 자식의 속성을 사용할 수 없다.
$super->c_member = 3;
$super->c_method();

 

출력 결과)
call s_method()...
call c_method()...
call s_method()...

 

Fatal error: Call to undefined method Super::c_method() in D:\workspace\PHPTest\test.php on line 34



4. 오버라이딩
class Super {
    var $member = '부모의 기본값';
   
    function operation() {
        echo("부모의 메소드 호출.\n");
        echo("\$member의 값은 {$this->member}\n");
    }
}

 

class Child extends Super {
    var $member = '자식의 기본값';
   
    function operation() {
        echo("자식의 메소드 호출\n");
        echo("\$member의 값은 {$this->member}\n");
       
       
        echo("\n부모값 호출\n");
       
        // 부모의 속성을 호출하기 위해서 parent 키워드와 :: 연산자를 사용한다.
        parent::operation();
    }
}

 

$super = new Super();
$super->operation();
echo("\n");
$child = new Child();
$child->operation();

 

출력 결과)
부모의 메소드 호출.
$member의 값은 부모의 기본값

 

자식의 메소드 호출
$member의 값은 자식의 기본값

 

부모값 호출
부모의 메소드 호출.
$member의 값은 자식의 기본값


5. 객체 비교하기
// 객체의 비교는 == 연사자를 이용하고, 속성들의 값이 동일할 때만  true 이다.
$car1 = new Car();
$car2 = new Car();
if($car1 == $car2) {
    echo("TRUE...\n");
} else {
    echo("FALSE...\n");
}

 

$car2->speedUp();
if($car1 == $car2) {
    echo("TRUE...\n");
} else {
    echo("FALSE...\n");
}

 

$car3 = new Car('blue');
if($car1 == $car3) {
    echo("TRUE...\n");
} else {
    echo("FALSE...\n");
}

출력결과)
TRUE...
FALSE...
FALSE...

'Web(웹) Study > PHP' 카테고리의 다른 글

PHP 문자열 처리 함수  (0) 2011.01.10
date함수의 포맷문자열  (0) 2010.11.24
월의 마지막 날짜 구하기  (0) 2010.11.24
날짜의 요일 구하기  (0) 2010.11.24
php에 mssql을 사용하기  (0) 2010.02.12

+ Recent posts