[ php ] php 객체지향 - 클래스 정의, 객체 생성, 접근, 생성자, 소멸자 > PHP

본문 바로가기
사이트 내 전체검색

PHP

[ php ] php 객체지향 - 클래스 정의, 객체 생성, 접근, 생성자, 소멸자

페이지 정보

작성자 웹지기 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 525회 작성일 19-05-16 17:57

본문

클래스 정의

  - 객체는 class 키워드로 클래스를 정의

  - 클래스의 정의에는 클래스이름(대문자 소문자 구분)과 속성 메소드가 포함

  - 클래스는 데이터를 저장하는 속성 값을 가지고 있슴.

  - 데이터를 가공 / 처리하기 위한 메소드를 포함

 

객체

   - 자바와 흡사하고 trait(특성)이 추가 되었슴.

   - 클래스 외부에서 클래스의 static(고정), constant(상수)에 접근할 때, 

     클래스 내부에서 상속 계층상의 프로퍼티나 메소드에 접근 할 때는 ->가 아니라 ::를 사용한다

 

  = 접근제한 키워드

     public, protected, private

  = 생성자, 소멸자

function __construct( ) { }

function __destruct( ) { }

  

  = 객체생성은 new 키워드를 사용

<?php

$test = new User; //new키워드로 User객체를 생성

class User

{

    public $id, $name; //public로 변수선언

    function printUser( ) //User클래스에 printUser 메소드 선언

    {

        print_r($this); //User클래스 출력

    }

}

?>

 

  = 접근

    객체의 속성에 접근하는 방법은 -> 를 사용

    new로 생성한 User 클래스를 대입한 $test의 name의 속성에 접근 방법은 $test -> name

    객체메소드 printUser() 접근 방법은 $test -> printUser( )

    속성이나 메소드 접근시 "$"를 붙이지 않음

 

 = 복제

    새로운 메모리를 할당하는 것이 아닌 객체의 주소값을 전달하는 것

    새로운 객체의 복제는 clone 키워드를 사용

 

<?php 

$test = new User(); //User객체를 생성해서 test변수에 대입

$test -> name = "No"; //test객체의 name속성에 "No" 대입

$test2 = clone $test; //test객체를 복제하여 test2에 대입

$test2 -> name = "Hahaha"; //test2 객체의 name속성에 "Hahaha" 대입

echo "--- test name ---".$test -> name."<br>"; //No출력

echo "=== test2 name ===".$test2 -> name ."<br>"; //Hahaha출력

?>

 

 

상속

  - extends 단일상속만 허용

  - implements 인터페이스는 여러개 받아 구현가능

  - final 오버라이드나 상속을 금지

 

  = trait 

     상속, 인터페이스, 트레이트

     오버라이드 순위 " 클래스 메소드 > 트레이트 메소드 > 상속한 메소드 "

trait UserTrait

{

    public function userTraitMethod( )

    {

    

    }

}

class UserClass

{

    use UserTrait, ...;

    ....

}

 

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 77건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
324
어제
398
최대
1,323
전체
93,474

그누보드5
Copyright © funyphp.com. All rights reserved.