Roel Notebook

[Java] 클래스(Class) 인스턴스(instance) 메소드(method)

by Roel Downey
728x90
반응형

클래스(class)

객체를 정의하는 틀 또는 설계도와 같은 의미

클래스를 가지고, 여러 객체를 생성하여 사용

개발자가 원하는 동작을 하는 새로운 클래스를 손쉽게 작성할 수도 있다.

클래스 선언하는 방법

접근제어자 class 이름 { }

public class Animal {

}

 

 

인스턴스(instance)

클래스를 사용하기 위해서는 클래스 타입의 객체(object)를 선언해야 한다.

이렇게 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스 화라고 한다.

또한, 이렇게 선언된 해당 클래스 타입의 객체를 인스턴스(instance)라고 한다.

즉, 인스턴스란 메모리에 할당된 객체를 의미한다.

 

인스턴스 선언과 동시에 생성하는 방법

클래스이름 이름 = new 클래스이름( );

Animal cat = new Animal();

 

만약에 아래와 같이 사용하면 에러가 난다. 

Animal cat;

꼭!!! new className(); 을 해주거나 null을 저장 해 준다. null을 해주는 이유는 클래스는 참조타입이기 때문이다. 

인스턴스에는 주소를 담는 부분이 스택에 두고 new 메모리를 할당해서 힙에 저장을 한다.

 

클래스의 예

 

클래스(class)

- 동물 : 정의

 

필드(field)

- animal.name = "돌고래"

- animal.year = 2019

- animal.color = "회색"

 

메소드(method)

- animal.look()

- animal.eat()

 

인스턴스(instance)

- 내 동물(myAnimal) : 정의에 의해 분양된 동물

- 친구 동물(friendAnimal) : 정의에 의해 분양된 또 다른 동물

 

동물 인스턴스는 모두 위와 같은 필드와 메소드를 가지게 될 것이다.

하지만 각 인스턴스마다 가지고 있는 프로퍼티의 값은 전부 다를 것이다.

 

 

 

메소드(method)

메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이다.

 

왜? 메소드를 사용할까? 라는 생각을 할 것이다. 

프로그램을 작성하다보면 반복적으로 적고 있는 것이 있을 것이다. 

그 반복을 묶어서 하나의 덩어리로 만든다.

그리고 그 덩어리를 가져다가 사용을 한다. 

 

메소드를 정의하는 방법

public int sum(int one, int two) {
    return one+two;
}

접근제어자 반환타입 메소드이름(매개변수목록) {

    // 구현

}

- 접근 제어자 : 해당 메소드에 접근할 수 있는 범위를 적어준다. 

- 반환 타입(return type) : 메소드가 모든 작업을 마치고 반환하는 데이터의 타입을 적어준다.

- 메소드 이름 : 메소드를 호출하기 위한 이름을 적어준다.

- 매개변수 목록(parameters) : 메소드에게 전달 해줄 변수를 적어준다.

- 구현 : 메소드에서 수행하는 명령을 적어준다.

 

그럼 위의 코드를 설명 해보겠다.

sum이라는 이름을 가진 메소드는 모두 사용 가능하며(public) 매개변수로 one과 two를 전달 해주고, 반환 타입은 정수형이다. 

 

 

 

 

 

 

 

728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기