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. 박원규
    반드시 인스턴스가 클래스의 하위개념일 필요는 없습니다.

    다만, 그런 경우가 많습니다.

    만약 고양이 캐릭터를 구현하고 싶을 때,

    성질이 비슷한 포유류 클래스로 인스턴스를 생성해서

    그 안에 있는 method를 활용해서 고양이를 구현한다고 할 수 있습니다.

    개를 구현하고 싶을 때에도 포유류 클래스로 인트턴스를 생성해서

    그 안에 있는 method를 활용해서 구현하면 됩니다.

    복제한다고 표현한 것이 이런 뜻인 것 같습니다.
    대화보기
    • seeong2
      omg...
    • 문돌이
      object라 함은 class + instance 즉, class(기본 골격 = 분류 항목이라 생각됨)과 instance라는 각 object마다 다른 변수 값을 가지는 두 가지 요소가 합쳐지며 하나의 객체를 만든다.

      class의 경우, 각 object의 기본 골격을 형성하며 대분류 역할을 수해한다. (즉, 담는 그릇)
      instance의 경우, 각 object의 중분류 혹은 소분류 역할을 수행한다. (즉, 내용물)

      함수라 함은 각 단어에 정의를 내림으로써 하나의 동작을 하게 하는 명령어 같은 역할을 수행한다.

      잘 이해했는지는 모르겠지만, 앞으로 더 익숙해지고 잘 알고 활용할 수 있도록 노력하겠습니다.
      좋은 강의 잘 들었습니다.
    • 2017.1.10 완료!
      수업 잘 들었습니다 감사합니다.
    • blackswan
      고맙습니다!
    • 폭스킴
      클래스는 추상적이고 개념적입니다.
      인스턴스는 실제적이고, 구체적입니다.
      실제로 스케치북에다 그림을 그려봅시다.
      포유류를 그려보세요~ 그릴 수 있습니까?
      개나 고양이를 그려보세요~ secret 님이 생각하는 개나 고양이를 그릴 수 있습니다.
      이렇게 표현하면 어떨까 합니다.
      인스턴스는 실제적인 정보(데이터값)으로 구체화된 클래스이다.
      대화보기
      • secret
        설명중에 클래스를 포유류에 비유하셨고
        인스턴스는 포유류에 속하는 사람,고양이,개라고 비유하셨는데
        이 후에는 클래스를 복제한것이 인스턴스라고 하셔서
        개념을 잡는데 이해가 잘안갑니다..
        포유류는 상위개념인데 복제하면 왜
        하위개념인 사람,고양이,개가 되죠?
      • 이현정
        감사합니다
      • 환글
        object = class + instance
        class는 설계도, instance는 설계로 실제 사례를 만들어 시간과 공간속에 구현 (메모리 할당)해서 실행될 수 있도록 한 것 이런 개념으로 생각해 봤습니다. 음 ~~ 이걸 동양의 관점에서 본다면 class는 정보를 담고 있는 일종의 天 [천]의 개념이고 instance는 이를 실행하는 地 [지]의 개념인것 같습니다. 이렇게 둘을 분리하면 필요한 것들의 설계도를 가지고 그때 그때 가져다가 만들어 쓸 수 있는 강점이 있는 것 같습니다.
      • JustStudy
        고맙습니다
      • Alteisen
        객체지향이라는 것이 아직 뜬구름 잡기처럼 잘 모르겠네요.
        프로그래밍이라는 것 자체가 생소하다보니, 아무래도 이해하는데 오랜 시간이 걸리는거 같습니다.
        늦은 나이에 시작을 했지만.. 모르는게 너무 많다보니.. 이해를 하려면 계속 반복해서 볼 수밖에 없네요..
      • ironboy
        감사해요^^
        대화보기
        • 잠심일년
          두번째 객체지향 동영상을 보고있습니다. 한번 봤을때는 감을 잡았는데 다시한번 보니 더욱 개념 잡기에 좋은 동영상이라고 생각합니다.
        • 쮸쮸바
          수고 하셨습니다.
          재미있게 잘 따라 하고 있습니다.
        • 천하제일프로그래머
          쉽게 설명할수 없다면 제대로 아는게 아니다 .. 라고 파인만(?) 이 말했는데
          쉬운 설명에 탄복합니다.
          많은 도움이 되고 있어요. 꼭 완주 하겠습니다.
          프로그래밍 배우다가 어려워서 관둔 과거가 있어서
          이 수업 정말 좋아요.
        • 검사무운
          잘 봤습니다. 감사합니다.
          설명하시는 instance 개념이 3D 프로그램의 것과 비슷해서
          이해하는데 어려움은 없었습니다.
          제일 어렵다고 하시는 개념이 제일 쉬웠던것 같네요.
        • Jaeyoon Kim
          혹시 객체, 클래스, 인스턴스의 개념에 대해 보충설명이 필요하신 분은
          이 글을 참고하시면 좋을 것 같아요!

          어린시절 뽑기를 해 본적이 있다면 아래 그림과 비슷한 모양의 뽑기 틀을 본적이 있을 것이다. 뽑기 아저씨가 뽑기를 불에 달군 후 평평한 바닥에 "탁"하고 소리나게 떨어뜨려 넙적하고 동그랗게 만든후에 아래와 비슷한 틀로 모양을 찍어준다. 찍어준 모양대로 깨뜨리지 않고 만들어 오면 아저씨는 뽑기 한개를 더 해 주었다.

          이곳에서 설명할 클래스라는 것이 마치 위 뽑기의 틀(별모양, 하트모양)과 비슷하다. 별 모양의 틀(클래스)로 찍으면 별모양의 뽑기(인스턴스)가 생성되고 하트 모양의 틀(클래스)로 찍으면 하트모양의 뽑기(인스턴스)가 나오는 것이다.

          클래스란 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계도면 같은 것이고(뽑기 틀), 인스턴스란 클래스에 의해서 만들어진 피조물(별 또는 하트가 찍혀진 뽑기)을 뜻하는 것이다.

          ※ [참고] 객체와 인스턴스의 차이

          클래스에 의해서 만들어진 객체를 인스턴스라고도 한다. 그렇다면 객체와 인스턴스의 차이는 무엇일까? 이렇게 생각 해 보자. cat = Animal() 이렇게 만들어진 cat은 객체이다. 그리고 cat이라는 객체는 Animal의 인스턴스(instance)이다. 즉 인스턴스라는 말은 특정 객체(cat)가 어떤 클래스(Animal)의 객체인지를 관계위주로 설명할 때 사용된다. 즉, "cat은 인스턴스" 보다는 "cat은 객체"라는 표현이 "cat은 Animal의 객체" 보다는 "cat은 Animal의 인스턴스" 라는 표현이 훨씬 잘 어울린다.

          원문 : https://wikidocs.net/28
        • Jaeyoon Kim
          오랜만에 뭔가를 내가 이해하고 있구나 하고 느끼고 있습니다. 감사합니다.
        • 감사합니다^^
        • Doh_Oon Park
          강의 4. 개념에서 "굉장히 중요합니다"이 한마디 덕분에 좌르르 풀렸습니다. 뜬구름 잡다가 그게 핵심인 줄 이제야 알게 되었습니다.
        • Doh_Oon Park
          이 동영상으로 객체지향에 대한 의문이 많이 풀리네요. 많은 시간을 들였고 책도 보았는데 이영상으로 막연한 것이 좀 정리가 되면서 와닿습니다. OOP는 왜 굳이 인스턴스라는 방법을 사용 하는가? 그 인스턴스를 어떻게 담으려고 딸린식구까지 메모리에 끌어올리는 수고를 하는가? 객체지향에 왜 '메모리'를 자꾸 언급하는ㄱ? 생각해 왔는데 덕분에 개념이 약간 이해 되니까 조금씩 풀리는 느낌이 듭니다. 감사합니다.
        • JunTaek Hong
          쉬운 설명 감사합니다.
        • hana21i
          감사합니다
        • Frank
          고생하셨습니다.
          한걸음 한걸음 배우고 있습니다.
          아직 걸음마도 못땐 수준인데, 열심히 배우겠습니다.^^
        버전 관리
        egoing
        현재 버전
        선택 버전
        graphittie 자세히 보기