![article thumbnail image](https://blog.kakaocdn.net/dn/eRhiUo/btrMFhgeFV0/YIkDrECzAOKFec0ZzhFEM0/img.png)
■ 메서드(method)
객체의 행위를 표현하기 위한 것
기능을 수행하기 위해 클래스 안에서 정의되는 것
유지보수 편리
코드를 줄일 수 있다.
함수
f(x) (function)
매개변수 -> 메서드 로직 -> 리턴값
3 f(x)=2x 6
메인 밖에다 만든다
public static int sum( int a, int b){
int result = a+b;
return result;
}
public static void main(String[] args){
sum(5,10);
}
public(공공의) :접근 제한자 - 누가 나한테 접근 할 수 있는지 권한을 주는 기능
static : 저장소
int(자료형) : 리턴 타입 결과값의 데이터 타입이 뭔지에 대해 명시하는 곳( 결과값으로 int로 돌려준다 )
sum : 메서드명 어떤 이름으로 호출/사용 할 것인지 명시하는 곳(변수명(호출명)과 비슷하다)
(int a, int b) : 매개변수 선언 (메서드 안에서 사용되는 변수)== 파라미터
{
int result = a+b;
return result;
}
자료형(int)이 리턴타입에 명시 되어있으면 return이 꼭 붙어야함
실행하고 싶으면 메인 메서드에서 실행한다.
(5,10) : 전달인자(arguments)
매개변수 와 전달인자의 수 는 같아야한다!
전달인자 -> 매개변수 -> 결과값 -> 리턴값 -> 메서드명 ->메인 메서드
메서드 설명코드
package 메서드;
public class ex01메서드 {
public static void main(String[] args) {
// 내가 만든 메서드를 실행시키는 곳
sum(1,2);
sum(5,7);
sum(123,723);
sum(532,754);
sum(535,798);
sum(522,711);
}
// 메서드는 main밖
// 메서드를 작성하는 부분
public static void sum(int num1, int num2) {
// return num1 + num2;
// 리턴타입이 없는경우
// void : 기능을 돌려줄때 사용
// : 출력/반복등
// main에 있는 코드는 손대지않고 +10이 된 결과값을 출력하게 만들어보자
System.out.println(num1+num2+10);
// 메서드의 구조
// 1) public : 접근 제한자
// (클래스 내/외부에서 접근할 수 있도론 하는 접근 제한자)
// 2) static : 저장소(공용 저장공간/ 매우 작은 공간)
// 3) int : 리턴타입(돌려주는 결과값의 데이터 타입)
// ex)int, String, char, boolean, long....
// 단, 리턴타입에 자료형이 명시되어있으면 return이라는 키워드 꼭 넣어주기!
// 4) sum : 메서드명(호출명)
// 5) (int num1, int num2) : 매개변수(parameter)
// 메서드 안에서 사용 될 변수, main으로 부터 받아온 값
}
}
리턴타입 있고 매개변수 있는 예제
package 메서드;
public class ex02매o리o {
public static void main(String[] args) {
// 메서드 호출하는 곳
add(2,4);
// 값은 받아오기만 한 상태
// 출력문에 넣어야 어떤 값을 가지고 돌아왔는지 확인 할 수 있다.
System.out.println(add(2,4));
}
// main 밖
// 메서드 만드는 곳
public static int add(int a, int b) {
return a+b;
}
}
매개변수 있고 리턴타입 없는 예제
package 메서드;
public class ex03매o리x {
public static void main(String[] args) {
// System.out.println(printadd(2,4));
// 출력하는 기능을 출력하는 방법은 불가능
printadd(2,4);
// printadd는 출력하는 기능도 포함되어있어서
// 따로 출력문으로 감싸지 않아도 콘솔창에 결과값을 확인 할 수 있다.
}
//매서드 : printadd
public static void printadd(int a, int b) {
// void가 리턴타입으로 왔을때,
// return 키워드 오지 않는다.
// void - 기능 자체를 가지고 있는 메서드
System.out.println(a+b);
}
}
매개변수 없고 리턴타입이 있는 예제
package 메서드;
public class ex04매x리o {
public static void main(String[] args) {
// 내 이름을 돌려주는 메서드
// getName()
System.out.println(getName());
}
public static String getName() {
return "박동명";
}
}
매개변수 없고 리턴타입 없는 예제
package 메서드;
public class ex05매x리x {
public static void main(String[] args) {
// 매개변수x, 리턴타입x
// todayWeather() -> "오늘 광주는 하루종일 맑음"을 출력
todayWeather();
}
public static void todayWeather() {
System.out.println("오늘 광주는 하루종일 맑음");
}
}
덧셈,뺄셈,나눗셈,곱셈이 가능한 메서드를 작성해보자.
package 메서드;
public class ex06메서드 {
public static void main(String[] args) {
add(3,5);
sub(3,5);
mul(3,5);
div(3,5);
}
public static void add(int a, int b) {
System.out.println(a+b);
}
public static void sub(int a, int b) {
System.out.println(a-b);
}
public static void mul(int a, int b) {
System.out.println(a*b);
}
public static void div(int a, int b) {
System.out.println(a/b);
}
}
예제) 2개의 양수를 받아 2개의 숫자 중 더 큰 수를 반환하는 메소드 lagerNumber()을 만들어 보세요
(만약 두 숫자가 같다면 0을 반환)
실습 코드
package 메서드;
public class ex07메서드 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 10;
int result = largerNumber(num1,num2);
System.out.println("큰 수 확인 : "+result);
}
public static int largerNumber(int num1, int num2) {
int largerNumber = 0;
if(num1>num2) {
largerNumber = num1;
}else if(num1<num2) {
largerNumber = num2;
}else {
largerNumber = 0;
}
return largerNumber;
}
}
정답화면
package 메서드;
public class ex07메서드 {
public static void main(String[] args) {
int num1 = 11;
int num2 = 10;
int result = largerNumber(num1,num2);
System.out.println("큰 수 확인 : "+result);
}
// largerNumber
public static int largerNumber(int num1, int num2) {
if(num1>num2) {
return num1;
}else if(num1<num2) {
return num2;
}else {
return 0;
}
}
}
ps.객체지향 배우기 기본인 메서드를 잘 배워서 JDBC까지 잘 할수 있도록 복습하자!
'Study > JAVA' 카테고리의 다른 글
JAVA기초 11일차 <객체지향> (1) | 2022.09.24 |
---|---|
JAVA기초 10일차 <메서드> (0) | 2022.09.24 |
JAVA기초 8일차 <이차원 배열> (1) | 2022.09.24 |
JAVA 기초 7일차 <배열> (1) | 2022.09.21 |
JAVA 기초 6일차 <배열> (0) | 2022.09.19 |