not bad 한 개발

Java - 클래스와 객체 본문

Java/Java class

Java - 클래스와 객체

leebean 2022. 3. 29. 09:44

(이 글의 내용은 YouTube의 남궁성의 정석코딩 채널의 강의를 듣고 배운 내용을 포스트 하겠습니다.)

https://youtube.com/playlist?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 

 

자바의 정석 기초편(2020최신)

최고의 자바강좌를 무료로 들을 수 있습니다. 어떤 유료강좌보다도 낫습니다.

www.youtube.com

 

 클래스와 객체 

  • 클래스의 정의 : 클래스란 객체를 정의해놓은 것입니다.
  • 클래스의 용도 : 클래스는 객체를 생성하기 위해 사용됩니다.
  • 객체의 정의 : 실제로 존재하는 것, 사물 또는 개념입니다.
  • 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다릅니다.

(파스타 레시피를 가지고 요리를 하면 파스타가 나오는 듯이 파스타 레시피는 클래스가 되고 요리를 하는 과정을 인스턴스화라고 하며 요리를 하는 과정에서 나온 결과물인 파스타는 객체가 되는 것입니다.)

객체의 구성요소 : 객체 = 속성(변수) + 기능(메서드)

(자동차를 객체로 예를 든다면 자동차의 속성은, 엑셀, 브레이크, 기어, 핸들 등이 있고 기능은 가속, 턴, 멈추기, 주차 등이 있습니다.)

 

(클래스 예시)

class Recipe{
    int flour; // 속성(변수)
    int spice; // 속성(변수)
    String knife; // 속성(변수)
    void flour_insert(){ // 기능(메서드)
        flour++;
    }
    void spice_insert(){ // 기능(메서드)
        spice++;
    }
    void make(){ // 기능(메서드)
        System.out.println(knife);
    }
}
public class test {
    public static void main(String[] args) {
        Recipe menu = new Recipe();
        // menu이름의 참조 변수 선언과 동시에 인스턴스를 저장
        menu.spice = 10; // Recipe 클래스의 spice변수에 10을 저장
        menu.flour = 5; // Recipe 클래스의 flour변수에 5를 저장
        menu.knife = "칼질"; // Recipe 클래스의 knife변수에 "칼질"문자열을 저장
        menu.flour_insert();
        // Recipe 클래스의 flour변수에 1을 추가하는 메서드를 호출
        menu.spice_insert();
        // Recipe 클래스의 spice변수에 1을 추가하는 메서드를 호출

        System.out.println(menu.spice);
        System.out.println(menu.flour);
        menu.make();
        // Recipe 클래스의 make메서드를 통해 knife에 저장되어있는 "칼질" 문자열을 호출
    }
}

 

 객체와 인스턴스 

  • 객체 : 객체는 모든 인스턴스를 대표하는 일반적인 용어입니다.
  • 인스턴스 : 특정 클래스로부터 생성된 객체입니다.
  • 클래스를 활용하기 위해서는 참조 변수라는 것을 사용해야 합니다, 하지만 간혹 레퍼런스 변수와 참조 변수가 헷갈리는 경우가 있습니다, 하지만 참조 변수나 레퍼런스 변수나 같은 의미입니다.

(객체와 인스턴스는 같은 용어라고 봐도 무안합니다.)

클래스인스턴스화 하여 나오는 것이 객체입니다, 클래스에서 인스턴스를 만드는 작업을 인스턴스화라고 합니다.

  • 클래스는 왜 필요합니까? : 객체를 생성하기 위해서 필요합니다.
  • 객체는 왜 필요합니까? : 객체를 사용하기 위해 필요합니다.
  • 객체를 사용한다는 것은 어떤 의미입니까? : 객체가 가진 속성과 기능을 사용하기 위해라는 의미입니다.

(클래스, 객체, 인스턴스의 관계를 그림으로 표현하면 이렇게 나옵니다.)

Comments