Classes and Objects
로빈아빠
본문
( 역자주 : Class 문장은 Java의 subset이라 할만큼 동일하다. )
class
클래스는 일련의 변수와 이 변수들을 사용하는 함수들의 모음이다. 클래스는 다음과 같은 형태로 선언된다.
1
2 <?php
3 class Cart {
4 var $items; // Items in our shopping cart
5
6 // Add $num articles of $artnr to the cart
7
8 function add_item ($artnr, $num) {
9 $this->items[$artnr] += $num;
10 }
11
12 // Take $num articles of $artnr out of the cart
13
14 function remove_item ($artnr, $num) {
15 if ($this->items[$artnr] > $num) {
16 $this->items[$artnr] -= $num;
17 return true;
18 } else {
19 return false;
20 }
21 }
22 }
23 ?>
24
이 선언은 Cart라는 이름의 클래스로, 카트안에 들어있는 물품을 위한 한 개의 배열 변수와 cart에 물건을 넣거나 빼는 두 개의 함수로 구성되어 있다.
Classe는 Type으로, 실제 변수들의 청사진이라 할 수 있다. 여러분은 new 연산자를 사용하여 원하는 type의 변수를 생성하여야 한다.
1
2 $cart = new Cart;
3 $cart->add_item("10", 1);
4
위에 있는 예는 Cart 클래스의 $cart라는 object를 만드는 것이다. 이 object의 add_item() 함수를 호출하여 물품 번호 "10"번의 물품 1개를 카트에 넣는다.
클래스는 다른 클래스로 확장 될 수 있다. 확장 혹은 파생된(extended or derived) 클래스는 base 가 되는 클래스의 모든 변수들과 함수들을 그대로 가제게 되고, 여러분은 여기에 추가로 확장된 선언을 할 수 있다. 이를 위해 "extends"라는 키워드가 사용된다.
1
2 class Named_Cart extends Cart {
3 var $owner;
4
5 function set_owner ($name) {
6 $this->owner = $name;
7 }
8 }
9
위의 예는 Cart 클래스의 변수와 함수에 $owner 변수와 set_owner() 함수를 추가한 Named_Cart라는 클래스의 선언이다. 여러분은 이름붙은 카트(named cart)를 사용하여 카트의 주인을 설정하고 찾아볼 수 있다. 또한 기존의 일반 카트(normal cart)에 있던 함수도 사용할 수 있다.
1
2 $ncart = new Named_Cart; // Create a named cart
3 $ncart->set_owner ("kris"); // Name that cart
4 print $ncart->owner; // print the cart owners name
5 $ncart->add_item ("10", 1); // (inherited functionality from cart)
6
클래스 내부에 있는 함수에서 $this 라는 변수는 자기 자신 object를 의미한다. 여러분은 $this->something 의 형태로 현재 object의 변수나 함수를 사용하여야 한다.
생성자(Constructor)는 해당 클래스의 새 인스턴스(새로 만든 변수라고 생각해 두자)를 만들 때 자동적으로 실행되는 함수를 의미한다. 클래스의 이름과 같은 이름의 함수가 생성자가 된다.
1
2 class Auto_Cart extends Cart {
3 function Auto_Cart () {
4 $this->add_item ("10", 1);
5 }
6 }
7
위의 예는 Cart 클래스에 물품번호 10번의 물품을 한 개 자동으로 추가하는 생성자를 추가한 Auto_Cart라는 클래스의 선언이다. Auto_Cart는 "new"로 생성된다. 생성자는 또한 인수(argument)를 가질 수 있고, 이 인수들은 default값을 가진 옵션으로 선언 할 수 있다. 이 기능은 매우 유용하게 사용된다.
1
2 class Constructor_Cart extends Cart {
3 function Constructor_Cart ($item = "10", $num = 1) {
4 $this->add_item ($item, $num);
5 }
6 }
7
8 // Shop the same old boring stuff.
9
10 $default_cart = new Constructor_Cart;
11
12 // Shop for real...
13
14 $different_cart = new Constructor_Cart ("20", 17);
15
출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=pht&wr_id=51
class
클래스는 일련의 변수와 이 변수들을 사용하는 함수들의 모음이다. 클래스는 다음과 같은 형태로 선언된다.
1
2 <?php
3 class Cart {
4 var $items; // Items in our shopping cart
5
6 // Add $num articles of $artnr to the cart
7
8 function add_item ($artnr, $num) {
9 $this->items[$artnr] += $num;
10 }
11
12 // Take $num articles of $artnr out of the cart
13
14 function remove_item ($artnr, $num) {
15 if ($this->items[$artnr] > $num) {
16 $this->items[$artnr] -= $num;
17 return true;
18 } else {
19 return false;
20 }
21 }
22 }
23 ?>
24
이 선언은 Cart라는 이름의 클래스로, 카트안에 들어있는 물품을 위한 한 개의 배열 변수와 cart에 물건을 넣거나 빼는 두 개의 함수로 구성되어 있다.
Classe는 Type으로, 실제 변수들의 청사진이라 할 수 있다. 여러분은 new 연산자를 사용하여 원하는 type의 변수를 생성하여야 한다.
1
2 $cart = new Cart;
3 $cart->add_item("10", 1);
4
위에 있는 예는 Cart 클래스의 $cart라는 object를 만드는 것이다. 이 object의 add_item() 함수를 호출하여 물품 번호 "10"번의 물품 1개를 카트에 넣는다.
클래스는 다른 클래스로 확장 될 수 있다. 확장 혹은 파생된(extended or derived) 클래스는 base 가 되는 클래스의 모든 변수들과 함수들을 그대로 가제게 되고, 여러분은 여기에 추가로 확장된 선언을 할 수 있다. 이를 위해 "extends"라는 키워드가 사용된다.
1
2 class Named_Cart extends Cart {
3 var $owner;
4
5 function set_owner ($name) {
6 $this->owner = $name;
7 }
8 }
9
위의 예는 Cart 클래스의 변수와 함수에 $owner 변수와 set_owner() 함수를 추가한 Named_Cart라는 클래스의 선언이다. 여러분은 이름붙은 카트(named cart)를 사용하여 카트의 주인을 설정하고 찾아볼 수 있다. 또한 기존의 일반 카트(normal cart)에 있던 함수도 사용할 수 있다.
1
2 $ncart = new Named_Cart; // Create a named cart
3 $ncart->set_owner ("kris"); // Name that cart
4 print $ncart->owner; // print the cart owners name
5 $ncart->add_item ("10", 1); // (inherited functionality from cart)
6
클래스 내부에 있는 함수에서 $this 라는 변수는 자기 자신 object를 의미한다. 여러분은 $this->something 의 형태로 현재 object의 변수나 함수를 사용하여야 한다.
생성자(Constructor)는 해당 클래스의 새 인스턴스(새로 만든 변수라고 생각해 두자)를 만들 때 자동적으로 실행되는 함수를 의미한다. 클래스의 이름과 같은 이름의 함수가 생성자가 된다.
1
2 class Auto_Cart extends Cart {
3 function Auto_Cart () {
4 $this->add_item ("10", 1);
5 }
6 }
7
위의 예는 Cart 클래스에 물품번호 10번의 물품을 한 개 자동으로 추가하는 생성자를 추가한 Auto_Cart라는 클래스의 선언이다. Auto_Cart는 "new"로 생성된다. 생성자는 또한 인수(argument)를 가질 수 있고, 이 인수들은 default값을 가진 옵션으로 선언 할 수 있다. 이 기능은 매우 유용하게 사용된다.
1
2 class Constructor_Cart extends Cart {
3 function Constructor_Cart ($item = "10", $num = 1) {
4 $this->add_item ($item, $num);
5 }
6 }
7
8 // Shop the same old boring stuff.
9
10 $default_cart = new Constructor_Cart;
11
12 // Shop for real...
13
14 $different_cart = new Constructor_Cart ("20", 17);
15
출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=pht&wr_id=51
관련링크
댓글목록
등록된 댓글이 없습니다.