JAVA 7강_메소드(method)

YEONG EUN LEE (Chloe)·2023년 12월 18일
0

JAVA 기초

목록 보기
12/42
post-thumbnail

메소드

정의

  • 자바의 클래스에서 기능을 처리할 수 있도록 해주는 역할

메소드 형식

main과 형식이 유사함.
메소드는 반드시 클래스 안에서 선언해야 함.
메소드 안에는 개발자가 실행해야 할 기능들을 선언해야 함.

JDK(Java Development Kit)

  • JVM -> 실행할 때 수행, main() 메소드 호출기능
  1. 자바의 메소드는 반드시 선언이 되어 있어야 사용가능.
  2. 메소드는 무조건 호출을 해야 실행한다.(자동실행 x)
    -> 단, main 메소드는 JVM이 실행.
    명으로 끝나는 것은 개발자가 임으로 이름을 적을 수 있음.
    타입은 자료형을 의미함.

돌려줄 값의 자료형 : String, int (돌려줄 값이 있다면 return 문을 작성하고 위의 형식을 반환해야함.)
돌려줄 값이 없다면 void로 작성

// 선언
[접근제어자] [기타제어자] 리턴타입 메소드명([매게변수자료형 매개변수명, ...]){

	실행문들;
     ...
     
     
    [return 리턴할 값;]
    
    }
    
// 예시(메소드 선언 형식)
[public static] int sum(int a, int b){
	
    int result = a + b;
    
    System.out.println(result);
    
    
    
    }

메소드 호출문 형식

메소드명([매개값 ...]);

// 예시
int r = sum(10, 11); // 값을 저장하는 저장공간도 된다.
System.out.println(r);

// 출력값
21

메소드 호출문 기능

  1. 메소드를 실행시키는 기능
  2. 리턴값을 받는 공간

자바의 패키지는 소문자로 만든다.

메소드 예시


public class Ex01 {

//	static void hello_func() {
//		System.out.println("Hello World!");
//	
//		
//	}
	
//	static String hello_func() {
//		return "Hello World!" ;
//	}
//	
	static String hello_func() {
		String str = "Hello World!";
		return str;
	}
	public static void main(String[] args) {
		// hello_func(); // 메인 메소드 안에서 코드를 확인!
		System.out.println("main메소드 실행");
		System.out.println(hello_func());

	}

}

public class Ex02 {

	
	static void sum(int a, int b) { // 매개변수 a,b
		int c;
		c = a + b;
		System.out.println("a + b = " + c);
	}
	
	
	public static void main(String[] args) {
		
		int a = 10, b =  20; // 지역변수 a,b
		sum(a, b);
//		int x = 10, y =  20;
//		sum(x, y);
		sum(4,5); // 9
		
		/* 메소드 호출시 지켜야할 사항
		 * 메소드의 이름
		 * 메소드의 매개변수 갯수
		 * 메소드의 매개변수 자료형
		 * 메소드의 매개변수 나열순서(선언된 자료형순서대로, 자료형 갯수만큼)
		 * 
		 * */

	}

}

메소드의 선언

메소드의 선언 위치는 상관없음.

// 예시
public class Ex03 {

	

	public static void main(String[] args) {
		System.out.println(abs(-5)); // System.out의 println은 다른 클래스 소속임.

	}
	static int abs(int x) { // 꼭 매인 메소드 전에 생성하지 않아도 괜찮음.
		int y;
		if (x<0)
			y = -x;
		else 
			y = x;
		return y; // 값을 return 문으로 반환
	}
}

메소드 오버로딩

: 동일한(같은) 이름의 메소드를 한 클래스에 여러개 만들어 주는 것(여러개 쌓아두는 것)
로딩 : 차곡차곡 쌓는다.

메소드 오버로딩의 조건 :

1.반드시 매개변수의 갯수가 달라야 함.
ex)
void sum(int a) { };
void sum(int a, int b) { };

2.반드시 매개변수의 자료형이 달라야 함.
ex)
void sum(int a) { };
void sumd(double a) { };

  1. 반드시 매개변수의 갯수와 자료형이 일치하면 나열순서가 달라야 한다.
    ex)
    void sum(int a, String b) { };
    void sum(String b, int a) { };

  2. 메소드의 이름이 동일해야 함.

// 예시
public class Ex04 {


	static void prn(int x, int y, int z) { // 메소드 선언문
// void와 return을 통해 반환값을 예측할 수 있음.		
		System.out.println("매개변수 3개");
		System.out.println((x + "\t" + y + "\t" + z));
	}
	
	static void prn(int x, int y) {
		System.out.println("매개변수 2개");
		System.out.println(x + "\t" + y);
	}
	
	static void prn(int x) {
		System.out.println("매개변수 1개");
		System.out.println(x);
	}
	
	public static void main(String[] args) { // 자바는 메인이라는 메소드만 읽는다.
		prn(10,20,30); // 메소드 호출문
		prn(40,50);
		prn(60);

	}

}

public class ex05 {

	static void printstr(String str) {
		System.out.println(str);
	}
	
	static void printstr(char ch, int cnt) {
		for(int i = 0; i < cnt; i++)
			System.out.print(ch);
		System.out.println();
	}
	
	public static void main(String[] args) {
		printstr("하늘은 파랗다.");
		printstr('A',10);

	}

}

0개의 댓글