Java/[국비] JAVA

[국비][JAVA] Class, Object이해

줌인. 2024. 5. 29. 22:16

▶ 클래스 도입 및 객체 이해하기

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

 

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

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

zoooom-in.tistory.com

 

 

클래스가 필요한 근본적인 이유는 다양한 데이터 타입을 하나의 묶음으로 보고 관리하기 위함이다.
   ⇒ 하나의 데이터 타입(Class)으로 만들 수 있다.

 

설계도로 실체는 여러개 만들 수 있다. 다만 실체는 각 각 별도로 본다.

 

Class(클래스) : 설계도 Object(객체) : 실제 구현물
- 자동차 설계 도면, 구상물
1) [인스턴스/멤버 변수] 변수(속성)
       : 모델 / 최고속도 / 자율주행여부 etc..
2) [멤버 메서드] 기능 : 전진 / 후진 / 브레이크 / 쌍라이트 etc..
- 실제 자동차
※ 인스턴스 변수 및 참조 타입은 기본값으로 초기화됨
※ 구현물 없이 설계도 만으로는 아무것도 할 수 없음
     ⇒ 설계도만으로 파일럿테스트를 하고,
          성능을 검증할 수 없기 떄문에 (모형이 있어야 함)
※ 인스턴스는 클래스(Car)를 기반으로 만들어졌을 때 
    인스턴스라 칭함

 

[클래스 예시] 

public class Student {
    String name;
    int age;
}

 

[객체 생성 예시]

public static void main(String[] args) {
    Student s = new Student();
    s.name = "민지";

    Student s2 = new Student();

    Student s3 = null;
    s3 = s;
    System.out.println(s3.name);

    Student s4 = new Student();
    s4.name = s.name;
    s4.name = "오렌지";
    System.out.println(s.name);
    System.out.println(s4.name);
}

 

※ 객체 생성 'new Student()'의 Student()의 의미는 사실 생성자를 호출 하는 것

※ 생성자는 호출과 동시에 초기화하기 위함

 

//new Student는 Student type의 객체를 만든 것이고, 그 객체를 Stident 타입의 s라는 변수에 담는 것
//int num = 3;과 비슷하게 생각 - 3이라는 인트형 리터럴을 int타입의 num에 넣는 것
Student s = new Student();      //즉 s에는 new Student의 주소값만 들어 있음
s.name = "민지";      //('.'의 의미는 : ~에 접근한다.)
Student s2 = new Student();         //신규 객체 생성 (x002) - x001과 같은 설계도롤 이용했지만, 별도의 실체
Student s3 = null;       // null을 넣으면 접근할 주소값 자체가 없는 것 (x003)
Student s4 = new Student();         //(x004)
s4.name = s.name;       // s.name'만' 복사하여 s4.name에 담김 ("민지")

 

 

[그림으로 구조화]

참조형은 '주소값'을 공유한다.

 

728x90