IT Developer/Java

Java 기초 <4. 메서드, 생성자, 접근제어자 정리>

TEMA_ 2025. 3. 5. 09:27
반응형

자바 Java

4. 메서드, 생성자, 접근제어자 정리

 

안녕하세요! 태마입니다.

Java 기초 강좌입니다.

 

강좌의 경우 

1. 주제 간단 정리

2. 상세 주제 정리

으로 이루어져 있습니다.

 

자바 Java

포스팅 시작하겠습니다 :)

1. 주제 간단 정리

 

1. 메서드(Method)란?

메서드는 특정 기능을 수행하는 코드 블록입니다.
메서드를 사용하면 코드의 재사용성을 높이고, 유지보수를 쉽게 할 수 있으며, 프로그램을 모듈화할 수 있습니다.

메서드 선언 형식

접근제어자 반환타입 메서드이름(매개변수) {
    실행할 코드;
    return 반환값; // 반환값이 없을 경우 void 사용
}

반환 타입 (Return Type) : 메서드가 실행 후 반환하는 값의 타입을 정의합니다. void는 반환값이 없음을 의미합니다.
매개변수 (Parameter) : 메서드가 필요한 데이터를 입력받는 변수입니다.

메서드 예제

public class MethodExample {
    // 두 수의 합을 반환하는 메서드
    public static int add(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        int result = add(5, 10);
        System.out.println("결과: " + result); // 15 출력
    }
}

📌 메서드를 사용하면 동일한 로직을 여러 번 작성할 필요 없이 호출하여 재사용 가능!


 

2. 메서드 오버로딩(Method Overloading)

메서드 오버로딩은 같은 이름의 메서드를 여러 개 정의할 수 있게 하는 기능입니다.
매개변수의 개수 또는 타입이 다르면 다른 메서드로 인식됩니다.
메서드 이름은 같지만 매개변수의 타입이나 개수가 다르면 컴파일러는 이를 구분하고 적절한 메서드를 호출합니다.

메서드 오버로딩 예제

public class OverloadingExample {
    public static int add(int a, int b) {
        return a + b;
    }

    public static double add(double a, double b) {
        return a + b;
    }

    public static void main(String[] args) {
        System.out.println(add(5, 10)); // 정수 덧셈
        System.out.println(add(3.5, 2.5)); // 실수 덧셈
    }
}

📌 오버로딩을 활용하면 같은 기능을 하는 메서드를 다양한 방식으로 사용할 수 있음!


 

3. 생성자(Constructor)란?

생성자는 객체가 생성될 때 자동으로 호출되는 특별한 메서드입니다.
객체 초기화의 역할을 하며, 클래스 이름과 동일하고 반환값이 없습니다.
✔ 생성자는 클래스의 인스턴스를 생성할 때 필수적으로 호출되며, 객체의 초기 상태를 설정하는 데 유용합니다.

생성자 예제

 
class Person {
    String name;

    // 생성자 정의
    public Person(String name) {
        this.name = name;
    }
}

public class ConstructorExample {
    public static void main(String[] args) {
        Person p = new Person("John");
        System.out.println(p.name); // John 출력
    }
}

생성 시 자동으로 초기화 가능!


 

4. 생성자 오버로딩(Constructor Overloading)

생성자 오버로딩은 여러 개의 생성자를 정의하여 객체를 다양한 방식으로 초기화할 수 있게 하는 기능입니다.
각각 다른 매개변수를 가진 생성자를 정의함으로써 객체를 다른 방법으로 초기화할 수 있습니다.

생성자 오버로딩 예제

class Car {
    String model;
    int year;

    // 기본 생성자
    public Car() {
        this.model = "Unknown";
        this.year = 2000;
    }

    // 매개변수가 있는 생성자
    public Car(String model, int year) {
        this.model = model;
        this.year = year;
    }
}

public class ConstructorOverloadingExample {
    public static void main(String[] args) {
        Car car1 = new Car(); // 기본 생성자 호출
        Car car2 = new Car("Tesla", 2023); // 매개변수가 있는 생성자 호출

        System.out.println(car1.model + " - " + car1.year);
        System.out.println(car2.model + " - " + car2.year);
    }
}

📌 생성자 오버로딩을 활용하면 객체를 다양한 방식으로 초기화 가능!


 

5. 접근제어자(Access Modifier) – 클래스와 멤버의 접근 범위 제어

접근제어자같은 클래스같은 패키지다른 패키지의 자식 클래스외부 클래스

public
protected
default(없음)
private

📌 private 변수는 직접 접근할 수 없으며, getter/setter를 통해 접근 가능!

반응형

2. 상세 주제 정리

 

1. 메서드의 다양한 활용

메서드에 매개변수 전달하기

public class ParameterExample {
    public static void printGreeting(String name) {
        System.out.println("Hello, " + name);
    }

    public static void main(String[] args) {
        printGreeting("John"); // Hello, John 출력
    }
}

📌 매개변수를 활용하면 메서드에서 외부 데이터를 받아 작업을 수행할 수 있습니다.

메서드 반환값 활용하기

public class ReturnValueExample {
    public static int add(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        int sum = add(10, 20);
        System.out.println("합: " + sum); // 30 출력
    }
}

📌 메서드가 반환하는 값을 활용하여 코드 흐름을 제어하거나 연산을 계속할 수 있습니다.


 

2. 생성자 활용하기

객체의 초기 상태 설정하기

class Book {
    String title;
    String author;

    public Book(String title, String author) {
        this.title = title;
        this.author = author;
    }

    public void printDetails() {
        System.out.println("책 제목: " + title);
        System.out.println("저자: " + author);
    }
}

public class ConstructorExample {
    public static void main(String[] args) {
        Book book = new Book("Java Programming", "John Doe");
        book.printDetails();
    }
}

📌 생성자를 사용하여 객체를 생성하면서 동시에 초기화할 수 있습니다.


 

3. 접근제어자 활용하기

private 접근제어자

class Person {
    private String name;

    // Getter 메서드
    public String getName() {
        return name;
    }

    // Setter 메서드
    public void setName(String name) {
        this.name = name;
    }
}

public class AccessModifierExample {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("John");
        System.out.println(person.getName()); // John 출력
    }
}

📌 private 변수는 직접 접근할 수 없으므로 getter와 setter 메서드를 통해 접근합니다.


 

지금까지 Java의 메서드, 생성자, 접근제어자 개념을 완벽하게 정리했어요!
👉 "이제 객체지향 4대 원칙을 배우고 싶다면?"
다음 회차에서 객체지향 개념을 배우러 갑시다!

반응형