객체지향 프로그래밍(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 |