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
'Java > [inflearn] 자바 기본' 카테고리의 다른 글
[김영한_자바기본][2.기본형과 참조형] 상품 주문 시스템 개발_문제 풀이 해석 보충 (p.30-34) (2) | 2024.02.06 |
---|---|
[김영한_자바기본][3. 객체 지향 프로그래밍] 매서드 보충 (0) | 2024.02.05 |
[김영한_자바기본][2.기본형과 참조형] Null/NullPointerExcepiton 이해 (p.23-29) (0) | 2024.02.02 |
[김영한_자바기본][1.클래스와 데이터] (보충) 클래스 도입/객체 사용/ 배열 도입 (p.16-34) (2) | 2024.02.02 |
[김영한_자바기본][2.기본형과 참조형] 기본형 / 참조형 이해 (p.1-6) (0) | 2024.01.25 |