1-1 ) return 예약어
- '이 함수의 결과 값을 반환합니다.'를 뜻하는 예약어가 바로 return 이다.
- return 예약어는 함수 수행을 끝내고 프로그램 흐름 중에서 호출한 곳으로 다시 되돌아갈 때도 사용할 수 있다.
- 메서드 실행 중 return 문을 만나게 되면 현재 실행중인 메서드를 종료하고 호출한 메서드로 되돌아간다.
1-2 ) return을 사용하여 메서드 종료
public class ExitMethod { public static void main(String[] args) { exampleMethod(2, 5); exampleMethod(3, 2); exampleMethod(100, 20); exampleMethod(102, 110); } public static void exampleMethod(int number1, int number2) { if (number2 > number1) return; int subtractedValue = number1 - number2; System.out.println(subtractedValue); } }
- number1과 number2의 두 매개 변수를 사용하는 exampleMethod 메서드가 있다.
- 메서드에서 빼기를 수행하지만 number2가 number1보다 큰지 확인하고 이 조건이 true가 되면 return이 메서드를 종료하고 실행이 완료된다. void를 반환 유형으로 사용하므로 이 메서드는 값을 반환하지 않는다.
2-1 ) 접근제어자 (access modifier)
- 접근 제어자 : 객체 지향 프로그램에서는 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. 이러한 예약어를 접근 제어자라고 한다.
- public 이라고 선언한 변수나 메서드는 외부 클래스에서 접근이 가능하며 외부 클래스가 사용할 수 있다는 뜻이다.
- 반대로 접근 제어자를 private으로 선언한 변수나 메서드는 외부 클래스에서 사용할 수 없다.
2-2 ) get(), set() 메서드
- private로 선언한 변수를 외부 코드에서 사용하려면 public 메서드를 제공해야 한다. public 메서드가 제공되지 않는다면 private로 선언된 변수에 접근할 수 있는 방법은 없다. 이때 사용할 수 있는 것이 바로 get(), set() 메서드이다.
package hiding; public class Student { int studentID; private String studentName; int grade; String address; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } }
2-3 ) 정보 은닉이란?
- 변수를 public으로 선언하는 것과 변수를 private로 선언하고 나서 그 변수를 사용할 수 있도록 public 메서드를 제공하는 것의 차이는 무엇일까? 어차피 변수에 접근하는 것은 마찬가지인데 말이다.
- 클래스의 멤버 변수를 public으로 선언하면 접근이 제한되지 않으므로 정보의 오류가 발생할 수 있다.
- 이처럼 클래스 내부에서 사용할 변수나 메서드는 private로 선언해서 외부에서 접근하지 못하도록 하는 것을 객체 지향에서는 정보 은닉(information hiding)이라고 한다.
- 정보 은닉은 객체 지향 프로그래밍의 특징 중 하나이며 자바에서는 접근 제어자를 사용하여 정보 은닉을 구현한다.