4월7일 면접 당시 프로그래밍 관련으로 질문이 들어올 것이라고 예상은 했지만 언어 쪽은 전혀 상상도 못 했고, 너무 기초적인 질문이 들어왔음에도 나는 대답을 확실하게 할 수 없었다.
클래스와 메서드의 차이는 웹 프로그래머에겐 가장 기초적인 질문이지만 나같은 전기공학 엔지니어는 따로 언어를 공부하지 않는 이상 기초지식임에도 준비하지 못했다.
그러므로 이 글을 남기며 앞으로 잊지 않으려 한다.
클래스는 객체(인스턴트) 생성을 위한 설계도이고, 메서드는 클래스 내에 정의된 동작이다.
클래스에겐 속성(필드)와 동작(메서드)를 포함하고 있고, 객체는 이 클래스를 기반으로 생성되는데
내가 파이썬에서 클래스를 작성할때 가장 먼저 쓴 함수인 _init_으로 객체 속성을 설정해둔 것과 같다.
메서드는 생성한 객체(인스턴트)를 어떻게 동작 시킬건지에 대한 것이다.
이제 예시를 들면
class Car: 라는 클래스를 만들고
def _init_(self, name, year, distance) 함수로 자동차의 속성을 설정한다면
name = name.self
year = year.self
distance = distance.self
라고했을때
G1=Car("제네시스", 2025, 100000)으로
G1은 "제네시스"라는 이름의 2025년식 1만km 주행거리를 가진 객체(인스턴트)로 생성된다.
이제 이 G1 객체를 동작시키려면
class Car: 클래스 안에 선언한 메서드를 사용하면 된다.
메서드는 함수처럼 선언된다.
go(self, name)라는 메서드 선언으로
print(f"name.self 가 가속합니다.")
stop(self)라는 메서드 선언으로
print(f"name.self 가 감속합니다.")
이렇게 선언하면
G1.go 명령어로 G1는 "제네시스가 가속합니다."를 동작하고
G1.stop 명령어로 G1은 "제네시스가 감속합니다."를 동작 시킬수있다.
(예시는 간단하게)
즉, 요약하자면 클래스는 객체 생성을 위한 틀과 생성된 객체를 동작시키는 메서드를 포함한 것이고,
메서드는 객체를 동작시키는 것으로 형태는 함수와 비슷하게 생겼다.
나는 클래스를 이용하기보단 모듈로 넘어가버렸는데.... 초보 프로그래머는 클래스부터 완벽하게 다룰 줄 안 뒤에 모듈화를 공부하면 좋을거 같다.
아래는 전에 Python으로 클래스와 메서드를 학습했던 코드이다.
(공부해놓고 까먹은게 아깝다.)
'Programming > 프로그래밍언어 공부' 카테고리의 다른 글
[SQL] 기본 문법 (0) | 2025.04.30 |
---|---|
C++ 구성요소 및 용어 정리 (0) | 2025.04.14 |
클래스(class)와 구조체(struct)의 차이 (0) | 2025.04.13 |
접근지정자 private, protect, public 비교 (0) | 2025.04.13 |
[Python] 데이터분석 순서, pandas vs. numpy (0) | 2025.01.21 |