Java 메서드, 변수, 메서드 오버로딩 정리

My Pale Blue Dot·2025년 3월 4일
0

JAVA

목록 보기
11/35
post-thumbnail

📅 날짜

2025-03-04

📝 학습 내용


📌메서드의 다양한 형태

Java에서 메서드(Method)입력(매개변수)출력(반환값) 의 유무에 따라 여러 형태로 나뉜다.
메서드는 특정 작업을 수행하는 코드 블록으로, 코드의 재사용성을 높이고 유지보수를 용이하게 한다.

🔹 메서드의 기본 구조

반환타입 메서드이름(매개변수) {
    실행할 코드;
    return 반환값;
}

🔹 메서드 형태별 정리

메서드 형태설명예제 코드
매개변수 O, 반환값 O입력 값을 받아 연산 후 결과 반환int sum(int x, int y) { return x + y; }
매개변수 X, 반환값 O내부에서 입력을 받아 결과 반환int getRandomNumber() { return new Random().nextInt(); }
매개변수 O, 반환값 X입력 값을 받아 내부에서 실행만 수행void printMessage(String msg) { System.out.println(msg); }
매개변수 X, 반환값 X실행만 하고 값 반환 없음void sayHello() { System.out.println("Hello!"); }

예제 코드

import java.util.Scanner;

class MethodExample {
    // 매개변수 O, 반환값 O
    int sum(int x, int y) {
        return x + y;
    }

    // 매개변수 X, 반환값 O
    int sumFromUserInput() {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        sc.close();
        return a + b;
    }

    // 매개변수 O, 반환값 X
    void printSum(int x, int y) {
        System.out.println("Sum: " + (x + y));
    }

    // 매개변수 X, 반환값 X
    void printMessage() {
        System.out.println("Hello, Java!");
    }
}

📌변수의 종류와 범위

Java에서 변수는 선언 위치에 따라 사용 범위(Scope) 가 달라진다.
변수의 사용 범위를 이해하면 메모리 관리코드 안정성을 높일 수 있다.

🔹 변수의 종류

변수 유형선언 위치생명 주기특징
멤버 변수클래스 내부객체가 존재하는 동안 유지this 키워드를 통해 접근 가능
지역 변수{} 블록 내부해당 블록이 끝나면 소멸메서드 내부에서만 사용 가능
매개변수메서드의 인자메서드가 실행될 때 생성됨메서드 호출 시 전달된 값 저장
static 변수클래스 내부 (static 키워드 사용)프로그램 종료 시까지 유지모든 객체가 공유

예제 코드

class VariableExample {
    int instanceVar = 10; // 멤버 변수
    static int staticVar = 20; // static 변수

    void method(int paramVar) { // 매개변수
        int localVar = 30; // 지역 변수
        System.out.println("멤버 변수: " + instanceVar);
        System.out.println("static 변수: " + staticVar);
        System.out.println("매개변수: " + paramVar);
        System.out.println("지역 변수: " + localVar);
    }
}

🔹 this 키워드 활용

  • 멤버 변수와 지역 변수가 같은 이름일 경우 this를 사용하여 멤버 변수를 구별할 수 있음.
class Person {
    String name;

    void setName(String name) {
        this.name = name; // this를 사용하여 멤버 변수에 접근
    }
}

📌메서드 오버로딩 (Method Overloading)

🔹 메서드 오버로딩이란?

메서드 오버로딩(Method Overloading)같은 이름의 메서드를 매개변수의 개수나 타입에 따라 다르게 정의하는 기법이다.
즉, 같은 기능을 하는 메서드를 여러 형태로 제공할 수 있다.

오버로딩 조건

  1. 메서드 이름은 같아야 함
  2. 매개변수의 개수 또는 타입이 달라야 함
  3. 반환 타입만 다르면 오버로딩이 적용되지 않음!

예제 코드

class OverloadingExample {
    // 2개의 정수를 더하는 메서드
    int sum(int x, int y) {
        return x + y;
    }

    // 3개의 정수를 더하는 메서드
    int sum(int x, int y, int z) {
        return x + y + z;
    }

    // 3개의 실수를 더하는 메서드 (double 타입)
    double sum(double x, double y, double z) {
        return x + y + z;
    }
}

public class OverloadingTest {
    public static void main(String[] args) {
        OverloadingExample obj = new OverloadingExample();
        System.out.println("sum(10, 20) 결과: " + obj.sum(10, 20));
        System.out.println("sum(10, 20, 30) 결과: " + obj.sum(10, 20, 30));
        System.out.println("sum(10.5, 20.5, 30.5) 결과: " + obj.sum(10.5, 20.5, 30.5));
    }
}

🔹 출력 결과

sum(10, 20) 결과: 30
sum(10, 20, 30) 결과: 60
sum(10.5, 20.5, 30.5) 결과: 61.5

🔗 참고 자료

💡 느낀 점

  • 메서드는 입력(매개변수)과 출력(반환값)에 따라 다양한 형태로 정의할 수 있다.
  • this 키워드를 활용하면 멤버 변수와 지역 변수를 구분할 수 있다.
  • 메서드 오버로딩은 코드의 가독성을 높이고 재사용성을 증가시키는 중요한 개념이다.
  • 오버로딩은 매개변수의 개수나 타입이 다를 때만 적용되며, 반환 타입만 다르면 적용되지 않는다.

📌 요약

  • 메서드는 입력(매개변수)과 출력(반환값)에 따라 다양한 형태로 정의 가능
  • 변수의 범위(멤버 변수, 지역 변수, 매개변수, static 변수) 구분 필요
  • this 키워드를 활용하여 멤버 변수와 지역 변수 구분
  • 메서드 오버로딩을 활용하면 같은 기능을 하는 메서드를 다양한 형태로 사용할 수 있음

profile
Here, My Pale Blue.🌏

0개의 댓글