2008. 7. 16. 10:41

chapter 4. 메소드에서는 인스턴스 변수를 사용합니다.

클래스에서는 객체가 아는것과 하는것을 정의한다.
인스턴스 변수는 객체가 아는것이고 메소드는 객체가 하는것이다.

메소드에 뭔가를 보내거나 돌려받을 수 있습니다.
메소드에서 사용하는 것은 매개변수(parameter), 전달하는 것은 인자(argument)라고 한다.

Dog d = new Dog();                     d라는 레퍼런스 변수에 bark라는 메소드를 호출하고 3 인자값을 전달한다.
d.bark(3);
void bark(int numOfBarks) {          3이라는 인자는 numOfBarks에 전달이 된다.
while (numOfBarks > 0) {
System.out.println("ruff");
numOfBarks = numOfBarks -1 ;      numOfBarks 이라는 매개변수는 메소드 내에서 변수로 쓰인다.
}
}

메소드에서 매개변수를 받도록 선언했다면 그 메소드를 사용할 때 반드시 뭔가를 전달해야 하는데 이 뭔가는 반드시 정해진 유형의 값이어야 한다.

메소드에 인자 두 개 이상을 전달 할 수 있으며,
변수의 유형이 매개변수 유형과 일치한다면 변수를 매개변수로 전달할 수도 있다.

자바는 값을 전달한다 ( 복사본을 전달하는 것이다.)   

메소드를 선언할때는 반드시 리턴유형을 지정해야 한다.(void로 지정하면 아무것도 리턴하지 않는다.)
void가 아닌 리턴 유형을 지정했을 경우 반드시 선언된 리턴 유형과 호환 가능한 값을 리턴해야 한다.

매개변수와 리턴 유형의 활용 방법
개터(getter) : 어떤 값을 리턴값 형태로 받아오기 위한 용도
세터(setter) : 어떤 값을 인자로 받아서 인스턴스 변수를 그 값으로 설정하기 위한 용도

캡슐화 : 모든 인스턴스 변수는 세터 메소드를 만들어서 직접 접근할 수 없도록 한다.
인스턴스 변수는 private로 지정하고 게터와 세터는 public로 지정해서 데이터를 숨긴다.

인스턴스 변수와 지역변수의 차이점
인스턴스 변수 : 유형과 이름이 들어가므로 어떤 값을 대입하지 않거나 세터 메소드를 호출하지 않은 경우에는 기본값이 호출 된다.
지역 변수 : 기본값이 없으므로 사용하기 전에 반드시 초기화를 해야 한다.

원시변수와 객체 레퍼런스 변수를 비교할때는 == 연산자를 이용하면 된다.

'Java > Head First 자바' 카테고리의 다른 글

chapter 7. 상속과 다형성  (1) 2008.07.22
chapter 6. 자바 API를 알아봅시다.  (0) 2008.07.20
chapter 5. 프로그램 만들기  (2) 2008.07.16
chapter 3 원시변수와 객체 레퍼런스 변수  (0) 2008.07.15
chapter 1,2  (1) 2008.07.12