Small Grey Outline Pointer Java 메서드
본문 바로가기
Dev./java

Java 메서드

by sso. 2022. 5. 8.

method 메서드의 정의

 

함수라고도 불리는 메소드는 특정한 작업이나 논리를 구성하는 코드를 괄호로 묶어 놓은 것

다른 언어의 <함수> 같은 개념

 

 

<메서드의 사용>

 

이름(): 메서드
단, 키워드() 는 메서드가 아니다 자바 예약명이다 ex, for() if() switch() 등등

f (x) = 2x+1
메서드 매개변수 리턴값
이름

f(1) 통채로를 리턴값으로 볼 줄 알아야한다
단, 리턴값이 있을 경우만!


<메서드의 선언>
1) 리턴타입 메서드명(자료형 매개변수1,....) {
실행할 문장
return 리턴값;
  }

2) 리턴타입 메서드명(자료형 매개변수1,....){
실행할 문장
}

3) void 메서드명(){
실행할문장
}


메서드 선언 순서
1. 메서드 명을 생각한다
2. 매개변수를 생각한다
2. 실행할 문장과 리턴값을 생각한다



메서드 작성
int add(int num1, int num2){
syso("덧셈 메서드 입니다")
return num1+num2;
}

================================
메서드 실행
int result = add(3, 7);
syso(result);

 




메서드 생성하고 호출하기

package day10;

public class MethodTest {
	
	static int add(int num1, int num2){
		System.out.println("add 메서드 입니다.");
		return num1+num2;
	}
	
	public static void main(String[] args) {
		//컴파일 하자마자 자동으로 실행되는 메서드가 바로 main메서드이다
		//add(3,7);
		System.out.println(add(3,7));
	}
}

add 메서드 입니다.
10


 

 

메서드의 소속을 알려주어 사용하기

package day10;

public class MethodTest {
	
	int add(int num1, int num2){
		System.out.println("add 메서드 입니다.");
		return num1+num2;
	}
	
	public static void main(String[] args) {
		//컴파일 하자마자 자동으로 실행되는 메서드가 바로 main메서드이다
		MethodTest m = new MethodTest();
		System.out.println(m.add(5, 7));
	}
}

add 메서드 입니다.
12

 

MethodTest 클래스 안에 있는 add메서드를 불러오기 위해서

MethodTest m = new MethodTest();

그 후에 m뒤에 점을 찍으면 자동으로 add메서드가 나오는 것을 확인할 수 있다

m.add(5, 7) => 통째로를 리턴값으로 볼 줄 알아야 한다

System.out.println(m.add(5, 7));

 

 

 


 

 

메서드 주의사항
1. 매개변수가 없는 메서드는 외부에서 값을 전달받을 수 없다
2. 리턴값이 있는 메서드는 사용시 전체를 리턴값으로 보자
3. 메서드 내부에 다른 메서드를 선언할 수 없다 (단 , 사용은 가능하다)
4. 메서드 선언시 매개변수는 저장공간이고 사용시에는 값을 그 자리 순서에 맞게 넣어준다

 

가급적이면 매개변수와 인자를 일치시켜서 작성하는 것이 좋다

매개변수가 없는 메소드는 출력 되지 않는다

 

전역변수: 어디서든 사용 가능한 변수

지역변수: 특정 지역 안에서 선언되어 그 지역 안에서만 사용할 수 있는 변수. 그 지역이란, 중괄호 {}

지역 변수는 선언과 동시에 메모리 공간이 할당 되지만, 중괄호를 빠져나가면 그와 동시에 소멸

 

 

 


 

 

package javaFirstClass;

public class method_prac { //method 기능상자

	public static void aaa(String[] args) {
		// TODO Auto-generated method stub
		
		int num1=1;
		int num2=7;
		System.out.println("1+7=" + (num1 + num2));
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int num1=5;
		int num2=7;
		System.out.println("5+7=" + (num1 + num2));
	}
	//자바의규칙 : 모든 프로그램의 시작은 main 메서드 부터 시작한다!
	
	public static void bbb(String[] args) {
		// TODO Auto-generated method stub
		
		int num1=2;
		int num2=7;
		System.out.println("2+7=" + (num1 + num2));
	}
				


}

aaa -> main -> bbb

순서대로 진행되는 것이 아닌, 자바에서는 main 메서드부터 시작한다

 

 

package javaFirstClass;

public class method_prac { //method 기능상자

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double myHeight=173.5;
		hiEveryone(30, 160.5);
		hiEveryone(40, myHeight); //40, myHeight => 매개변수(파라미터)
		byeEveryone();
		}
	
	public static void hiEveryone(int age, double height) { //int age, double height => 인자
		
		
		System.out.println("좋은 저녁 입니다");
		System.out.println("제 나이는 " + age + "세 입니다.");
		System.out.println("제 키는 " + height + "cm 입니다.");

	}
	public static void byeEveryone() {
		
		System.out.println("See you again!!");

	}	
	
}

좋은 저녁 입니다
제 나이는 30세 입니다.
제 키는 160.5cm 입니다.
좋은 저녁 입니다
제 나이는 40세 입니다.
제 키는 173.5cm 입니다.
See you again!!

 

 

package javaFirstClass;

public class 메소드_03 {
	//지역변수
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		boolean ste=true;
		int num1=11;
		
		if(ste) {
			//int num1 =22; 주석을 해제하면 컴파일 오류 발생
			int num2=22; //중복 선언이 아니므로 문제 없이 출력 됨
			num1++;
			System.out.println(num1);
		}
		{
			int num2=33;
			num2++;
			System.out.println(num2);
			//이처럼 영역이 다르더라도, 변수 이름을 중복하여 선언하는 것은 좋은 코드가 아니다!!
		}
	}

}

12
34

 

영역이 다르더라도, 변수 이름을 중복하여 선언하는 것은 좋은 코드가 아니다!!

 

 

 

package javaFirstClass;

public class factorial재귀호출 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//팩토리얼 = 3! = 3*2*1
		System.out.println("3 factorial: " + factorial(3));
		System.out.println("12 factorial: " + factorial(12));
	}
	public static int factorial(int n) {
		if(n == 1) {
			return 1;
		}
		else {
			return n*factorial(n-1);
		}
	}

	
	
}

 

728x90

'Dev. > java' 카테고리의 다른 글

Java 형변환  (0) 2022.05.10
Java 복습문제 02  (0) 2022.05.09
java 복습 문제  (0) 2022.05.04
클래스패스 (class path)/ Package  (0) 2022.05.02
자바의 이름 규칙 / 생성자  (0) 2022.05.02

댓글