Back-End/Java

[자바 / Java] 클래스(Class)와 객체(Object)

Kangharyeom 2022. 9. 2. 12:10
728x90

 

클래스(Class)

 

클래스의 네가지 요소

  • 필드(field); 클래스의 속성을 나타내는 변수
  • 메서드(method): 클래스의 기능을 나타내는 함수
  • 생성자(constructor): 클래스의 객체를 형성
  • 이너 클래스(inner class): 클래스 내부의 클래스

#생성자를 제외한 3가지 요소를 멤버(Member)라고 부른다. 

public class WhatIsClass {
	int a = 1; // 필드
	void printA() {?} // 메서드
	WhatIsClass {?} // 생성자
	class InnerClass {?} // 이너 클래스
}

 

 

객체(Object)

 

 사람을 만드는 클래스(설계도)를 만들어보자

  • 변수(사람의 속성): 성별, 키, 몸무게 
  • 메서드(사람의 기능): 웃음짓기, 노래하기

를 표현한다고 하면 다음과 같다.

 

clas Human{
	private String gender; // 성별
    private int height; // 키
    private int weight; // 몸무게
    
    void smile(){?}; // 웃음짓기 
	void sing(){?}; // 노래하기

}

짠, 사람을 만드는 간단한 설계도가 완성되었다.

 

그렇다면 이 클래스로 어떻게 사람(객체)을 만들 수 있을까? 

new 키워드를 활용하여 사람(객체)을 만들 수 있다.

Class MakeHuman{
	public static void main(String[] args) {
    
    // Human 클래스(설계도)로 만들어진 사람(인스턴스) kangharyeom
    Human Kangharyeom = new Human(); 
    
    // Human 클래스(설계도)로 만들어진 사람(인스턴스) handsomeguy
    Human handsomeguy = new Human();
    
    // Human 클래스(설계도)로 만들어진 사람(인스턴스) prettygirl
    Human prettygirl = new Human();

 

이렇게 만든 메서드는 어떻게 호출할까?!

 

public class Humantest{
	public static void main(String[] args) {
     Human kangharyeom = new Human(); // 객체 생성
     
     kangharyeom.smile(); //메서드 호출
     
     }
}
class Human{
	void smile(){} // 메서드 선언
}