Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- BASIC
- JavaScript
- server
- 종만북
- 정수론
- Algorithm
- greedy
- Cleancode
- sorting
- DP
- Python
- 따라하면서 배우는 C언어
- web
- graph
- dfs
- String
- programmers
- BFS
- C
- BOJ
- udemy
- 생활코딩
- C언어
- 따배씨
- 백준
- Algospot
- 따라하며 배우는 C언어
- 인프런
- Math
- php
Archives
- Today
- Total
몽상실현개발주의
[생활코딩] 17.8 상속 기본 (inheritance) 본문
생활코딩 php 강좌
17. PHP의 객체 지향 프로그래밍
17.8 상속 기본 (inheritance)
- 상속의 장점
- 중복된 코드 제거
- 재사용성
- 가독성
- 상속
- Original Object 인 Parent (부모) Object 의 Method 의 기능을 상속 받아 새로운 객체를 만들 수 있음
- 상속받은 객체: Child Object
- Child Object는 Parent Object 에 영향을 주지 않고 새로운 Method 를 추가 가능
- Standard PHP Library 의 File Handling 객체 세 가지
- SplFileInfo Class
- 파일의 정보를 알려주는 Class
- SplFileObejct Class: SplFileInfo Class 의 Child Object
- SplFileInfo Class 를 상속 받음
- File R/W Method 기능을 가지고 있음
- SplTempFileObejct: SplFILEObejct 의 Child Object
- SplFileObject Class 를 상속 받음
- SplFileInfo Class
<?php
class Animal{
function run(){
print('running..<br/>');
}
function breathe(){
print('breating...<br/>');
}
}
class Human extends Animal{
// function run(){
// print('running...<br/>');
// }
// function breathe(){
// print('breating...<br/>');
// }
function think(){
print('thinking...<br/>');
}
function talk(){
print('talking...<br/>');
}
}
$human = new Human();
$human->run();
$human->think();
?>
// running..
// thinking...
- Human Object 는 Animal 을 상속받음
- Animal 에 정의된 run method 와 breate method 를 사용 가능
<?php
$file = new SplFileObject('lorem.txt');
var_dump($file->fread($file->getSize()));
// file 을 읽으면서 cursor 가 file 의 끝으로 이동
$file->rewind();
// cursor 를 file 의 처음으로 이동
var_dump($file->fread($file->getSize()));
?>
- SplFileObject 의 fread() method 는 cursor의 위치에서 부터 file 을 읽음
- 한번 동작후 cursor 의 위치를 파일의 앞으로 돌려 놓지 않으면, cursor 가 file 의 마지막에 위치함으로 읽을 내용이 없는 상태가 됨
- rewind() : cursor 를 file 의 처음으로 이동
<?php
class MyFileObject extends SplFileObject{
function getContents(){
$content = $this->fread($this->getSize());
$this->rewind();
return $content;
}
}
$myFile = new MyFileObject('lorem.txt');
var_dump($myFile->getContents());
var_dump($myFile->getContents());
?>
- SplFileObject 를 상속받은 새로운 객체 정의
- rewind() 기능과 함께 동작하는 getContents Method 를 추가
이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.
'Language > php' 카테고리의 다른 글
[생활코딩] 17.10 클래스 로딩 (0) | 2021.06.08 |
---|---|
[생활코딩] 17.9 클래스 멤버 만들기 (static) (0) | 2021.06.08 |
[생활코딩] 17.7 접근 제어자 (access modifier) (0) | 2021.06.06 |
[생활코딩] 17.6 생성자 (인스턴스 초기화) (0) | 2021.06.06 |
[생활코딩] 17.4 클래스와 인스턴스 그리고 메소드 만들기 ~ 17.5 인스턴스 변수 만들기 (0) | 2021.06.06 |
Comments