Java 매소드
public class Main {
static void myMethod(){
}
public static void main(String[] args){
}
}
Java 매소드의 기본 꼴
public class Main {
static void myMethod(){
System.out.println("I just got executed!");
}
public static void main(String[] args){
myMethod();
}
}
myMethod() 매소드를 정의해주고,
$ javac Main.java
$ java Main
I just got executed!
컴파일 뒤에 실행해주었다.
자바 매소드의 인수
- 파라미터가 있는 함수
public class Main {
static void myMethod(){
System.out.println("I just got executed!");
}
static void withParameter(String fname){
System.out.println(fname + " Hi");
}
public static void main(String[] args){
myMethod();
withParameter("YoungZoo");
}
}
- 파라미터 : 함수를 정의하는 부분에서 String fname
- argument : 함수에 전달된 인수 Liam, Jenny, Anja ...
- 파라미터를 여러 개 갖는 함수
public class Main {
static void myMethod(){
System.out.println("I just got executed!");
}
static void withParameter(String fname, int age){
System.out.println(fname + " Hi" + age);
}
public static void main(String[] args){
myMethod();
withParameter("YoungZoo", 22);
}
}
- return value
public class Main {
static void myMethod(){
System.out.println("I just got executed!");
}
static void withParameter(String fname, int age){
System.out.println(fname + " Hi" + age);
}
static int returnInt(int x){
return 5 + x;
}
public static void main(String[] args){
myMethod();
System.out.println(returnInt(7));
withParameter("YoungZoo", 22);
}
}
자바 매소드 오버로딩
매소드 오버로딩을 통해 같은 이름을 가진 매소드가 파라미터를 달리하며 여러 개 존재할 수 있다.
예를 들면 이런 식이다.
static int overLoad(int x)
static float overLoad(float x)
static double overLoad(double x, double y)
전체를 정의해보자.
자바 스코프(scope)
- block을 감싸는 범위가 scope
자바 재귀함수
자바는 rec와 같은 예약어 없이도 재귀함수를 정의해줄 수 있다.
그냥 매소드 안에서 매소드(파라미터)를 다시 전달해주면 끝인 것이다.
public class Main {
public static void main(String[] args){
int result = sum(10);
System.out.println(result);
}
public static int sum(int k){
if (k>0){
return k + sum(k-1);
}
else {
return 0;
}
}
}
재귀함수가 무한루프에 빠지는 걸 막기 위해서 종료 조건을 설정해주는 것이 좋다.
'Computer Science > Java' 카테고리의 다른 글
디자인 패턴, 클린 코드, OOP 클린 코드 원리 SOLID 개념과 예시 (0) | 2022.11.01 |
---|---|
W3Schools 자바 | #2 OOP(Classes, Attributes, Methods) (1) | 2022.09.08 |
W3Schools 자바 | #0 자바 튜토리얼 (입출력, 주석, 변수, 타입, 연산자 등) (1) | 2022.09.01 |
Java | 객체 지향 디자인 패턴 (0) | 2022.05.24 |