클래스와 메서드

Eungae's avatar
Dec 21, 2025
클래스와 메서드
지난 클래스와 속성 포스팅에서 클래스를 다음과 같이 정리한 바 있다.
클래스 = 여러 속성메서드를 하나로 묶어서 만든 설계도
클래스라는 설계도에 의해 실제로 만들어진, 생성된 결과물 = 객체 = 인스턴스 = 실체
인스턴스가 가진 변수 (인스턴스 변수) = 필드
메서드에서 그 인스턴스를 가리키는 포인터 = this
상속 시 부모 초기화 = super가 담당
해당 포스팅에서 속성에 대해 알아보았다.
  • 인스턴스 변수 (객체 변수)
  • 지역 변수 (로컬 변수)
  • 정적 변수 (클래스 변수)
이번에는 메서드에 대해 공부해보자.
 

메서드 (Method)

객체의 동작을 정의하는 함수
속성을 변경하거나 객체를 가지고 특정 작업을 수행
 

함수와 메서드의 차이

  • 메서드: 클래스에 의존함
  • 함수: 클래스에 의존하지 않음
void function() { print("저는 함수입니다"); } class Class { void method() { print("저는 메서드입니다"); } } void main() { function(); // 저는 함수입니다. Class object = Class(); object.method(); // 저는 메서드입니다. }

메서드의 종류

인스턴스 메서드 (Instance Method)

객체에 속해 있는 메서드
class Dakehiko { static String author = "이노우에 다케히코"; String? title; Dakehiko(this.title); void animeRecommend() { print("대표작: $title"); // } } void main() { Dakehiko slamDunk = Dakehiko("슬램덩크"); slamDunk.animeRecommend(); // 대표작: 슬램덩크 Dakehiko vagaBond = Dakehiko("배가본드"); vagaBond.animeRecommend(); // 대표작: 배가본드 print(Dakehiko.author); // 이노우에 다케히코 }

정적 메서드 (Static Method)

클래스에 속해 있는 메서드
class Dakehiko { static String author = "이노우에 다케히코"; //클래스에 종속된 정적 변수 String? title; // 인스턴스 변수 Dakehiko(this.title); // 생성자 void animeRecommend() { print("대표작: $title"); // 인스턴스를 통해 호출되는 인스턴스 메서드 } static void greatAuthor() { print("위대한 작가 $author"); // 클래스 이름으로 호출되는 정적 메서드 } } void main() { Dakehiko slamDunk = Dakehiko("슬램덩크"); slamDunk .animeRecommend(); // slamDunk는 인스턴스, "슬램덩크"는 인스턴스 변수의 값, animeRecommend는 인스턴스 메서드. Dakehiko vagaBond = Dakehiko("배가본드"); vagaBond .animeRecommend(); // vagaBond는 인스턴스, "배가본드"는 인스턴스 변수의 값, animeRocommend는 인스턴스 메서드. print(Dakehiko.author); // 이건 클래스의 속성 Dakehiko.greatAuthor(); // greatAuthor는 정적 메서드, 클래스를 통해 호출 가능. }
  • 객체를 통해 호출할 수 없음 = this를 통해 호출할 수 없음
  • 코드 블록에서 인스턴스 변수를 사용할 수 없음.
 
Share article

나새끼메이커