[Java] 2. 클래스(Class)와 객체(Object)
클래스(Class)와 객체(Object) 그리고 인스턴스(Instance)
1. 클래스(Class)와 객체(Object)
1-1. 클래스 정의
- 정의: 객체를 정의해 놓은 것(설계도)
- 용도: 객체를 생성하는데 사용 됨
1-2. 클래스 특징
- 현실세계에서의 건축 설계도, 자동차 설계도 개념이
자바에서는 클래스
이다. - 클래스에는 객체를 생성하기 위한 필드와 메서드가 정의
- 클래스로 만든 객체를 인스턴스(Instance)라고 하고 그 과정을 인스턴스화라 한다.
클래스는 객체를 만들기 위한 설계도 이고
클래스(설계도)로 만들어진 것이 인스턴스(객체)이다.
클래스와 객체
public class CreateCustomer {
public static void main(String[] args) {
//Customer 클래스로 만들어진 인스턴스 객체(customer1)
Customer customer1 = new Customer();
customer1.customerId = "100001";
customer1.customerName = "김재석";
customer1.phoneNumber = "01012346789";
//Customer 클래스로 만들어진 인스턴스 객체(customer2)
Customer customer2 = new Customer();
customer2.customerId = "100002";
customer2.customerName = "오병훈";
customer2.phoneNumber = "01043216789";
}
}
2. 객체의 구성요소 - 속성과 기능
2-1. 객체의 구현
=> 객체의 속성은 멤버변수로 객체의 기능은 메서드로 구현한다.
- 속성(property) : 멤버변수
- 기능(function) : 메서드
객체의 구현
//고객을 만들기 위해 Customer 클래스
public class Customer {
//객체의 속성(멤버변수)
public int customerId;
public String customerName;
public String phoneNumber;
//객체의 기능(메서드)
public void getCustomerInfo() {
System.out.println(customerName + ":" + phoneNumber);
}
public String getCustomerName() {
return customerName;
}
}
3. 인스턴스(Instance)
Customer 클래스는 객체의 속성을 정의 하고, 기능을 구현하여 만들어 놓은 설계도
클래스로 만든 객체를 인스턴스
라고 하고 그 과정을 인스턴스화
라 한다.
new 생성자로 인스턴스 생성
public class CreateCustomer {
public static void main(String[] args) {
//지역변수 customer1에 할당된 값이
//생성 된 인스턴스 객체 실제 주소값을 가리킴
Customer customer1 = new Customer();
customer1.customerId = "100001";
customer1.customerName = "김재석";
customer1.phoneNumber = "01012346789";
Customer customer2 = new Customer();
customer2.customerId = "100002";
customer2.customerName = "오병훈";
customer2.phoneNumber = "01043216789";
}
}
1 ) 지역변수 customer1을 참조변수
라고 하고 customer1에 저장 된 값을 참조 값
이라고 한다.
- 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수
- 참조 값 : 생성된 인스턴스의 메모리 주소 값
2 ) 클래스(Customer)에 정의 된 내용과 생성된 인스턴스 객체는 힙(동적) 메모리 영역
에 저장
메서드를 호출하거나 인스턴스 객체 주소값을 저장하는 참조변수는 스택 메모리 영역
에 저장
[참고]