Java/[inflearn] 자바 기본

[김영한_자바기본][1.클래스와 데이터] 클래스 도입, 객체 이해하기(인스턴스) (p.15-23)

줌인. 2024. 1. 24. 17:11

 

Class는 설계도로, 객체(인스턴스)는 설계도를 구현한 설계툴로 보자
정보 참조는 설계툴을 통해 이루어지며, 입력 전까지는 설계툴에는 원본(설계도면) 위치만 뜬다.

 

 

 

 

[코드 읽기 전, 이해 도모를 위한 예시]

1. Class == 설계도
   └─ Student 클래스 선언 후, 타입으로 사용
      └─ 이름, 나이, 성적 데이터를 담은 설계도

2. 객체(인스턴스) == 설계도
   └─ 클래스의 인스턴스 생성 // 설계도를 구현한 설계툴
      └─ Student students = new Student();

3. 정보 참조와 입력 전 설계툴
   └─ 설계툴을 이용해 데이터 입력 전까지 설계툴에는 설계도 원본 위치만 뜸(어떤 설계도를 참조했는지)
      └─ 설계툴을 이용해 설계도면을 참조하여 접근 가능

 

↓  구 현  ↓

 

[p.15] Class 선언 = '설계도'

public class Student {
    String name;
    int age;
    int grade;
}

 

[클래스를 타입으로 사용] 클래스 사용을 위해 클래스 타입 변수 선언 → 변수로 인스턴스(객체) 생성/사용

public static void main(String[] args) {
    // 클래스를 타입으로 사용하기 위한 변수 선언
    Student student;

    // 클래스의 인스턴스 생성
    student = new Student();

    // 생성된 인스턴스 사용
    student.name = "John";
    student.age = 20;
    student.grade = 90.5;

    // 이제 student 변수를 통해 Student 클래스의 인스턴스에 접근 가능
}

 

[인스턴스 변수 참조] students 변수는 실제로 메모리 위치를 가리키는 참조이다. 

{
System.out.println(student.name); // John 출력
System.out.println(student.age);  // 20 출력
System.out.println(student.grade);  // 90.5 출력
}

 

[3줄 요약]

1) 클래스 `Student`를 선언해 이름/나이/성적 데이터를 담고, 사용하기 위해 타입으로 지정한 변수를 선언한다.

2) 변수를 통해 클래스의 인스턴스를 생성해 설계도(클래스)를 실제로 구현하는데, 이것이 객체이다.

3) `Student students = new Student();` 즉 설계도를 참조하여 메모리 위치를 나타낸다.

 


 

그렇다면 Class는 왜 사용하는 것일까?

 Class는 효율적 데이터 관리를 위해 존재하며,
관련된 데이터와 기능을 하나의 논리적인 단위로 묶을 수 있다.


여러 사람의 나이/성적을 따로따로 관리하는 것보다, 각 사람에 대한 정보를 하나의 객체로 표현해

나이/성적을 객체 내 속성으로 저장하고 해당 객체의 메서드를 사용해 필요 작업을 수행하는 것이 효율적
⇒  '나이 : 사람1, 사람2, 사람 3' 정보 / '성적 : 사람1, 사람2, 사람3' 정보를 사람1로 묶어 사용

 

 

▶ 배열의 생성과 선언 이해하기

https://zoooom-in.tistory.com/44

 

[김영한_자바입문][9.배열] 배열의 선언과 생성 이해하기 (p.2-7)

배열 선언은 아파트 부지 확보, 생성은 몇 개의 아파트를 확보할 것인지 배열의 값 할당은 부지를 참조해 실제 준공일을 기입한다. 할당 전까지는 부지 주소만 참조되어 나타난다. [코드 읽기 전

zoooom-in.tistory.com

 

 

728x90