Java

Java - 클래스 (객체, 인스턴스 변수(=멤버 변수), 메소드)

왕현성 2023. 1. 18. 15:33
728x90

1. 클래스 (Class)

  • 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀을 의미
  • 객체를 조금 더 효율적으로 생성하기 위해 만들어진 구문

 

2. 객체 (Object)

  • 클래스에 정의된 내용대로 메모리에 생성된 것

 

3. 객체의 선언 및 생성(메모리 할당)

  • 객체 변수 선언 : 클래스명 객체명;
  • 객체 변수 생성 : 객체명 = new 클래스명();
  • 객체의 선언과 생성은 한 줄로도 표현 가능

 

4. 인스턴스 변수 사용과 접근

  • 클래스에서 정의한 변수
  • 인스턴스 변수는 각각의 독립된 공간을 가짐
    • 예) Product p1 = new Product();
      -> p1에서 사용되는 변수는 같은 이름의 변수라도 독립된 공간을 가지기 때문에 출력되는 값이 다름

5. 메소드 (Method)

  • 클래스 내에서 정의된 함수

 

6. 메소드 호출

  • 객체 변수의 뒤에 점(.)을 하고 함수이름 입력
  • 메소드의 파라미터가 존재 할 경우, 파라미터의 수에 맞춰 호출

 

public class Product {
	
	// 변수인데 클래스 안에 있는 변수 : 멤버변수라 하고
	// 이 변수들은  Heap 메모리에 생긴다!!!!
	int number;
	String name;
	
	// 클래스는 메소드도 있다.
	// 아래처럼 출력하는 함수를 만든다.
	// 제품 번호 : 1이고 , 제품명 : 컴퓨터
	
	void print() {
		System.out.println("제품 번호 : "+number+" , 제품명 :"+name);
	}
	

}
public class ProductMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int i = 3;
		
		// 클래스를 가지고 실제로 데이터를 만든다 => 객체 생성!
		// 클래스 :틀, 객체 : 실제 메모리에 올라가는 것.

		
		Product p1 = new Product();
		// 객체에 데이터를 저장한다.
		// 제품 번호는 1, 제품명은 컴퓨터
		p1.number = 1;
		p1.name = "컴퓨터";
		
		// 제품번호는 2, 제품명은 TV
		Product p2 = new Product();
		p2.number = 2;
		p2.name = "TV";
		
		// 데이터 억세스
		// p1의 제품명을 출력하세요.
		System.out.println(p1.name);
		// p2의 제품명을 출력하세요.
		System.out.println(p2.name);
		
		// 출력을 이렇게 하고싶다.
		// 제품 번호 : 1이고 , 제품명 : 컴퓨터
		System.out.println("제품 번호 : "+p1.number+" , 제품명 : "+p1.name);
		System.out.println("제품 번호 : "+p2.number+" , 제품명 : "+p2.name);
		
		// 출력을 이렇게 하고싶다.
		// 제품 번호 : 1이고 , 제품명 : 컴퓨터
		p1.print();
		p2.print();
		
	
	}

}

 

 

위 코드의 메모리 상태를 그림으로 표현해봤다.