4.3.5 스텔스 파라미터와 디스플레이 파라미터

방법은 조작 대상과 그들의 실례 영역을 액세스하는 데 사용된다.예를 들어, 메서드:

  
  
  
  
  1. public void raiseSalary(double byPercent) 
  2.     double raise = salary * byPercent / 100
  3.     salary = salary + raise; 

이 방법을 호출하는 대상의salary 실례역을 새 값으로 설정합니다.다음 호출을 보십시오:

  
  
  
  
  1. number007.raiseSalary(5); 

그것의 결과는number007.salary 영역의 값이 5% 증가합니다.구체적으로 말하면, 이 호출은 다음과 같은 명령을 실행할 것이다.

  
  
  
  
  1. double raise = number007.salary * 5 / 100
  2. number007.salary = number007.salary + raise; 

raise Salary 방법에는 두 개의 매개 변수가 있습니다.첫 번째 매개변수는 암시적(implicit) 매개변수라고 하며 메소드 이름 앞에 나타나는 Employee 클래스 객체입니다.두 번째 파라미터는 방법명 뒤에 있는 괄호에 있는 수치입니다. 이것은 현식 (explicit) 파라미터입니다.
명시적 매개변수는 메소드 선언에 명시적으로 나열된 디스플레이 매개변수입니다(예: Double byPercent).스텔스 파라미터는 방법 성명에 나타나지 않았습니다.
모든 방법에서 키워드this는 스텔스 파라미터를 표시합니다.필요하면 다음과 같은 방법으로 raise Salary 메서드를 작성할 수 있습니다.

  
  
  
  
  1. public void raiseSalary(double byPercent) 
  2.     double raise = this.salary * byPercent / 100
  3.     this.salary = this.salary + raise; 

일부 프로그래머들은 실례역과 국부 변수를 뚜렷하게 구분할 수 있기 때문에 이런 스타일을 선호한다.
C++ 주석: C++에서는 일반적으로 클래스 외부에서 메서드를 정의합니다.

  
  
  
  
  1. void Employee::raiseSalary(double byPercent)    //C++, not Java 
  2.     ... 

만약 클래스의 내부에서 방법을 정의한다면, 이 방법은 자동으로 내연 (inline) 방법이라고 부른다.

  
  
  
  
  1. class Employee 
  2.     ... 
  3.     ing getName(){return name;}    //inline in C++ 

자바 프로그램 설계 언어에서 모든 방법은 클래스의 내부에서 정의해야 하지만, 그것이 내연 방법이라는 것은 아니다.메서드를 내부 연결 메서드로 설정할지 여부는 Java 가상 시스템의 작업입니다.실시간 컴파일러는 간결하고 자주 호출되며, 다시 불러오지 않고, 최적화할 수 있는 방법을 감시할 것이다.

좋은 웹페이지 즐겨찾기