[Programmers 백엔드 데브코스]2일차 , 자바 자료형 메모리 등등
📌 Java의 함수(Function), 메서드(Method), 오버로딩(Overloading), 람다 표현식(Lambda Expression), 제어문(Control Flow Statement) 깊이 있게 이해하기
이 문서에서는 Java 프로그래밍 언어의 함수와 메서드, 오버로딩, 람다 표현식, 제어문에 대해 상세히 설명합니다. 각 개념의 정의와 동작 원리를 살펴보고, 구체적인 예제 코드를 통해 이해를 돕겠습니다. 또한 개념별 활용 사례와 장단점을 알아보고, 함수와 메서드의 차이점을 명확히 비교해보겠습니다.
🔸 함수(Function)
함수는 특정 작업을 수행하거나 값을 계산하는 독립적인 코드 블록입니다. 함수를 사용하면 반복되는 코드 작성을 피하고 코드의 재사용성과 유지보수성을 높일 수 있습니다.
Java에서는 엄밀히 말해 함수가 존재하지 않으며, 모든 것은 클래스 내에 정의된 메서드 형태로 존재합니다. 그러나 static 메서드를 사용하면 객체 없이도 독립적인 함수처럼 호출할 수 있습니다.
✅ 예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
public class Util {
public static int add(int x, int y) {
return x + y;
}
}
public class Main {
public static void main(String[] args) {
int result = Util.add(5, 3);
System.out.println("결과: " + result); // 출력: 결과: 8
}
}
🔸 메서드(Method)
메서드는 객체의 상태를 변경하거나 객체 정보를 처리하는 기능을 제공하는 코드 블록으로, 클래스 내부에 정의됩니다.
✅ 예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Counter {
private int count = 0;
public void increment() {
count++;
}
public int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) {
Counter cnt = new Counter();
cnt.increment();
cnt.increment();
System.out.println(cnt.getCount()); // 출력: 2
}
}
🔸 함수와 메서드의 차이점
구분 | 함수 | 메서드 |
---|---|---|
소속 여부 | 독립적 | 클래스나 객체에 속함 |
호출 방법 | 이름만으로 호출 | 객체 인스턴스나 클래스 이름으로 호출 |
데이터 접근 | 주어진 인자 사용 | 객체의 상태(필드)에 접근 가능 |
사용 범위 | 절차지향적 프로그래밍 | 객체 지향 프로그래밍 |
🔸 오버로딩(Overloading)
오버로딩은 같은 이름의 메서드를 다양한 매개변수 형태로 정의하여 코드의 유연성을 높이는 기법입니다.
✅ 예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Calc {
public int sum(int a, int b) {
return a + b;
}
public double sum(double a, double b) {
return a + b;
}
public int sum(int a, int b, int c) {
return a + b + c;
}
}
public class Main {
public static void main(String[] args) {
Calc calc = new Calc();
System.out.println(calc.sum(1, 2)); // 3
System.out.println(calc.sum(1.5, 2.3)); // 3.8
System.out.println(calc.sum(1, 2, 3)); // 6
}
}
🔸 람다 표현식(Lambda Expression)
람다 표현식은 익명 함수를 간결하게 표현한 Java 8 이후의 기능입니다.
✅ 예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@FunctionalInterface
interface MathOperation {
int operation(int a, int b);
}
public class Main {
public static void main(String[] args) {
MathOperation addition = (a, b) -> a + b;
MathOperation multiplication = (a, b) -> a * b;
System.out.println("Addition: " + addition.operation(5, 3)); // 출력: Addition: 8
System.out.println("Multiplication: " + multiplication.operation(5, 3)); // 출력: Multiplication: 15
}
}
🔸 제어문(Control Flow Statement)
제어문은 프로그램의 흐름을 조건에 따라 분기하거나 반복하여 제어할 때 사용하는 구문입니다. Java에서 사용하는 주요 제어문은 다음과 같습니다.
- 조건문: if, else if, else, switch
- 반복문: for, while, do-while
- 분기문: break, continue, return
✅ 예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class ControlFlow {
public static void main(String[] args) {
int number = 5;
// 조건문 예시
if (number > 0) {
System.out.println("양수입니다.");
} else if (number == 0) {
System.out.println("0입니다.");
} else {
System.out.println("음수입니다.");
}
// 반복문 예시
for (int i = 1; i <= 5; i++) {
System.out.println("반복 횟수: " + i);
}
// 분기문 예시
int sum = 0;
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // 짝수는 제외
}
sum += i;
if (sum > 10) {
break; // 합계가 10을 넘으면 중단
}
}
System.out.println("최종 합계: " + sum);
}
}
Leave a comment