메소드는 이전에 객체에서 동작을 담당하는 구역이라고 말한 바 있다. 메소드는 크게 리턴 타입, 이름, 매개 변수, 중괄호로 이루어져 있다. 객체를 생성한 후 실행 클래스에서 해당 객체의 메소드를 실행하게 되면 그 이름에 맞는 메소드는 중괄호 내의 모든 코드를 실행한다. 메소드는 주로 객체 내의 데이터 값을 수정하고 필드를 초기화하는 등의 역할을 하지만 또 다른 객체를 생성하기도 하고 객체 간의 데이터를 주고받기도 하는 등의 다양한 동작을 행한다.

 

 그럼 메소드 선언부 중 리턴 타입에 대해 알아보겠다. 리턴 타입은 말 그대로 메소드가 실행되고 리턴되는 데이터의 타입을 의미한다. 만약 int형으로 반환하겠다 하면 int형으로 선언하면 되고 String형은 String으로 선언하면 된다. 이때 메소드를 void로 선언하게 될 경우 리턴 값이 없다는 것을 의미한다. 메소드에서는 리턴되는 값이 있냐 없냐에 따라 실행 클래스에서 메소드를 실행하는 방식도 달라지게 된다.

public void printString(){
	System.out.println("12345");
}

public int returnNumber(){
	return 1;
}

 위처럼 2개의 메소드가 있다고 가정했을 때 위의 printString메소드는 단순히 '12345'를 출력하고 종료된다. 하지만 아래의 returnNumber메소드는 1을 반환하므로 이 1이 저장될 변수가 필요하다. 때문에 실행시에는 아래와 같이 해야한다.

printString();
int number=returnNumber();

 이때 주의할 점은 Return_number메소드의 리턴 타입과 결괏값을 저장할 변수의 자료형이 같아야 한다는 것이다. 만약 다를 경우에는 자료형을 맞춰서 저장해주어야 오류가 발생하지 않는다.

 

 다음으로 메소드 선언부 중에서 메소드 이름 부분에 대해 알아보겠다. 이 부분은 크게 볼 것이 없어서 간단히 넘어가겠다. 아래는 메소드 이름을 지을 때 주의해야 할 몇가지 규칙이다.

 

 - 숫자로 시작할 수 없고, $,_를 제외한 특수문자를 사용할 수 없다.

 - 관례적으로 메소드 이름은 소문자로 작성한다.

 - 서로 다른 단어가 이어진 메소드 이름일 경우 뒤의 오는 단어의 첫글자는 대문자로 작성한다.

 

 마지막으로 매개 변수 부분에 대해서 알아보도록 하겠다. 매개 변수가 존재하는 이유는 메소드를 실행할 때 메소드 내에서 필요한 데이터를 외부로부터 전달받기 위해 존재한다.

public int plusValue(int a, int b){
	return a+b;
}

 위의 메소드는 간단하게 매개 변수로 들어온 a와 b를 더해서 반환하는 구조로 되어있다. 이를 실행하기 위해서는 매개 변수 값으로 2개의 값을 전달해야 하지만 만약 1개만 전달하거나 전달하지 않을 경우 오류가 발생하게 된다. 또 int값이 아닌 다른 값(float이나 double)과 같은 값을 넘겨주게 되면 오류가 발생한다.

 

 그러면 전체적으로 클래스 내부에서의 구조와 이를 실행하려면 어떤 식으로 해야하는지 알아보겠다.

public class Person {
	String name;
    int age;
    int height;
    
    Person(String name, int age, int height){
    	this.name=name;
        this.age=age;
        this.height=height;
    }
    
    public String returnName(){			// 이름을 반환하는 메소드
    	return name;
    }
    
    public void modifyAge(int age){		// 나이를 수정하는 메소드
    	this.age=age;
    }
}

 위의 코드는 클래스이고 아래의 코드는 실행 클래스에서의 객체 생성과 메소드 실행 방법이다.

Person p1=new Person("Kim", 22, 180);
String name=p1.returnName();
p1.modifyAge(20);

 위의 코드처럼 실행하게 되면 처음에 설정한 name을 반환받게 되고 age 필드는 처음에 22로 설정되었다가 후에 20으로 수정된다.

'프로그래밍 > JAVA' 카테고리의 다른 글

return문  (0) 2021.04.30
생성자 오버로딩(Overloading)  (0) 2021.04.30
this  (0) 2021.04.30
생성자  (0) 2021.04.30
클래스의 구성 요소  (0) 2021.04.29

+ Recent posts