[Day 3 | Java] 객체

y♡ding·2024년 10월 16일
0

데브코스 TIL

목록 보기
7/163

👤 객체 (Object)

객체는 설계도(클래스)를 바탕으로 만들어진다. 자동차를 만들기 위해 설계도를 참고하듯, 메모리에서 사용하고 싶은 객체가 있다면 우선 해당 객체의 설계도를 만들어야 한다. 자바에서 이 설계도는 바로 클래스(Class)이다.

클래스에는 객체를 생성하기 위한 필드와 메서드가 정의되어 있다. 클래스로부터 만들어진 객체를 인스턴스(Instance)라고 부르며, 클래스로부터 객체를 만드는 과정인스턴스화(Instantiation)라고 한다. 하나의 클래스에서 여러 개의 인스턴스를 만들 수 있다.


🤙🏻 객체 지향 프로그래밍 개발의 세 가지 단계

  1. 클래스 설계: 먼저 클래스를 정의하여 객체의 설계를 완료한다.
  2. 객체 생성: 설계된 클래스를 바탕으로 객체를 만든다.
  3. 객체 사용: 생성된 객체를 활용하여 프로그램을 실행한다.

📣 클래스 선언

자바에서 클래스를 선언할 때, 클래스 이름과 소스 파일 이름은 반드시 일치해야 한다.

public class PersonMainEx01 {
    // 실행 클래스
    public static void main(String[] args) {
        // 변수 선언 및 초기화
        int a = 10;

        // 클래스 객체 생성
        Person p1 = new Person(); // 이순신
        Person p2 = new Person(); // 강감찬
        Person p3 = new Person(); // 박문수
    }
}

// 데이터 클래스
class Person {
    // 필드와 메서드 정의 (필요에 따라)
}

파일 이름과 동일한 클래스에만 public 접근 제한자를 사용할 수 있다. 파일 이름과 일치하지 않는 클래스에 public을 붙이면 컴파일 에러가 발생하므로, 하나의 파일에는 하나의 public 클래스를 선언하는 것이 좋다.


👥 객체 생성

자바에서 객체는 new 연산자를 통해 생성된다. new 연산자는 메모리 힙(Heap) 영역에 객체를 생성한 후 객체의 주소를 반환한다. 이 주소값을 변수에 저장하면 해당 변수가 객체를 참조하게 된다.

Person p1 = new Person();  // 객체 생성 및 참조

📌 메모리 구조

  • Stack: 객체의 참조값(주소)이 저장된다.
  • Heap: 실제 객체 데이터가 저장된다. 객체가 생성될 때마다 새로운 메모리 공간이 할당된다.
  • 참조 값stack에 저장되고, 실제 데이터heap에 저장된다. 그래서 객체의 참조값(주소)을 출력하면 객체의 실제 데이터가 아닌 메모리 주소를 확인할 수 있다.

☝🏻 객체의 독립성

각각의 new 연산자는 서로 다른 메모리 공간에 객체를 생성하므로, 생성된 객체들은 완전히 독립된 서로 다른 객체이다. 즉, 하나의 클래스에서 여러 인스턴스를 만들더라도, 각각의 인스턴스는 서로 다른 메모리 공간을 사용한다.


  1. 클래스는 객체의 설계도로서, 객체의 필드와 메서드를 정의한다.
  2. 객체new 연산자를 통해 힙 영역에 생성되며, 생성된 객체는 독립적인 메모리 공간을 갖는다.
  3. 참조 변수는 스택에 저장된 객체의 주소를 통해 힙에 있는 객체를 참조한다.

0개의 댓글

관련 채용 정보