1. 객체 생성하기
1) 클래스의 객체 생성
- 모든 클래스가 객체를 new 키워드로 생성
- 클래스명 참조 변수명 = new 생성자();
A a = new A();
- 참조 변수 : 실제 데이터가 있는 힙 메모리의 위칫값을 가리키는 변수
- new 키워드 : ~을 힙 메모리에 넣어라 . 생성자의 결과물로 나온 객체를 힙 메모리에 넣음
- 생성자 : 생성자가 실행되면 클래스의 객체 생성
- A() 생성자로 만든 객체를 힙 메모리에 넣고, 위칫값을 A타입의 참조 변수 a에 저장하라
2) 객체 생성에 따른 메모리 구조
- 클래스 A는 메모리의 클래스 영역 참조 변수는 스택 영역에 들어감
- 내부 공간에는 실제 데이터(객체)의 위칫값 저장
- 생성자로 만들어진 객체는 힙 메모리에 위치
- 객체 내부에는 클래스의 멤버(필드, 메서드, 이너 클래스)가 위치
- 실제 메서드 구현 코드는 클래스 영역 안에 저장해 놓고, 객체 안에서는 메서드 영역의 위치만 가리키고 있음
-> 1개의 클래스로 만든 모든 객체는 속성(필드)은 달라도 기능(메서드)는 동일하다
- 둘다 drive() 기능이 있어야 하므로 두 객체 안에 drive() 메서드가 포함돼 있음.
- 두 객체에 포함돼 있는 dirve() 메서드 코드가 동일하므로 이를 메서드 영역에 1개만 만들어 두고 모든 객체가 공유함
3) 예제 코드
class A {
int m=3;
void print() {
System.out.println("객체 생성 및 활용");
}
}
2. 객체 활용하기
- 객체를 활용 한다 = 객체 내부의 멤버를 사용한다
- 필드를 사용한다 - 필드에 값을 넣거나 읽어 온다
- 메서드를 사용한다 = 해당 메서드를 호출
1) 포인트 연산자 사용하기
-포인트 연산자(.)
: 해당 위치에 있는 객체 안을 보라
- 참조 변수명.필드명
- 참조 변수명. 메서드명()
A a = new A();
System.out.println(a.m); //필드 활용
a.print(); // 메서드 활용
- 클래스 구성과 객체의 생성 및 활용
package createobject;
class A {
int m=3;
void print() {
System.out.println("객체 생성 및 활용");
}
}
public class createobjcet_1 {
public static void main(String[] args) {
//클래스로 객체(붕어빵) 생성
A a = new A();
//클래스 멤버 활용 (붕어빵 먹기)
//@필드 활용 : 필드에 값을 읽기/쓰기
a.m =5;
System.out.println(a.m);
//@메서드 활용 : 메서드를 호출
a.print();
}
}
'Java > 문법' 카테고리의 다른 글
8-1장 패키지와 임포트 (0) | 2023.04.24 |
---|---|
7-4장 this 키워드와 this() 메서드 (0) | 2023.04.24 |
7-3장 생성자 (0) | 2023.04.24 |
7-2장 메서드 (0) | 2023.04.24 |
7-1장 필드 (0) | 2023.04.24 |