본문 바로가기

Java/문법

6-2장 객체의 생성과 활용

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