자바 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대 원칙을 배우고 싶다면?"
✅ 다음 회차에서 객체지향 개념을 배우러 갑시다!
'IT Developer > Java' 카테고리의 다른 글
Java 기초 <9. 멀티스레딩과 동시성 프로그래밍> (1) | 2025.03.10 |
---|---|
Java 기초 <8. 예외 처리와 사용자 정의 예외> (0) | 2025.03.09 |
Java 기초 <7. 컬렉션 프레임워크 (List, Set, Map) 활용 및 성능 비교> (2) | 2025.03.08 |
Java 기초 <6. 인터페이스와 추상 클래스의 차이> (0) | 2025.03.07 |
Java 기초 <5. 객체지향 4대 원칙 (캡슐화, 상속, 다형성, 추상화)> (0) | 2025.03.06 |
Java 기초 <3. Java 기본 문법과 자료형> (1) | 2025.03.04 |
Java 기초 <2. JDK, JRE, JVM 차이 및 Java 개발 환경 구축> (0) | 2025.03.03 |
Java 기초 <1. Java 소개 및 특징> (4) | 2025.03.02 |