[자바] 메소드 공부하기

heegon·2025년 6월 27일

JAVA

목록 보기
8/20

메소드 개념

  • 객체의 기능을 구현하기 위해 클래스 내부에 구현.
  • 특정 기능을 수행하기 위한 코드들의 집합체.

메소드 종류

  • static method 와 instance method 두 종류가 있다.
    static method는 객체 생성 여부와 상관없이 프로그램 시작과 동시에 메모리에 미리 할당된다. (모든 static이 그러하다.)
    반면에, instance method는 객체 생성 이후에 사용이 가능하다.

static method 사용 예시


import java.util.Scanner;

public class study {

	public static int inputNum(Scanner sc, int num1) { //⭐ static 메소드로 구현. (메소드명은 inputNum)
		int num = sc.nextInt();
		return num;
	}
	
	public static void disp(int num1) { //⭐ static 메소드로 구현. (메소드명은 disp)
		System.out.println(num1);
	}

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int num1 = 0;
		num1 = inputNum(sc, num1); //⭐ 다음과 같이 해당 메소드명으로 바로 접근 가능하다.
		disp(num1);
		
		sc.close();

	}

}

instance method 사용 예시

package study_java;

import java.util.Scanner;

public class Study2 {

	public int inputNum(Scanner sc, int num1) {
		int num = sc.nextInt();
		return num;
	}
	
	public void disp(int num1) {
		System.out.println(num1);
	}

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		Study2 st = new Study2(); //⭐
        //다음과 같이 인스턴스 필드나 메소드에 접근하기 위해서는 해당 필드나 메소드가 들어있는 클래스에 접근 가능한 'st'와 같은 객체(래퍼런스 변수)를 만들어줘야한다. 
		
		int num1 = 0;
		num1 = st.inputNum(sc, num1); //⭐ 
        //같은 클래스 내부에 있는 메소드이지만, 객체를 통해 접근해야 해당 메소드가 사용 가능하다. 
		st.disp(num1);
		
		sc.close();

	}

}

메소드로 구현한 사칙연산 계산기


public class FirstClass {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int inputNum1 = inputNum(sc);
		int inputNum2 = inputNum(sc);
		char op1 = inputOp(sc);
		
		int returnCalculate = calculate(inputNum1, inputNum2, op1);
		
		printResultMethod(returnCalculate);
		
		
	}
	
	//정수 숫자 입력을 받아주는 메소드
	public static int inputNum(Scanner sc) {
		System.out.println("정수 숫자 입력 >> ");
		return  sc.nextInt();
	}
	
	//연산자 입력을 처리하는 메소드
	public static char inputOp(Scanner sc) {
		System.out.println("연산자 (+-*/) 중에 하나를 입력>> ");
		return sc.next().charAt(0);
	}
	

	//연산을 담당하는 메소드
	public static int calculate(int inputNum1, int inputNum2, char op1) {
		
		int returnNum = 0;
		
		switch(op1) {
		case '+':
			returnNum = inputNum1 + inputNum2;
			break;
		case '-':
			returnNum = inputNum1 - inputNum2;
			break;
		case '*':
			returnNum = inputNum1 * inputNum2;
			break;
		case '/':
			returnNum = inputNum1 / inputNum2;
			break;
		}
		
		return returnNum;
	}
	
	//출력을 담당하는 메소드
	public static void printResultMethod(int returnCalculate) {
		System.out.println("연산 결과는 " + returnCalculate + " 입니다.");
	}
	
}
profile
❤️

0개의 댓글