• Method(메서드)
    • public class Student {
      	public int modifyStudent() {
          	return 0;
          }
      }
    • 생성자와 비슷하게 생겼지만 리턴 타입이 있고 클래스 이름과 동일한 것이 아닌 작동에 대해 작명을 해줘야 한다
    • 메서드란 어떠한 동작을 한다고 생각을 해보면 좋을듯 하다.
    • 메서드는 재료를 받아서 내부적으로 어떠한 동작을 하고 결과물을 반환해준다
    • 위의 그림처럼 쌀, 밥솥, 물이라는 재료를 밥 짓기라는 메서드에 넣어주면 쌀밥이 나온다. 여기서 쌀, 밥솥, 물은 매개변수이고, 밥 짓기는 매소드 내부에서 쌀, 밥솥, 물이라는 매개변수를 사용해서 쌀밥이라는 결과물을 내기 위한 동작을 실행하는 부분이며, 쌀밥은 리턴 값이 된며 리턴 타입은 밥이 되는 것이다.
    • 리턴 값과 리턴타입의 관계를 보면 쌀밥은 밥이라는 큰 카테고리 안에 들어갈 수 있다. 매개변수로 쌀이 아니라 보리를 넣는다면 보리밥이 나오지만 밥이라는 큰 카테고리는 같다.
  • 매개변수와 리턴값
    • 경우의 수는 4가지가 있다
      1. 매개변수가 있고 리턴 값이 없는 경우
      2. 매개변수가 있고 리턴 값이 있는 경우
      3. 매개변수가 없고 리턴 값이 없는 경우
      4. 매개변수가 없고 리턴 값이 없는 경우
    • 이렇게 4가지의 경우가 있다
    • 리턴 값에는 여러 가지가 올 수 있다. 너무 다양하고 많지만 몇 가지 예시를 들자면
      • void : 리턴 값이 없는 경우 사용된다
      • int, double, char, byte, boolean 등 기본 타입 : 기본 타입의 값을 리턴해줄 수 있다
      • String, List, 객체 등 참조 타입 : 객체, 클래스 등 모든 참조 타입으로도 반환이 가능하다
    • 매개변수를 받아와야 하는데 메서드를 작성하는 시점에 몇 개의 매개변수를 받아와야 할지 모르는 경우 혹은 계속 개수의 변경이 있어야 한다면 배열로 받아올 수도 있다
  • 메서드 오버 로딩
    • 오버 로딩 방법은 생성자와 같으며 리턴 타입의 변경은 의미가 없다
  • 메서드의 호출
    • 해당 클래스를 통해 인스턴스를 생성해주고 생성된 인스턴스를 통해서 메서드를 호출해준다
    • public class StudentTest {
      	public static void main(String[] args) {
      		Student s1 = new Student("홍길동", 90, 89);
      		
      		int s1Score = s1.getTotalScore();
      	}
      }
      
      class Student {
      	public String name;
      	public int korScore;
      	public int engScore;
      
      	
      	public Student(String name, int korScore, int engScore) {
      		this.name = name;
      		this.korScore = korScore;
      		this.engScore = engScore;
      	}
      
      
      	public int getTotalScore() {
      		return korScore + engScore;
      	}
      }
    • 메서드를 호출해서 리턴 타입에 맞는 변수에 저장해서 사용이 가능하다

'Back-end > JAVA' 카테고리의 다른 글

20. Class - final(상수)  (0) 2021.07.24
19. Class - 멤버와 패키지, 접근 제한자  (0) 2021.07.24
17. Class - Constructor(생성자)  (0) 2021.07.24
16. Class - Field(필드)  (0) 2021.06.23
15. Class - 객체와 클래스  (0) 2021.06.22

+ Recent posts