본문 바로가기
Programming/Java

[JAVA] OOP - 클래스&인스턴스란?

by minux_s 2021. 5. 21.
728x90

객체지향 프로그래밍은 컴퓨터 프로그래밍 패러다임(견해, 사고법)의 하나로, 프로그래밍에서 필요한 데이터를 추상화 시켜서 상태(속성, 어트리뷰트)와 행위(메서드)를 가진 객체 로 만들고, 그 객체간의 상호작용을 통해 로직을 구성하는 방법이라고 하는데, 도통 이게 뭔말인지 이해할 수가 없었다..;; 그래서 나름 자료들을 모아서 최대한 이해하기 쉽게 설명해보겠습니다!

 

OOP의 6가지 키워드

  1. 클래스
  2. 인스턴스
  3. 추상화
  4. 캡슐화
  5. 상속
  6. 다형성

<클래스>

클래스란 유사한 특징을 지닌 객체들의 속성을 묶어 놓은 집합체입니다.

예를 들어 학교에는 "김철수"나 "김영희" 등 많은 사람들이 있고, 이 사람들을 하나로 묶는 명칭이 바로 "학생"입니다.

이 때 바로 이 "학생"이 클래스이고 하나하나의 "학생"이 객체가 되는 것입니다.

코드로 살펴보면 하나의 클래스를 정의하고, 그 클래스로부터 하나의 실례를 만드는 것을 "객체 또는 인스턴스를 생성한다"고 합니다.

public class Example {
	public static void main(String[] args){
		Example exam = new Example();
	}
}

<인스턴스>

Example이라는 클래스에 examl이 이 클래스에서 실례로 생성된 인스턴스(객체)입니다.

위의 코드는 자기 자신의 클래스를 객체로 선언한 모양이고, 다른 예시를 보겠습니다.

 

public class Example {
	public static void main(String[] args) {
    	Student a = new Student(17);
        Teacher b = new Teacher();
        System.out.print(a.getNumber());
        System.out.print(b.getNumber());
    }
}

class Student{
	private int m_number;
    public Student(int _num)
    {
    	super();
        m_number = _num;
    }
    
    public int getNumber()
    {
    	return m_number;
    }
}

class Teacher {
	public String getNumber()
    {
        return "교사"
    }
}

Student와 teacher라는 클래스를 만들어서 호출하였습니다.

 

728x90

댓글