[JAVA] 메서드

이현경·2021년 4월 19일
0

JAVA

목록 보기
40/77
  • 메서드
    객체의 동작(기능)
    호출해서 실행할 수 있는 중괄호 블록
    메소드 호출하면 중괄호 블록에 있는 모든 코드들이 일괄 실행 됨

  • 메서드의 종류

  1. 매개변수가 있고 반환 값이 있는 메서드 (기본형 메서드)
  2. 매개변수는 있지만 반환 값이 없는 메서드
  3. 매개변수는 없고 반환 값이 있는 메서드
  4. 매개변수도 없고 반환 겂도 없는 메서드
  • 메서드의 역할
  1. 값을 전달한다.
  2. 값을 받아온다.
  3. 반복적인 코드를 한번만 정의해서 사용할 수 있다.

public class Ex02 {

	public static void main(String [] args) {
		// 메서드가 필요한 이유
		// 4단
		for(int i = 1; i <= 9; i++) {
			System.out.println("4 x " + i + " = " + 4 * i);
		}
		System.out.println();
		
		// 5단
		for(int i = 1; i <= 9; i++) {
			System.out.println("5 x " + i + " = " + 5 * i);
		}
		System.out.println();
		
		// 6단
		for(int i = 1; i <= 9; i++) {
			System.out.println("6 x " + i + " = " + 6 * i);
		}
		System.out.println();
		
		// 4단 ~ 6단
		for(int dan = 4; dan <= 6; dan++) {
			for(int gop = 1; gop <= 9; gop++) {
				System.out.println(dan + " x " + gop + " = " + dan * gop);
			}
		}
		System.out.println();
		
		// 2단 5단 8단
		// 2단 출력
		int dan = 8;
		for(int gop = 1; gop <= 9; gop++) {
			System.out.println(dan + " x " + gop + " = " + dan * gop);
		}
		System.out.println();
		// 반복적으로 정의해서 사용하는 코드가 있다면 한번만 정의해서 사용
	
		gugu(2);
		gugu(5);
		gugu(7);
	}
	
	public static void gugu(int dan) {	// 피호출 메서드
		// 반복적인 코드를 메서드 안에 정의
		for(int gop = 1; gop <= 9; gop++) {
			System.out.println(dan + " x " + gop + " = " + dan * gop);
		}
	}
	
	// 메서드의 역할
	// 1. 값을 전달한다.
	// 2. 값을 받아온다.
	// 3. 반복적인 코드를 한번만 정의해서 사용할 수 있다.
}

static 메서드에서 메서드를 호출하려면 메서드가 static 메서드여야 한다.


public class Ex04 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 기본형
		int result = add(4, 5);
		System.out.println(result);
		String fullName = name("현경", "이");
		System.out.println(fullName);
		double circle = area(3, 3.14);
		System.out.println(circle);
		int rangle = rangleArea(4, 3);
		System.out.println(rangle);
		System.out.println();
	}
	
	// static 메서드에서 메서드를 호출하려면 메서드가 static 메서드여야 한다.
	// 메서드의 종류는 4가지 종류
	// 1. 기본 메서드 : 매개변수가 있고 반환 값이 있는 메서드
	public static int add(int num1, int num2) {
		return num1 + num2;
	}
	// return type은 return문 뒤에 있는 결과 값의 type을 적어준다.
	public static String name(String firstName, String lastName) {
		return lastName + firstName;
	}
	
	public static double area(int radius, double pi) {
		return radius * radius * pi;
	}
	
	public static int rangleArea(int num1, int num2) {
		return num1 * num2;
	}

}

return type은 return문 뒤에 있는 결과값의 type을 적어준다.


public class Ex05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		add(4, 5);
		fullName("현경", "이");
		area(3, 3.14);
		rangleArea(3, 4);
		
	}

	// 2. 매개변수는 있지만 반환값이 없는 메서드
	// 반환형을 void로 적어주면 반환값이 없는 메서드가 된다.
	// 반환값이 없는 경우에는 메서드 내에서 결과를 확인할 수 있어야 한다.
	public static void add(int num1, int num2) {
		int result = num1 + num2;
		System.out.println(result);
	}
	public static void fullName(String firstName, String lastName) {
		String fullName = lastName + firstName;
		System.out.println(fullName);
	}
	public static void area(int radius, double pi) {
		double result = radius * radius *pi;
		System.out.println(result);
	}
	public static void rangleArea(int num1, int num2) {
		int result = num1 * num2;
		System.out.println(result);
	}
}

반환형을 void로 적어주면 반환값이 없는 메서드가 된다.
반환 값이 없는 경우에는 메서드 내에서 결과를 확인할 수 있어야 한다.


public class Ex06 {

	static int num1 = 3;
	static int num2 = 4;
	static String firstName = "현경";
	static String lastName = "이";
	static int radius = 3;
	static double pi = 3.14;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 3. 매개변수는 없고 반환값이 있는 메서드
		int result = add();
		System.out.println(result);
		String fullName = name();
		System.out.println(fullName);
		double circle = area();
		System.out.println(circle);
		result = rangleArea();
		System.out.println(result);
	}

	// 매개변수가 없는 경우에는 멤버필드를 이용해서 결과를 얻을 때 사용
	public static int add() {
		return num1 + num2;
	}
	public static String name() {
		return lastName + firstName;
	}
	public static double area() {
		return radius * radius * pi;
	}
	public static int rangleArea() {
		return num1 * num2;
	}
}

매개변수가 없는 경우에는 멤버필드를 이용해서 결과를 얻을 때 사용한다.


public class Ex07 {

	static int num1 = 3;
	static int num2 = 4;
	static String firstName = "현경";
	static String lastName = "이";
	static int radius = 3;
	static double pi = 3.14;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 4. 매개변수도 없고 반환 값도 없는 메서드
		add();
		name();
		area();
		rangleArea();
	}

	public static void add() {
		System.out.println(num1 + num2);
	}
	public static void name() {
		System.out.println(lastName + firstName);
	}
	public static void area() {
		System.out.println(radius * radius * pi);
	}
	public static void rangleArea() {
		System.out.println(num1 * num2);
	}
}
  • 매개변수의 개수를 모르는 경우
    매개변수와 매개변수에 전달되는 값의 개수는 같아야 한다.

public class Ex08 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 매개변수의 개수를 모르는 경우
		add(3, 4);
		// 매개변수와 매개변수에 전달되는 값의 개수는 같아야 한다.
		int [] val = {1, 2, 3, 4, 5};
		sum(val);
		sum2(1, 2, 3, 4, 5);
		sum2(1, 2, 3);
		sum2(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
	}

	public static void add(int num1, int num2) {
		System.out.println(num1 + num2);
	}
	public static void sum(int [] i) {
		int sum = 0;
		for(int j : i) {
			sum += j;
		}
		System.out.println(sum);
	}
	public static void sum2(int ... i) {
		int sum = 0;
		for(int j : i) {
			sum += j;
		}
		System.out.println(sum);
	}
}
profile
25. 컴퓨터학과 졸업 / SQLD, 정보처리기사 취득

0개의 댓글