자바에서 멤버 함수(메서드)는 클래스 내에 정의된 함수로, 객체의 동작을 정의하는 데 사용된다. 멤버 함수는 객체의 상태를 변경하거나 객체의 데이터를 처리하는 역할을 한다. 예를 들어, 아래의 코드는 간단한 Person 클래스를 정의하고 멤버 함수(메서드)를 포함하고 있다:
public class Person {
// 멤버 변수 (필드)
private String name;
private int age;
// 생성자
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 멤버 함수 (메서드)
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
// Getter 메서드
public String getName() {
return name;
}
// Setter 메서드
public void setName(String name) {
this.name = name;
}
// Getter 메서드
public int getAge() {
return age;
}
// Setter 메서드
public void setAge(int age) {
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
// Person 객체 생성
Person person = new Person("John", 30);
// 멤버 함수 호출
person.displayInfo();
// Getter 메서드 호출
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
// Setter 메서드 호출
person.setName("Alice");
person.setAge(25);
// 변경된 정보 출력
person.displayInfo();
}
}
위의 예시에서:
- Person 클래스는 두 개의 멤버 변수(name, age)를 가지고 있다.
- 생성자는 Person 객체가 생성될 때 호출되며, name과 age를 초기화한다.
- displayInfo 메서드는 Person 객체의 정보를 출력하는 멤버 함수이다.
- getName, setName, getAge, setAge 메서드는 각각 name과 age를 가져오고 설정하는 역할을 한다.
이처럼 멤버 함수는 객체의 동작을 정의하고, 객체의 상태를 변경하거나 데이터를 처리하는 데 사용된다.
public class Person {
// 멤버 변수 (필드)
private String name; // 'name'이라는 private 필드를 선언한다.
private int age; // 'age'라는 private 필드를 선언한다.
// 생성자
public Person(String name, int age) { // 'name'과 'age'를 매개변수로 받는 생성자를 정의한다.
this.name = name; // 전달된 'name' 매개변수를 'this.name'에 저장한다.
this.age = age; // 전달된 'age' 매개변수를 'this.age'에 저장한다.
}
// 멤버 함수 (메서드)
public void displayInfo() { // 'displayInfo'라는 멤버 함수를 정의한다.
System.out.println("Name: " + name); // 'name' 필드를 출력한다.
System.out.println("Age: " + age); // 'age' 필드를 출력한다.
}
// Getter 메서드
public String getName() { // 'name' 필드를 반환하는 'getName' 메서드를 정의한다.
return name; // 'name' 필드를 반환한다.
}
// Setter 메서드
public void setName(String name) { // 'name' 필드를 설정하는 'setName' 메서드를 정의한다.
this.name = name; // 전달된 'name' 매개변수를 'this.name'에 저장한다.
}
// Getter 메서드
public int getAge() { // 'age' 필드를 반환하는 'getAge' 메서드를 정의한다.
return age; // 'age' 필드를 반환한다.
}
// Setter 메서드
public void setAge(int age) { // 'age' 필드를 설정하는 'setAge' 메서드를 정의한다.
this.age = age; // 전달된 'age' 매개변수를 'this.age'에 저장한다.
}
}
public class Main {
public static void main(String[] args) { // 메인 메서드를 정의한다.
// Person 객체 생성
Person person = new Person("John", 30); // 'John'과 30을 매개변수로 하여 'Person' 객체를 생성한다.
// 멤버 함수 호출
person.displayInfo(); // 'displayInfo' 메서드를 호출하여 'John'과 30을 출력한다.
// Getter 메서드 호출
System.out.println("Name: " + person.getName()); // 'getName' 메서드를 호출하여 'name'을 출력한다.
System.out.println("Age: " + person.getAge()); // 'getAge' 메서드를 호출하여 'age'를 출력한다.
// Setter 메서드 호출
person.setName("Alice"); // 'setName' 메서드를 호출하여 'name'을 'Alice'로 변경한다.
person.setAge(25); // 'setAge' 메서드를 호출하여 'age'를 25로 변경한다.
// 변경된 정보 출력
person.displayInfo(); // 'displayInfo' 메서드를 다시 호출하여 'Alice'와 25를 출력한다.
}
}