수학의 함수와 비슷하며 호출을 통해 사용한다.
전달 값이 없는 상태로 호출하거나 어떤 값을 전달하여 호출한다.
반환 값 / 결과 값은 있거나 없을 수 있다.
관례적으로 소문자로 작성하고, 메소드 호출할 때 매개변수와 동일한 타입과 개수의 값을 넘겨줘야한다.
💡 [접근제한자] [예약어] 반환형 메소드명( [매개변수] ) { // 기능 정의 }public void information() {
System.out.println(studentNo);
}
// 1. 매개변수가 없고 리턴 값이 있을 때
public int infromation() {
return studentNo;
}
// 2. 매개변수가 없고 리턴 값이 없을 때
public void information() {
System.out.println(studentNo);
}
// 3. 매개변수가 있고 리턴 값이 있을 때
public String information(String studentName) {
return studentNo + " " + studentName;
}
// 4. 매개변수가 있고 리턴 값이 없을 때
public void information(String studentName) {
System.out.println(studentNo + " " + studentName);
}
동일한 이름의 메소드를 여러 개 정의해서 사용하는 것
하나의 함수가 마치 여러 일을 하는 것처럼 정의할 수 있기 때문에 다형성이 구현 됨.
// 매개변수의 형식이 달라야 함
public void func(int num) { ... }
public void func(char ch) { ... }
// 매개변수의 개수가 달라야 함
public void func(int num) { ... }
public void func(int num, int num2) { ... }
// MethodExam.java
public class MethodExam {
public void func() {
System.out.println("1번째 메소드");
}
public void func(int num) {
System.out.println("2번째 메소드");
}
public void func(char ch) {
System.out.println("3번째 메소드");
}
public void func(int num1, int num2) {
System.out.println("4번째 메소드");
}
}
// Run.java
MethodExam me = new MethodExam();
me.func();
me.func(10);
me.func('A');
me.func(10, 20);
모든 인스턴스 메소드에 숨겨진 채 존재하는 레퍼런스로 할당된 객체를 가리킴
함수 실행 시 전달되는 객체의 주소를 자동으로 받음
public class MethodExam {
public String name = "홍길동";
public void printName() {
String name = "이길동";
System.out.println("name : " + name); // name : 이길동
// 변수명이 필드명과 같은 경우, this 객체 사용
System.out.println("this.name : " + this.name); // this.name : 홍길동
}
}
public void setStudentNo(int studentNo) {
this.studentNo = studentNo;
}
public int getStudentNo() {
return studentNo;
}
public class Member {
public String name;
public int age;
public String getName() {
return name;
}
void setName(String name) {
this.name = name; // this.name : 필드에 있는 name / name : setName의 변수
}
public int getAge() {
return age;
}
private void setAge(int age) {
this.age = age;
}
}