클래스(Classes)

✒️ 2025-05-15 13:13 내용 수정


객체

프로그램에서의 object : 고유한 속성 및 기능을 가지는 것. 프로그램적으로 구현이 가능하거나 구현 가치가 있는것


클래스

객체를 표현하기 위한 설명 양식이자, 객체 지향 프로그램의 기본적인 사용자 정의 데이터형

public class ClassName {
	// 속성 : 필드(Field)
	int field1;
	String field2;
	//********************
	// 생성자(Constructor)
	public ClassName() {
	}
	//********************
	// 기능 : 메서드(Method)
	public void method1() {
	}
}

1. 클래스의 구성

2. 클래스의 종류

  1. 실행용 : main() 처럼 실행을 담는 클래스
    • 다른 클래스에서 사용되지 않는다.(import X)
    • main class는 최대한 간결하게 작성하고, 다른 기능을 참고용 클래스에 작성하는 것이 좋다.
  2. 프레임워크 및 라이브러리 : Math, System, Arrays ... 처럼 기능 중심적 역할 클래스
  3. 객체 생성용 : 다른 클래스에서 사용할 목적으로 선언되는 클래스
  4. 데이터용 : 데이터를 저장하는 클래스

3. 클래스가 메모리에 올라가는 시점

  1. 객체를 생성했을 때
  2. static 변수의 호출 : 클래스 변수를 호출하면, 객체화하지 않아도 클래스가 호출된다.
  3. static 메서드 호출 : static 변수를 호출한 것과 같이 클래스가 로드된다.
  4. 내부 클래스의 호출 : 내부클래스의 객체를 생성하기 위해서는 외부 클래스의 객체를 먼저 생성해야 한다.

인스턴스

클래스로부터 객체를 선언하는 것 / 클래스의 객체화

ClassName instanceName = new ClassName();
// this.field 라고 쓰면 instanceName.field가 된다. 즉 자기 자신을 참조한다.
TFile* file = new TFile("파일이름", "옵션");
// TFile : 클래스 이름
// file : 인스턴스(TFile 클래스의 객체화)