분류 전체보기100 객체와 클래스4 이전 글에서 우리는 클래스로부터 생성한 인스턴스(객체)가 아니라 클래스 자체에 대해서도 메서드를 호출할 수 있었는데 어떻게 그게 가능한걸까? 이유는 간단하다. 클래스도 하나의 객체이기 때문이다!아래 그림을 보자. 우선 비어 있는 Person 클래스 하나를 만들고 그 Person 클래스의 객체를 하나 생성하여 변수 p 가 해당 객체를 참조하도록 하였다.그리고 변수 p 를 사용하여 Person 객체의 class 메서드를 호출하니 결과로 Person 클래스를 돌려 주었다.즉 class 메서드는 호출 대상 객체가 어느 클래스의 인스턴스(객체)인지를 알려주는 메서드이다.그렇다면 클래스도 하나의 객체라고 했으니 Person 클래스에 대해 class 메서드를 호출하면 어떤 결과가 나올까?그림에서 보이는 것처럼 Cla.. 2024. 7. 19. 객체와 클래스3 이전 글에서 Person 클래스에 to_s 메서드를 정의하기 전에도 Person 객체에 대해 to_s 메서드를 호출할 수 있었는데 어떻게 그게 가능한지 알아보자.아래 그림을 보면 p.methods (methods 라는 메서드 역시 Person 클래스에 정의하지 않은 것은 마찬가지다.) 를 실행하니 수많은 심볼들을 담은 배열 객체를 돌려주었다. 이것은 호출한 메서드 이름에서도 알 수 있듯이 Person 객체에 대해 호출할 수 있는 메서드들의 목록이다. 처음 몇 개는 낯익은 값들이 보인다. 우리가 직접 Person 클래스에 정의한 메서드들이다.>> require './person'=> true>> p = Person.new("홍길동", "010-1111-1111", "서울 특별시 강동구")>> p.metho.. 2024. 7. 18. 객체와 클래스2 지난번에 만들었던 Person 클래스를 가지고 조금 더 이야기를 해보자. 아래 Person 클래스 코드가 있다.class Person def initialize(name, phone, address) @name = name @phone = phone @address = address end def name @name end def phone @phone end def address @address end def phone=(phone) @phone = phone end def address=(address) @address = address end def info "#{name} / #{phone} / #{a.. 2024. 7. 17. 객체와 클래스1 오늘부터 몇 차례에 걸쳐 '객체' 와 '클래스' 에 대해 되도록 쉽게 설명을 해보려고 한다. 컴퓨터 프로그래밍에서 말하는 '객체' 는 속성(데이터)과 메서드를 포함하는 일종의 데이터 구조인데 '클래스'라는 것을 사용해 원하는 객체를 표현하고 그 '클래스'의 인스턴스(instance : 사례, 경우) 생성을 통해 실제 프로그램에서 사용할 수 있는 '객체'를 만들게 된다. h = Hash.new 위 코드는 Hash 클래스의 생성자 메서드(new)를 통해 인스턴스 하나를 생성하는 코드인데 이를 통해 생성된 인스턴스는 변수 h에 담기게 된다. 이후 코드에서는 h를 통해 방금 생성한 Hash 클래스의 인스턴스 즉, 해시 객체에 접근할 수 있게 된다. 조금 더 자세히 설명하면 실제 변수 h가 가지고 있는 것은 해시.. 2024. 7. 16. 이전 1 ··· 19 20 21 22 23 24 25 다음