Study

객체지향 프로그래밍 개념 이해

cucu0417 2025. 6. 5. 00:52

객체지향 프로그래밍(OOP) : 필요한 데이터들을 추상화시킨 뒤 특정한 상태와 행위를 가지는 객체를 만들고

그 객체들 간의 유기적인 상호 작용을 통해 모든 로직을 구성하도록 하는 프로그래밍 기법

 

 

OOP가 포함한 개념

클래스(Class) 

객체를 만들기 위한 설계도 또는 틀

 

 

객체(Object)

소프트웨어에 구현할 대상

속성과 기능으로 구성

(속성은 변수로, 기능은 메서드로 정의)

 

 

프로퍼티(Property, 속성)

객체 상태를 나타내는 변수

 

 

메서드(Method,기능)

클래스 내의 함수

특정 작업이나 연산을 수행하기 위한 명령문의 집합

- 클래스 메서드

 (메소드 앞에 static 붙음)

 인스턴스 변수나 인스턴스 메서드 사용하지 않는 메서드

- 인스턴스 메서드

 (메소드 앞에 static 없음)

 인스턴스 변수를 필요로 하는 메서드

 

 

인스턴스(Instance) 

소프웨어에 구현된 실체

- 인스턴스의 생성

$ 객체 변수 = new 클래스();

 

인스턴스화

설계도를 바탕으로 객체를 소프트웨어에 실체화하는 과정

클래스로부터 인스턴스를 생성하는 것

(객체를 실체화하면 인스턴스가 됨)

 

 

객체와 인스턴스의 차이점

객체 : 클래스의 의해 생선되는 concept

인스턴스 : 객체를 소프트웨어에 구체적으로 실체화 한 것

--> 인스턴스는 객체에 포함

 

 

 

 

예시 1)

 

접근 제어자 : 속성과 메서드의 접근을 제한하는 키워드

접근 제어자 설명
public 어디서든 접근 가능
protected 해당 클래스와 상속받은 클래스에서만 접근 가능
private  클래스 내부에서만 접근 가능

 

public $name;

public $color;

-> 속성을 정의

 

 

function set_name($name1) {

      $this -> name = $name1;

}

-> function으로 set_name이라는 이름의 메서드를 정의한다

     $this -> name 은 위에 정의된 public $name;에서 $name을 가리키고

     $name1이라는 변수에 저장을 한다

 

 

function get_name() {

      return $this -> name;

-> get_name이라는 이름의 메서드를 정의하고

    return으로 $name(=$this -> name)의 값을 반환한다

 

 

이렇게 Class 정의를 마쳤다.

 

 

$apple = new Fruit();

$banana = new Fruit();

-> 인스턴스 생성

 

 

$apple -> set_name('Apple');

$banana -> set_name('Banana');

-> 메서드를 호출하여 인스턴트의 이름을 지정

    1. 'Apple'은 8번째 줄에 $name1에 저장

    2. $this -> name = $name1을 통해 $this -> name에 저장

    3. public $name;의 $name에 저장

 

 

값도 저장했고 이제 출력을 할 차례이다.

 

 

echo $apple -> get_name();

echo "<br>";

echo $banana -> get_name();

-> return 메서드를 불러와 각각의 이름('Apple', 'banana')르 출력

 

 

++

메서드 안에 멤버 변수에 접근

$this -> 변수

 

 

 

 

 

예시 2)

 

function __construct ($name,$age) {

        $this -> name = $name;

        $this -> age = $age;

}

-> 만약 메서드를 하나로 묶고 싶다면 사용자 메서드(__contruct)를 이용하면 된다

 

 

echo "안녕 나는 {$A -> name}이야";

-> 속성이 public이면 return을 쓰지 않고 바로 멤버 변수에 접근이 가능하다

 

출력값

'Study' 카테고리의 다른 글

JS 기본 문법  (3) 2025.07.21
Port (Telnet, SSH, FTP, SFTP)  (0) 2025.05.17