섹션 7. Ruby On Rails 웹개발 - 3. Ruby의 클래스
- 절차지향의 단점 : 협업이 힘들고 유지보수가 힘들다.
2) 객체지향
- 객체지향 : 모듈을 만들어서 재사용하는 방식 ex) Java, Ruby
- Object Oriented Programming
- 클래스 : 부품 설계도
- 인스턴스(객체) : 실제 부품 (실제 메모리에 상주)
- 클래스를 통해 객체를 만드는 방식을 객체지향방식이라고 한다.
3) 객체지향의 특징
- 캡슐화 : 공통분모를 모아서 분류하여 하나의 클래스라는 개념을 만든다.
- 은닉화 : 내부를 공개하지 않는다.
- 상속 : 기존 캡슐화된 속성을 상속받고 내가 원하는 속성을 추가로 구현(Overriding)한다.
- 다형성 : 하나의 함수인데 들어가는 매개변수에 따라서 다른 결과가 나오도록 수행하게 하는 것을 Overloading이라고 한다.
4) Ruby 클래스 실습
1 2 3 4 5 6 7 8 9 10 11 12 | class Car def initialize() @name = 'pong' end def print() puts @name end end car = Car.new() car.print() | cs |
- (줄 2) : initialize()는 이 클래스가 실제로 객체화될 때 자동으로 실행되는 메소드이다.
- (줄 11) : Car형 객체 car를 생성
- (줄 12) : car 출력.
>> 출력결과 : pong
: initialize() 메소드를 호출하지 않았지만 메소드가 자동으로 실행되었다.
5) 변수
- name : 지역변수, 하나의 scope 안에서만 재사용할 수 있다.
- @name : 인스턴스변수, 한 번 선언을 하면 그 클래스 안에서 계속 재사용할 수 있다.
- $name : 전역변수
6) 은닉화, getter, setter
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 | class HelloWorld def initialize(lang) if lang == 'KR' @welcome = '안녕!' else @welcome = 'Hello!' end end def hello() puts @welcome end def setWelcome(welcome) @welcome = welcome end def getWelcome() return @welcome end end hello = Helloworld.new('KR') hello.hello() hello.getWelcome() hello2 = Helloworld.new('EN') hello2.hello() | cs |
- (줄 21) 실행결과 : 안녕!
- (줄 22) 실행결과 : 안녕!
- (줄 25) 실행결과 : Hello!
7) Overriding, 상속
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 | class HelloWorld def initialize(lang) if lang == 'KR' @welcome = '안녕!' else @welcome = 'Hello!' end end def hello() puts @welcome end def setWelcome(welcome) @welcome = welcome end def getWelcome() return @welcome end end class ExHelloworld < Helloworld def initialize(lang) if lang == 'CN' @welcome = 'Nihao!' elsif lang == 'JP' @welcome = 'Ohayo!' else super(lang) end end end | cs |
- (줄 20~30) Helloworld 클래스를 상속하는 ExHelloworld 클래스를 생성한 것이다.
- (줄 27) super() : 클래스에 속성에서 기본적으로 존재하는 메소드이며 initialize 함수의 원본을 호출해주는 것이다.
'STUDY > Fullstack-Bootcamp' 카테고리의 다른 글
[풀스택 부트캠프] 섹션 7. Ruby On Rails 웹개발 - 5. 웹 서비스 모델링(MVC) (0) | 2018.02.23 |
---|---|
[풀스택 부트캠프] 섹션 7. Ruby On Rails 웹개발 - 4. Rails 시작하기 (0) | 2018.02.10 |
[풀스택 부트캠프] 섹션 7. Ruby On Rails 웹개발 - 2. Ruby의 코딩 실습 (0) | 2018.02.09 |
[풀스택 부트캠프] 섹션 7. Ruby On Rails 웹개발 - 1. Ruby의 소개 (0) | 2018.02.08 |
[풀스택 부트캠프] 섹션 6. jQuery 사용하기 (0) | 2018.02.06 |