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
반응형

+ Recent posts