클래스와 객체, 인스턴스의 차이가 뭔가요?

Поділитися
Вставка
  • Опубліковано 3 лют 2025

КОМЕНТАРІ • 34

  • @vvip_
    @vvip_ Рік тому +1

    와 비전문가가 듣기에도 어설프게 나마 개념이 잡히는 설명입니다. 최고네요!!! 종종찾아뵙겠습니다

  • @demian66
    @demian66 Рік тому +7

    선생님 이런 영상이 필요 할 거 같아요
    1.압도적인 실력자가 되어 대기업 취뽀 해버리는 방법 =>이미 만들어 주셨으니까 상관없으려나요
    2.노력은 많이 했지만 이제 현실과 타협해서 적당히 좋은 기업 가서 이직을 잘 하는 방법

  • @stockman7027
    @stockman7027 Рік тому +3

    마침 딱 부트캠프에서 이부분 배우고있는데 좋은 내용감사합니다.

  • @whoisywow4594
    @whoisywow4594 Рік тому +2

    클래스, 객체, 인스턴스 영어권 단어라서 의미를 헷갈립니다.
    객체는 개념적인 의미이고 클래스를 객체라고 하기도 하고 인스턴스를 객체라고 하기도 합니다.
    클래스는 객체를 기술한 설계도 같은거고, 클래스가 틀이라고 하면 틀도 실체가 있는 객체가 되는 거니.. 더 이해하기 힘듭니다.
    인스턴스는 메모리에 적재된 객체라고 봅니다.
    인간은 항상 현실 세상의 사물과 현상에 대한 존재를 파악하려고 했고 그게 철학이나 물리학, 수학 등으로 나타나고
    현실 세상의 사물을 컴퓨터세상에 표현하기 위해 코드로 나타내는 방법으로 객체지향이란 패러다임을 만든거임.
    그러다보니 객체지향이 철학이나 수학, 물리학등과 비슷하다 볼 수 있죠..

    • @NameNo-zg4qu
      @NameNo-zg4qu 9 місяців тому +1

      저도 이렇게 생각하고 현업에 종사하고 있고 함수도 클래스도 변수도 모두 object(객체)라고 보고 있고 그래서 OOP란 표현이 널리 쓰이는데 객체를 마치 클래스가 선언한 변수라고 단정지어버리니 순간 당황했네요. 아마 초보자들을 상대로 뭔가 쉽게 와닿게하기 위해서 이렇게 설명한게 아닌가 싶긴한데 아리송하군요

  • @khk-h1z
    @khk-h1z Рік тому +1

    안녕하시렵니까~!? 유익한 영상 감사합니다 큰돌햄!

  • @yoonseog10jotgga
    @yoonseog10jotgga Рік тому +3

    면접에서 객체와 인스턴스의 차이점에 대해 묻는다면,
    클래스화 객체는 참조형 변수로 스택영역에 할당된 공간을 갖고있고, 인스턴스는 힙영역에 실제값이 있으며 그 실제값의 주소값이 스택영역의 변수에 대입된 것으로 그 변수를 통해 실제 인스턴스에 접근할 수 있습니다.
    라고 하면 될까요?

    • @xxxyyyzzz612
      @xxxyyyzzz612 Рік тому +1

      C 언어기준(구조체)으로 말하자면, 객체나 인스턴스(Assignment)나 둘다 스택영역에 있을 것 같은데요! 근데, 전 자바를 배우지 않아서, public이 무슨 뜻인지 모르는데... public이 다른언어에서 global를 뜻하는것이라면, 객체는 data영역에 있을 것 같고, 인스턴스된 변수는 스택영역에 있고요!

    • @yoonseog10jotgga
      @yoonseog10jotgga Рік тому

      @@xxxyyyzzz612 오호.. 저는 자바만 봐서 C는 그런지 몰랐네요. 흥미롭네요

    • @xxxyyyzzz612
      @xxxyyyzzz612 Рік тому

      @@yoonseog10jotgga 방금 자바의 public 뭔지 확인했네요! public 만 global 개념이고, 다른 것들(default, private, protected)은 패키지 기준이네요! 그럼, 제 말이 맞아요! public 객체는 데이타 영역에 있고, 인스턴스되었을때는 스택영역에 있습니다. 혹시나 해서, chatGPT로도 확인했어요! C 언어의 구조체 개념에서 자바나 파이썬의 클래스의 개념이 나왔어요! 개념이나 메모리 영역에서 어떤 부분에 할당되는지는 똑같다라고 보네요!

    • @yoonseog10jotgga
      @yoonseog10jotgga Рік тому

      @@xxxyyyzzz612 C에서 일반적인 구조체는 스택이고, 동적으로 할당된 구조체 인스턴스는 힙 영역에 저장되는 걸로 알고 있어요. 이 개념을 따와서 자바에서는 참조변수의 인스턴스가 힙 영역에 저장되구요.

    • @xxxyyyzzz612
      @xxxyyyzzz612 Рік тому

      @@yoonseog10jotgga 남들이 다 그렇게 얘기하는데요! 제가 생각하는 메모리영역과 데이타와의 관계에서는 꼭 그렇지않아요! C 구조체도 메인함수 위에서 선언을 하면, 해당 구조체가 당연히 global영역에 속해서 데이타영역으로 가죠! 그리고, 동적할당된 구조체는 malloc()함수를 써야되는데요! malloc()을 안 쓰면, 즉 사전에 해당 변수의 바이트수를 정해주지 않으면, 그건 동적할당 아니예요! 그냥 주소값만 쓰는 것이지! 포인터죠! 즉, 주소값을 쓴다라고 무조건 다 힙 영역에 들어가지 않아요! 이런 제 이해가 맞는지, 자바에도 똑같이 적용되는지 궁금해서, chatGPTA에 자바의 경우 어떻게 되냐라고 몇가지를 물어봤는데... 예를 들면, In Java, public variable is in data area or in stack area? 라고 물어보았는데, chatGPT가 데이타영역에 들어간다라고 답했는데요. 님도 한번 chatGPT에 물어보세요!

  • @권종범-f5d
    @권종범-f5d Рік тому

    개념의 구현이 클래스, 개념에 속하는 어떤 것이 인스턴스. 저는 이렇게 이해하고 있습니다.

  • @PP-yr9fy
    @PP-yr9fy Рік тому

    뭐지 왜이렇게 이해가 잘되지..?

  • @greenjake44
    @greenjake44 7 місяців тому

    와 진짜 쉽게 설명해주신다

  • @김이온-x4x
    @김이온-x4x 8 місяців тому +1

    5:31 public person() 이것도 메서드라 할 수 있나요?

    • @cheolcbc4003
      @cheolcbc4003 2 місяці тому

      생성자는 메서드와 다릅니다.
      ; 객체 초기화를 위한 특수한 멤버(특수 메서드)
      - 반환 타입이 없음
      - 객체 초기화를 목적
      - 호출 방식이 일반 메서드와 다름
      - 객체 생성시 자동 호출
      - 생성자를 작성하지 않으면,
      => 컴파일러가 자동으로 파라미터 없는 기본 생성자 작성
      - 메서드는 클래스의 동작을 정의하지만,
      => 생성자는 객체의 생명 주기와 밀접하게 연관됨.

  • @xxxyyyzzz612
    @xxxyyyzzz612 Рік тому +1

    자바를 안 배워서... 자바에서 public은 global variable 이라는 것을 뜻하나요? 그런 것 같은 느낌인데...

    • @xxxyyyzzz612
      @xxxyyyzzz612 Рік тому

      방금 다른 동영상 보고 확인했네요! *^^ public 만 global 개념이고, 다른 것들(default, private, protected)은 패키지 기준이네요!

  • @jeong-ahyoon9077
    @jeong-ahyoon9077 Рік тому +1

    인프런강의 10주완성 수강하려고 하는데요.. 별도 질문하는 곳이 없어 여기 여쭤보네요 혹시 부스트 라이브러리 이용해서 강의하시나요? 부스트 라이브러리로 알고리듬 같이 공부해야해서 여쭤봅니다

    • @kundol
      @kundol  Рік тому

      부스트 라이브러리 사용하지 않습니다.

  • @_butitsreversed9870
    @_butitsreversed9870 Рік тому

    아 오늘은 안넝하시렵니까 없네

  • @cheolcbc4003
    @cheolcbc4003 2 місяці тому

    우연히 지나가다 남겨봅니다.
    1) 클래스(Class)
    ; 객체를 생성하기 위한 템플릿
    public class Car
    {
    public string Brand { get; set; }
    public string Model { get; set; }
    public void Drive()
    {
    Console.WriteLine("굴러가네...");
    }
    }
    public class House
    {
    ...
    }
    2) 객체(Object)
    ; 클래스를 기반으로 메모리에 로드된 실체
    Car myCar = new Car(); // myCar 객체 생성
    myCar.Drive(); // myCar 인스턴스(객체)의 Drive 메서드 호출
    Car yourCar = new Car(); // yourCar 객체 생성
    House myHouse = new House(); // myHouse 객체 생성
    3) 인스턴스(Instance)
    ; 특정 클래스에서 만들어졌다는 것을 강조해서 객체를 표현할 때 사용
    myCar는 Car 클래스의 인스턴스(객체)
    yourCar는 Car 클래스의 인스턴스(객체)
    myHouse는 House 클래스의 인스턴스(객체)
    4) static 클래스
    ; 객체화할 수 없는 전역적으로 공유되는 클래스
    // static 클래스 구현과 동시에 메모리에 로드되어 전역적으로 사용
    public static class Car
    {
    // 모든 멤버도 static 이어야 함
    public static string Brand { get; set; }
    public static string Model { get; set; }
    public static void Drive()
    {
    Console.WriteLine("굴러가네...");
    }
    }
    Car.Drive(); // static Car 클래스의 Drive 메서드 호출

  • @IiIiiiiiIiiiiiIIIIIIII11
    @IiIiiiiiIiiiiiIIIIIIII11 Рік тому

    태석님 감사합니다.

  • @astrosn
    @astrosn Рік тому

    클래스=포켓몬
    객체=피카츄
    인스턴스=실제 게임에서 쓸 수 있는 피카츄
    맞나요?

    • @kundol
      @kundol  Рік тому +1

      게임에서 동작되는 피카추 = 인스턴스용

    • @osung5968
      @osung5968 Рік тому +1

      포켓몬과 피카추는 상속에 조금 더 가깝지 않을까요?

    • @astrosn
      @astrosn Рік тому

      @@kundol 그렇군요!

    • @kundol
      @kundol  Рік тому

      음 좀더 정확하게 한분께서 말씀해주셨는데 포켓몬 하위 클래스의 피카추 클래스가 있구요 그 클래스로 부터~~ 만들어지는 객체가 피카츄가 될 거 같아요

  • @returnfly628
    @returnfly628 4 місяці тому

    좋은 영상은 개추긴 하지만 실제로 객체와 인스턴스는 거의 구분 없이 사용하지 않나