객체와 클래스

조상원·2025년 8월 2일

JAVA

목록 보기
4/34

객체와 클래스

  • 객체 : 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성과 기능을 가지고 다른 것과 식별이 가능한 것.
  • 클래스 : 프로그램 상에서 사용되는 속성과 행위를 모아놓은 집합체
  • 설계도로 해당 객체를 만드는 작업이 필요
  • 클래스에는 객체를 생성하기 위한 필드와 매소드가 정의 되어 있음
  • 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스
    → 자동차 객체는 자동차 클래스의 인스턴스이다.

인스턴스

  • 클래스로부터 객체를 만드는 과정을 인스턴스화라고 함.
  • 하나의 클래스로부터 여러 개의 인스턴스(객체)를 만들 수 있음
  • 객체의 속성 → 필드를 통해 정의
  • 객체의 기능 → 메소드를 통해 정의
  • 클래스로부터 메모리에 생성된 객체 → 해당 클래스의 인스턴스
  • 서로 다른 인스턴스는 서로 다른 속성값을 가질 수 있다.

즉, 정리하자면
1. 객체는 프로그램에서 구현할 대상.
2. 이를 구현하기 위한 설계도가 클래스
3. 클래스로부터 메모리에 생성된 실체가 인스턴스

클래스 선언

public class Cat {
  // 필드, 생성자, 메소드 정의
  ...
}
  • 접근 제한자는 public, default 가능

<클래스 이름 작성 규칙>

  1. 하나 이상의 문자로 구성
  2. 첫번째 글자는 숫자가 올 수 없다
  3. $, _ 이외의 특수 문자는 사용할 수 없다
  4. 자바 키워드 사용불가

객체 생성

  • new 연산자 사용
클래스명 변수명 = new 클래스명();
  • new 연산자는 Heap 영역에 객체를 생성하고 객체의 주소값을 리턴
  • 객체의 주소값을 참조 타입인 변수에 저장해서 객체를 사용할 수 있음
// new 연산자와 클래스의 생성자를 사용해서 객체를 생성한다.
Cat cat = new Cat();

클래스 선언

public calss Cat{
}

클래스로부터 객체 생성

public class CatExample{
	public static void main(String[] args) {
		Cat c1 = new Cat();
		System.out.println("c1 변수가 Cat 객체를 참조");
		
		Cat c2 = new Cat();
		System.out.println("c2 변수가 또 다른 Cat 객체를 참조");
	}
}
  • Cat 클래스는 하나지만, new 연산자를 사용한 만큼 객체가 메모리에 생성
  • 이러한 객체들은 Cat 클래스의 인스턴스
  • 같은 클래스 Cat 에서 생성되었지만 c1, c2가 참조하는 Cat 객체들은 완전히 독립된 서로 다른 객체
  • Cat과 CatExample 클래스의 용도는 서로 다름

클래스의 용도 구분

1. 라이브러리 용도 (API)

  • 라이브러리 클래스는 다른 클래스에서 이용할 목적으로 설게
  • Cat 클래스가 라이브러리 클래스

→ Cat 클래스에 main() 메소드를 작성해서 라이브러리인 동시에 실행 클래스로 만들 수 있다

2. 실행 용도

  • 실행 클래스는 프로그램 실행 진입점인 main() 메소드를 제공하는 역할
  • CatExample 클래스

0개의 댓글