happy cat image

everdevel

coding

login
알림X
  • 현재 댓글에 대한 답변만 표시합니다.
  • 표시할 댓글 이력이 없거나 로그인해 주세요.
























everdevel이 만든 무료 클라우드 개발환경을 소개합니다.

방문해 주셔서 감사합니다.

인스턴스 생성하기

선언한 클래스를 사용하려면 인스턴스를 생성합니다.
인스턴스를 생성하면 클래스의 객체 변수가 생성됩니다.
앞에서 선언한 클래스는 쉽게 말해 도장이라고 생각하시면 됩니다.
즉 하나의 틀
도장을 빨간색 인주에 찍으면 빨간색으로 찍히고, 초록색 인주에 찍으면 초록색으로 찍히고 ...
즉 위의 자동차클래스는 하나의 틀이라 생각하여 도요타 자동차도 만들 수 있고, 벤츠, 혼다, 포르쉐의 기술을 넣어 포르쉐 만들 수 있다는 의미입니다.
인스턴스는 클래스 외부에서 선언하며 new 키워드를 사용합니다.

인스턴스 생성 방법

$변수명 = new 클래스명;

그럼 앞의 강좌에 이어서...

앞에서 선언한 자동차 클래스의 인스턴스를 생성해 볼게요.

<?php
    class Car
    {
        public $wheels;
        public $doors = 4;
        protected $color = 4;
        private $size;
        private $company;

        public function run()
        {
            return "자동차가 달립니다.";
        }

        protected function stop()
        {
            return "자동차가 멈춥니다.";
        }

        protected function turn()
        {
            return "자동차가 회전합니다.";
        }
    }
    $honda = new Car;
?>

결과는 바로 아래에서 확인하겠습니다.

그럼 위의 코드에서 honda 인스턴스가 어떤 객체를 갖고 있는지 var_dump()를 통해서 확인해 볼까요?

<?php
    class Car
    {
        public $wheels;
        public $doors = 4;
        protected $color = 4;
        private $size;
        private $company;

        public function run()
        {
            return "자동차가 달립니다.";
        }

        protected function stop()
        {
            return "자동차가 멈춥니다.";
        }

        protected function turn()
        {
            return "자동차가 회전합니다.";
        }
    }

    $honda = new Car;

    var_dump($honda);
?>

결과는 바로 아래에서 확인하겠습니다.

실행해보니 다음과 같은 출력물이 나오네요.
object(Car)#1 (5) { ["wheels"]=> NULL ["doors"]=> int(4) ["color":protected]=> int(4) ["size":"Car":private]=> NULL ["company":"Car":private]=> NULL }

인스턴스를 통해서 프로퍼티와 메소드에 접근해볼까요? 접근하려면 ->를 사용합니다.
honda 변수는 클래스의 외부에서 선언했죠, 그러므로 public으로 선언된 프로퍼티와 메소드에 접근할 수 있어요.

프로퍼티 사용하기

$변수명 = new 클래스명;
$변수명->프로퍼티;

주의할점은 프로퍼티 앞의 $는 빼고 사용합니다.

<?php
    class Car
    {
        public $wheels;
        public $doors = 4;
        protected $color = 4;
        private $size;
        private $company;

        public function run()
        {
            return "자동차가 달립니다.";
        }

        protected function stop()
        {
            return "자동차가 멈춥니다.";
        }

        protected function turn()
        {
            return "자동차가 회전합니다.";
        }
    }

    $honda = new Car;
    echo $honda->doors;

?>

결과는 바로 아래에서 확인하겠습니다.

doors프로퍼티의 값이 4를 확인 할 수 있죠.

이제 메소드를 불러볼까요?

메소드 사용하기

$변수명 = new 클래스명;
$변수명->메소드명();

메소드는 함수이기 때문에 메소드명 뒤에 꼭 ()를 붙여주세요. 안붙이면 프로퍼티로 인식해버립니다.

<?php
    class Car
    {
        public $wheels;
        public $doors = 4;
        protected $color = 4;
        private $size;
        private $company;

        public function run()
        {
            return "자동차가 달립니다.";
        }

        protected function stop()
        {
            return "자동차가 멈춥니다.";
        }

        protected function turn()
        {
            return "자동차가 회전합니다.";
        }
    }

    $honda = new Car;
    echo $honda->run();

?>

결과는 바로 아래에서 확인하겠습니다.

위 코드의 결과

접근제한자에 따라서 어디서 사용가능 한지 불가한지 알아야 더 학습효과가 높습니다.
이를 테스트 해볼게요 그럴려면 우선 상속을 알아야겠죠? 상속을 알아야 protected를 사용해 볼 수 있으니까요.
그럼 다음에는 상속에 대해서 알아보고 그 다음에 접근제한자를 테스트해봅시다.


봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.

컨텐츠의 내용을 더 보려면 바로 아래에서 확인할 수 있습니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준