Python & Ruby

객체 지향 프로그래밍

이번 영상은 길고 다소 어렵습니다. 충분한 시간을 확보한 후에 여유를 가지고 수업에 참여해주세요.

수업 소개

소스코드 (Ruby)

name1 = String.new('egoing')
name2 = String.new('k8805')
puts(name1.reverse())
puts(name2.reverse())
puts(name1.upcase())
puts(name1.size())
names = Array.new()
names.push('egoing')
names.push('k8805')
puts(names)
puts(names.join(','))

 ideone.com

 객체 지향 프로그래밍의 개념

 객체 지향 프로그래밍의 사례

 객체 지향 프로그래밍의 개념

 객체 지향 프로그래밍의 여러 사례

객체 지향 프로그래밍을 어떻게 공부해야 할까?

 

댓글

댓글 본문
작성자
비밀번호
  1. cruz6322
    깔끔한 정리 감사합니다.
    초보자가 복습하는데 많은 도움이 됩니다~~
    대화보기
    • 20190819 완료
    • 허니비
      190807
    • dongrami
      확실히 파이썬수업을 자바를 듣고와서 들으니 이해가 아주잘되네요.
      이고잉님께서 수업하신 자바수업에서 객체지향에대한 메커니즘이 잘 정리된거 같습니다.
      이해가 너무안되시는분들은 자바도한번 들어보시는걸 추천드림!
    • prezmo
      질문이 있습니다. 위 사례 부분에서 name1.reverse()로 name1에 저장된 문자열을 반대로 출력하는 것을 보여주셨는데 그것처럼 인스턴스에 .을 붙여 함수를 호출하는 것과 함수를 호출해 매개변수로 name1을 사용하는 것과 어떤 차이점이 있는지 궁금합니다. 둘 다 차이 없이 사용할 수 있는 건지 궁금해서 아톰으로 간단하게 아래와 같은 파이썬 코드로 확인해보니 차이점이 있는것 같더라고요
      1) num = '20'
      num.int()
      2) num = '20'
      int(num)
      1)번은 오류가 나고 2)번 만 제대로 실행이 되더라고요. 어떤 차이가 있는 건지 궁금합니다! 혹시 이게 내장함수 외장함수 차이인가요??
    • Ray Kim
      어.. 드디어 머리에 한계가.. 이럴 때일수록!!! 더 열심히 해야겠죠!
    • 김민수
      객체지향언어
      object orieted programing
      객체로 기본단위를 나눈 후 객체들의 상호작용으로 서술하는 방법

      object
      class+instance
      class:포유류
      instance:포유류에 속하는 것(사람, 개, 고양이)

      class의 복제 -> 인스턴스

      인스턴스는 class의 함수와 변수를 복제하여 가지고있다
      다만 인스턴스는 class에서 복제한 그대로가 아닌 각 인스턴스만의
      변수를 가진다.

      name = string.new("egoing")
      여기서 string 이란 class 의 개념
      string.new(메소드) 로 불러낸 인스턴스이다.

      클래스: 객체를 생성하기위해 객체들의 공통된 속성 특징들을 모아놓은 하나의 설계도
      내장함수: 프로그램 자체에 내장된 함수로써 바로 사용가능함 일반적으로 str()처럼 괄호가 있음.

      외장함수: 라이브러리에 존재하는 함수로써 호출하여 사용가능함 list.append()에서 list는 클래스
      append 부분이 외장함수로 볼수있다.

      메소드: 클래스내부에 구현된 함수를 메소드라고 한다

      인스턴스: 클래스의 속성을 지닌 객체(클래스를 통해 실제로 구현된 실체가 인스턴스)

      객체와는 달리 클래스와의 관계 (포유류에는 고양이가 있다=> class
      고양이는 포유류에 속한다 => 인스턴스) 위주로 설명한다.

      객체: 하나의 역할을 수행하는 메소드 또는 데이터의 묶음, 소프트웨어 세계에 구현될 대상(미구현)

      객체(Object)는 현실의 대상(Object)과 비슷하여,
      상태나 행동 등을 가지지만, 소프트웨어 관점에서는 그저 콘셉에 불과하다.
      소프트웨어에서 객체를 구현하기 위해서는 콘셉 이상으로 많은 것들을
      사고하여 구현해야 하므로, 이를 위한 설계도로 클래스를 작성한다.
      설계도를 바탕으로 객체를 소프트웨어에 실체화 하면 그것이 인스턴스(Instance)가 되고,
      이 과정을 인스턴스화(instantiation)라고 한다. 실체화된 인스턴스는 메모리에 할당된다.
    • 얼그레이
      절반쯤 온 기분이네요! 감사합니다 :) 190603
    • Sunday
      감사합니다.
    • hs4351
      190518완료 감사합니다
    • Hotak Choi
      190420
    • wiseman
      1904191330
    • 19.04.14 완료
    • 190412 1401
      완료. 감사합니다
    • 190404완료! 감사합니다
    • 호두
      고맙습니다.
    • 주니
      알듯 말듯...

      감사합니다..^^
    • 운림
      좋은 강의 감사합니다.
    • kmw8462
      감사합니다.
    • 김정석
      열심히 듣습니다. 감사합니다. ^^*!
    • yareuk
      2018-12-21
    • 닐반
      2018. 10. 13.
    • 김수
      done 20180906
    • 송형근
      감사합니다
    • 양디비
      2018-08-19 수강 완료! 언어에 대한 기초가 없어서 아직 전부 이해되진 않지만 .. 반복하면서 공부 하다 보면 언젠가 완벽하게 이해가 되는 날이 오겠지요!! ㅎㅎ 감사합니다~
    • 유닉스가이
      감사합니다 ^^
    • 해릭
      180715 감사합니다.
    • rcoding
      완료
    • rcoding
      수강중....
    • Ji Yeoun Park
      2018.6.30 감사합니다.
    • Junbeom Jeong
      6.24 완료했습니다
    • 정병찬
      2018 06 01
      수강완료
    • Jaeduk Jang
      완료했습니다. 감사합니다.
    • 대박
      8개월 고민을 하고, 들었습니다. 역시 시간이 스스로 해결해주는 건 아니였습니다. 본 영상이 해결을 해줘버리네요 ㅎㅎㅎ
    • simba
      완료
    • 박홍욱
      객체 지향 다시보기
      대략적으로는 이해가 가지만 아직 명확하게 이해가 가질 않네요.
      강의 계속 보면서 다시 이번 강의 보러 오겠습니다.
    • 달콤한인삼
      강의 감사합니다. 완벽하게 이해가 되지는 않았는데, 앞으로 몇번 더 학습하고 나면 개념이 잘 자리잡으리라 기대합니다.
    • user1jena
      객체 지향 부분이 어려워서 한참만에 다시 시작하네요. 좋은 강의 그리고 좋은 강사님 너무 고맙습니다!
    • 감사합니다
    • Heonjin Ha
      객체를 지향하지 않는 프로그래밍은 어떤 프로그래밍일까 생각해봤어요. 배우다 보면 해결이 될까요?
    • 다람쥐
      감사합니다
    • suavity92
      와.... 컴싸 전공중인데 아직도 클래스 개념이 명확하게 서지 않은 상태에서 OOP 수업들을 듣느라 힘들어서 방학 때 제대로 개념을 세우고자 듣고 있는데요 ㅠㅠ 한 번 듣는것만으로도 개념이 확실하게 서네요.. 너무나 좋은 강의 감사합니다..!!!
    • Jung
      워... 책으로 봤던 내용이 이제야 머릿속에 정리되네요 감사합니다.
    • 언어정복자
      조금은 이해 되네요..감사합니다
    • 성현아빠
      complete
    • 최우진
      한방에 정리됬습니다..
      정말 감사드립니다.
      대화보기
      • Duke
        Oct 25 2017
      • 개발자
        이유는 아주 간단합니다.

        이상한 설계도가 하나 있어요.
        시간당 속도 : 100km
        이동수단 : 바퀴
        언어사용여부 : 말 못함.
        얼굴여부 : 얼굴 없음.
        주요에너지원 : 기름

        머 이런게 있다고 치죠.
        딱 봐도 자동차네요.

        시간당 속도 : 6km
        이동수단 : 다리
        언어사용여부 : 한국어 사용.
        얼굴여부 : 얼굴 있음.
        주요에너지원 : 음식

        딱 봐도 사람이네요. 그 중 한국 사람.

        시간당 속도 : 10000km
        이동수단 : 날개
        언어사용여부 : 말 못함.
        얼굴여부 : 얼굴 없음.
        주요에너지원 : 기름

        비행기???

        이런식으로 설계도를 만들고 설계도 옆에 값을 넣으면 객체가 생성되요.
        그 객체는 설계도를 최대한 추상적으로 만들면 많은 것들로 변신할수 있구요.
        덜 추상적으로 만들면 조금만 변신할 수 있어요.

        덜 추상적으로 만들어볼께요.

        얼굴여부 : 있음.
        이동수단 : 날개
        다리 개수 : 2개
        에너지원 : 곤충

        새!!

        얼굴여부 : 없음.
        이동수단 : 날개
        다리 개수 : ????
        에너지원 : 기름

        비행기로 객체를 만드려니까 다리개수 때문에 ...멀 넣어야할지 모르겠네요. ㅎㅎ 이렇게 덜 추상적으로 만들면 표현할 수 있는 것들이 줄어들어요. ㅎㅎ
        대화보기
        • GoldPenguin
          완료했습니다.
        • 김태윤
          완료했어요
        버전 관리
        egoing
        현재 버전
        선택 버전
        graphittie 자세히 보기