JAVA/JAVA 기초

JAVA : 클래스(Class)와 객체(object) 생성

신강희 2024. 6. 4. 00:27
728x90

< JAVA의 클래스(Class)와 객체(object) 생성 >

 

# 자바에서 클래스와 객체를 사용하는 방법에 대해 정리

- Product 클래스를 생성하고 이를 이용해 객체를 만들어 데이터를 다루는 방법

 

# 클래스와 객체

- 클래스는 객체를 만들기 위한 틀입니다.

- 클래스는 필드(변수)와 메소드(함수)로 구성

- 객체는 클래스를 기반으로 생성된 메모리 상의 실체

- 객체를 생성하면 힙(Heap) 메모리 영역에 할당됩니다.

 

# 예제 코드

- Product 클래스를 정의하고, 이를 이용해 객체를 생성하여 사용하는 예제 코드

- Class라는 프로젝트를 생성하여 같은 패키지 안에 ClassTest, Product 클래스를 생성하여 작성

 

# ClassTest 코드

public class ClassTest {

    public static void main(String[] args) {
        // 클래스를 가지고, 실제로 데이터를 만든다! => 객체 생성
        // 클래스는 틀! 객체는 메모리에 생성된 상태(데이터가 올라간것)!
        // 클래스 이름인데 () 함수가 붙어있으면 생성자 컨스트럭쳐
        
        // new 를 붙이면 메모리의 여유공간 heap 에 메모리를 생성 => 얘가 객체
        // 왼쪽은 stack 에 오른쪽은 heap
        Product p1 = new Product();
        
        // 생성한 객체에 데이터를 넣으니까 얘네는 heap 에 저장된다.
        p1.number = 1;
        p1.name = "컴퓨터";
        
        // 제품번호는 2번, TV를 만들어 보자.
        Product p2 = new Product();
        
        p2.number = 2;
        p2.name = "TV";
        
        // 제품번호 : 1, 제품명 : 컴퓨터 입니다.
        System.out.println("제품번호 : " + p1.number 
                            + ", 제품명 : " + p1.name + "입니다.");
        
        // 이렇게 매번 작성하기 번거로우니 제공하는 클래스에 함수(메소드)로 만들어서 사용한다.
        p2.printProduct();
        
        // 메인 함수이든 불러오는 함수이든 실행이 완료되면 Stack 에서 메모리는 삭제된다.
        // 그럼 heap 에 남은 잔여 데이터는?? 처리해주어야 한다 그게 가비지 컬렉터 (Garbage Collector)
    }

}

 

# Product 코드

public class Product {
    
    // 메모리에 저장할 변수를 만든다! VS 테이블의 컬럼
    
    // 저장할 변수를 먼저 만들고 나서, 메소드는 나중에 필요에 의해 만든다.
    int number;
    String name;
    
    void printProduct(){
        System.out.println("제품번호 : " + number 
                + ", 제품명 : " + name + "입니다.");
    }
    
}

 

# 코드 설명

- Product 클래스는 number와 name이라는 두 개의 필드를 가지고 있다.

- printProduct 메소드는 number와 name 필드를 출력하는 기능

- ClassTest 클래스의 main 메소드에서 Product 객체 p1과 p2를 생성하고, 각 객체의 필드에 값을 할당

- System.out.println을 사용하여 p1의 정보를 출력하고, p2 객체의 printProduct 메소드를 호출하여 정보를 출력

 

# 결론

- 클래스와 객체의 개념을 이해하고, 실제 CPU 동작에따른 메모리에 어떤 방식으로 데이터가 저장되는지에대해서 계속 생각하고 코드를 작성해야 한다!!

- 무조건 코드가 쭈루룩 작성되어 있다고 좌에서 우로 작성하는게 아니라, 계속해서 메모리에 데이터가 어떤식으로 업로드 되는지에 대해서 생각하면서 순서대로 작성하는게 중요하다!

 

다음 게시글로 계속~!

 

반응형

'JAVA > JAVA 기초' 카테고리의 다른 글

JAVA : 자바 클래스와 객체 예제 (Student 클래스 활용)  (0) 2024.06.04
JAVA : 함수 (Function)  (0) 2024.06.04
JAVA : 배열 (Array)  (2) 2024.06.03
JAVA : 반복문 (Loop)  (2) 2024.06.03
JAVA : switch 문  (0) 2024.06.03