자바(java) 언어 중에 기본 중의 기본
바로 클래스와 인스턴스
그림을 그리는데 도화지 같은 바탕이 개념이니
잘 보시면 좋겠어요~
클래스는 설계도, 객체는 제품
프로그램에서_ 객체는 인스턴스
(즉, 객체=인스턴스)
-클래스는 하나의 데이터 타입이 되며 제품의 틀로서 동작,
이 틀에서 나온 제품을 객체라 하며, 클래스의 정의대로 생성된다
- 객체 분석 결과물을 토대로 설계도에 해당하는 클래스를 정의
- 클래스 내에는 객체의 속성을 저장할멤버 변수를선언하고,
객체의 동작을 정의할 메서드를 정의한다.
-아직 실체를 갖는 객체(= 인스턴스)가 아니므로 변수에 값을 저장할 필요는 없다.
(단, 필요에 따라 저장도 가능)
-클래스명은 관례상 첫 글자는 대문자로 한다
정의된 클래스에 대한 인스턴스(객체) 생성 = 구현 단계
- 힙(Heap) 메모리 공간에 인스턴스를 생성하여,
생성된 인스턴스의 주솟값을 참조형 변수에 저장하여,
참조 변수를 통해 인스턴스에 접근하도록 함.
클래스명 참조 변수명 = new 클래스명( );
Animal ani; =>Animal 클래스 타입 참조 변수 선언
ani=new Animal( ); =>Animal 인스턴스 생성 후 생성된 주소를 참조 변수에 전달
선언과 인스턴스 생성이 분리된 문장을 하나로 결합할 수 있다
Animal ani=new Animal();
<클래스의 인스턴스 생성_예시>
참조 변수명. 멤버 변수명 또는 참조변수명.메서드명( ) 형태로 접근
하나의 java 파일에 여러 개의 클래스를 정의할 수도 있다!
단, java 파일 이름과 동일한 클래스 앞에 public이 붙지만
그 외의 클래스는 public 키워드를 제외하고 클래스 정의해야 함
<예시>
[학생(Student) 클래스 정의]
속성 : 학번(id, 정수형), 이름(name, 문자열), 학과명(className, 문자열)
class Student {
int id;
String name;
String className;
}
jvm의 메모리는 크게 3가지 부분으로 나뉜다
1. 클래스 영역- 클래스의 영역이 올라가는 곳으로 원본이 저장되는 곳,
Method Area, Static Area, Code Ara로 불린다
2. 스택 영역- 메서드 호출 때마다 로컬 변수들이 쌓이는 영역,
로컬 변수란?객체의멤버 변수(인스턴스 변수)가 아닌 변수
호출된메서드의 매개변수나 매서드 내부에 선언된 변수
3. 힙 영역-new 키워드로생성된 객체가 저장되는 공간
<jvm 메모리 영역>
부족한 글을 읽어주셔서 감사드립니다
아직 부족한게 많으니
틀린 곳이 있다면
조언의 말씀 꼭 부탁드립니다!!!!
자바에서 보이는 final 제어자 도대체 왜 쓰는 거지? (0) | 2020.06.12 |
---|---|
자바이해하기_java Singleton 디자인 패턴이 뭐지? (0) | 2020.06.04 |
자바 변수총정리_ 인스턴스변수,로컬변수,클래스변수 싹털기 (0) | 2020.06.03 |
[JAVA ] 쉬운 자바 문법_조건문(if, else if)은 어떻게 공부해야 할까? (0) | 2020.06.03 |
[JAVA] 쉬운 자바 문법_산술연산자, 복합(확장) 대입 연산자 (0) | 2020.06.02 |