728x90
반응형
메소드(method)
메소드(method) : Java의 클래스에서 기능을 처리할 수 있도록 해주는 역할 | ||
선언 | - class 안에서만 선언됨. - 자바의 메소드는 반드시 선언이 되어 있어야 사용가능. - 메소드는 무조건 호출을 해야 실행된다 (자동실행 x) * 단 main메소드는 JVM이 자동실행 - main메소드 내에서 실행 순번 확인 - return타입을 기술하는 곳이 존재 |
|
공식지정 | [접근제어자] [기타제어자] 리턴타입 메소드명([매개변수자료형 매개변수명, ...]){ // 생략가능 실행문들 ; ... [return 리턴할 값;] } //<필수>(){} |
public static void sum(int a, int b){ int result = a + b ; System.out.println(result) ; } |
리턴타입 - void - [리턴할 값 사용x] 돌려줄 값의 자료형 : String, int ~ |
||
메소드호출문 형식 | <공식사용> 메소드형([매개값...]); | sum(5, 10) ; |
메소드호출문 기능 | 1. 메소드를 실행시킴 2. 리턴값을 받는 공간 |
|
매소드호출시 지켜야할 사항 |
메소드의 이름 매개변수 갯수 매개변수 자료형 매개변수 나열순서(선언된 자료형 순서대로, 자료형 갯수만큼) |
매개변수 / 매개인자 |
JDK (Java Development Kit) | |
JVM (Java Virtual Machine) | main ( ) 메소드 호출기능 |
~~명 지울 수 있다.
Ex01
method
static void hello_func( ) { System.out.println(" Hello World! "); } public static void main(String[] args) { hello_func(); System.out.println("main메소드 실행"); } |
Hello World! main메소드 실행 |
static String hello_func( ) { return " Hello World! "; } public static void main(String[] args) { System.out.println(hello_func()]); System.out.println("main메소드 실행"); } |
Hello World! main메소드 실행 |
Ex02
method
static void sum(int a, int b) { int c; c = a + b ; System.out.println("a + b = " + c); } public static void main(String[] args) { int a=10, b=20; sum( a, b); //sum(10,20) } |
a + b = 30 |
static void sum(int a, int b) { int c; c = a + b ; System.out.println("a + b = " + c); } public static void main(String[] args) { int x=10, y=20; sum( x, y); //메소드를 실행 sum( 4, 5); } |
a + b = 30 a + b = 9 |
Memory
Memory | ||
Stack | Heap | Method/Class/Static |
임시적인 데이터 변수, 매개변수 |
객체(instance) | package.Ex01… 연산순서 |
Ex03
method return
public static void main(String[] args) { System.out.println(abs(-5)); } //동일한 class 이내라 소속 밝힐 필요x //[절대값구하기] static int abs(int x) { int y ; if (x > 0) { //{생략가능 y = -x; } else { y= x; } return y; //값을 return문으로 반환.돌려주는 값 존재 } |
-5 |
public static void main(String[] args) { int a = -5, result; result = abs(a); System.out.println(a + "의 절대값은 " + result); System.out.println(10 + "의 절대값은 " + abs(10)); } static int abs(int x) { int y ; if (x > 0) y = -x; else y= x; return y; //값을 return문으로 반환 } |
-5의 절대값은 -5 10의 절대값은 -10 |
소스코드가 길때에는 main메소드만 보고
한 줄 한 줄 씩 해석한다.
메소드 오버로딩(Method Overloading)
메소드 오버로딩(Method Overloading) : 동일한 이름의 메소드를 한 class에 여러 개 만들어 두는 것 | |
<필수1> 매개변수의 갯수가 달라야 함. |
void sum(int a){ } ① void sum(int a, int b){ } ① ② |
<필수1> 매개변수의 자료형이 달라야 함. |
void sum(int a){ } void sum(double a){ } |
<필수1> 매개변수의 갯수와 자료형이 일치하면 나열 순서가 달라야 한다. |
void sum(int a, String b){ } ↙ void sum(String b, int a){ } |
메소드의 이름이 동일해야 한다. **return타입 상관없이 |
Ex04
메소드 오버로딩
static void prn(int x, int y, int z) { System.out.println(x + "\t" + y + "\t" + z); } static void prn(int x, int y) { System.out.println(x + "\t" + y); } static void prn(int x) { System.out.println(x); } //선언 public static void main(String[] args) { prn(10, 20, 30); prn(40, 50); prn(60); } //호출 |
매개변수3개 10 20 30 매개변수2개 40 50 매개변수1개 60 |
Ex05
method return
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); } |
하늘은 파랗다. AAAAAAAAAA |
static int add(int a, int b) { return a*b; } public static void main(String[] args) { int a = 7; int result = add(5, 7); System.out.println(result); //35 } |
35 |
static int add(int a, int b) { return a*b; } public static void main(String[] args) { int a = 7; System.out.println( add(5, 7) ); //35 } //계산된 return값이 있기에 별도의 계산식없이 출력가능 |
728x90
반응형
'[JAVA]' 카테고리의 다른 글
[20231219] 7일차 오전 Constructor (0) | 2023.12.19 |
---|---|
[20231218] 6일차 오후 method overloading class (0) | 2023.12.18 |
[20231215] 5일차 오후 배열 (0) | 2023.12.15 |
[20231215] 5일차 오전 반복문 배열 (0) | 2023.12.15 |
[20231214] 4일차 오후 - do ~while, for문 (0) | 2023.12.14 |