▶ 클래스 도입 및 객체 이해하기
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
'Java > [국비] JAVA' 카테고리의 다른 글
[국비][JAVA] 그 외 제어자(지정자) Static 이해 및 클래스 영역/스택영역/힙영역 이해 (0) | 2024.06.01 |
---|---|
[국비][JAVA] this 이해하기 (0) | 2024.05.30 |
[국비][JAVA] Class, Object이해_심화 예시 (0) | 2024.05.29 |
[국비][JAVA] 자동 형변환과 문자열 비교 (0) | 2024.05.27 |
[국비][JAVA] char 타입 → int 타입 변환 및 아스키코드표 (0) | 2024.05.27 |