Basic Java Tutorial의 "Hello World에서 객체 지향으로" 기사에서 우리는 객체에 대한 예비적인 이해를 갖고 있습니다. 개체의 데이터 멤버는 개체의 상태를 나타냅니다. 개체는 특정 작업을 나타내는 메서드를 수행할 수 있습니다.
또한 수업에 대해서도 배웠습니다. 동일한 클래스의 객체는 동일한 유형에 속합니다. 클래스를 정의하고 해당 정의를 사용하여 객체를 만들 수 있습니다.
객체에 대해 더 깊이 파헤쳐 보겠습니다. Java의 메소드 및 데이터 멤버에 대해 자세히 알아보세요.
동일한 객체의 데이터 멤버 호출
메서드는 개체의 데이터 멤버를 호출할 수 있습니다. 예를 들어, 아래에서는 Human 클래스에 getHeight() 메서드를 추가합니다. 이 메서드는 높이 데이터 멤버의 값을 반환합니다.
다음과 같이 코드 코드를 복사합니다.
공개 수업 테스트
{
공개 정적 무효 메인(문자열[] 인수)
{
인간 aPerson = 새로운 인간();
System.out.println(aPerson.getHeight());
}
}
수업인간
{/**
*접속자
*/
int getHeight()
{
this.height를 반환합니다.
}
정수 높이;
}
getHeight 메소드를 추가했습니다. 이 메서드의 반환 값은 int 유형입니다. Return은 Java에서 값을 반환하는 데 사용됩니다.
객체 자체를 참조하는 데 사용되는 this을 참고하세요. aPerson 인스턴스를 생성할 때 이는 aPerson 객체를 나타냅니다. this.height는 aPerson의 키를 나타냅니다.
이것은 암묵적인 주장이다. 메소드가 호출되면 메소드의 매개변수 목록에 이 매개변수가 포함되어 있지 않더라도 Java는 이 매개변수를 메소드에 "자동으로" 전달합니다.
(이것을 암시적으로 전달하지 않는 몇 가지 특별한 메서드가 있습니다. 나중에 살펴보겠습니다.)
이는 필수가 아니며 위의 방법은 다음과 같이 작성할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
/**
*접속자
*/
int getHeight()
{
반환 높이;
}
Java는 height가 클래스의 데이터 멤버인지 자체적으로 결정합니다. 그러나 이것을 사용하면 더 명확해질 것입니다.
또한 주석을 추가하는 /** 주석 */ 방법도 살펴보았습니다.
메소드 매개변수 목록
Java의 메소드 정의는 C 언어의 함수와 유사합니다. Java 메소드는 메소드 이름 뒤의 괄호 안에 인수 목록(인수 목록)을 받을 수도 있습니다. 다음으로,rowHeight() 메소드를 정의합니다. 이 메소드의 기능은 사람의 키를 높이는 것입니다.
다음과 같이 코드 코드를 복사합니다.
공개 수업 테스트
{
공개 정적 무효 메인(문자열[] 인수)
{
인간 aPerson = 새로운 인간();
System.out.println(aPerson.getHeight());
aPerson.growHeight(10);
System.out.println(aPerson.getHeight());
}
}
수업인간
{
/**
*접속자
*/
int getHeight()
{
this.height를 반환합니다.
}
/**
* 인수 전달
*/
무효 성장 높이(int h)
{
this.height = this.height + h;
}
정수 높이;
}
GrowthHeight()에서 h는 전달된 매개변수입니다. 클래스 정의에는 매개변수의 유형(int)이 명시되어 있습니다. 특정 메소드 내에서 이 매개변수를 사용할 수 있습니다. 이 매개변수는 이 메소드의 범위, 즉 GrowthHeight() 내에서만 유효합니다.
호출할 때 GrowthHeight()에 10을 전달합니다. aPerson의 키가 10만큼 증가합니다.
동일한 객체에 대해 다른 메서드 호출
메소드 내에서 동일한 객체의 다른 메소드를 호출할 수 있습니다. 호출 시 this.method() 형식을 사용하세요. 우리는 이것이 객체를 지칭한다는 것을 기억합니다. 따라서 this.method()는 객체 자체의 method() 메서드를 참조합니다.
예를 들어, 다음과 같은 RepeatBreath() 함수는 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다.
공개 수업 테스트
{
공개 정적 무효 메인(문자열[] 인수)
{
인간 aPerson = 새로운 인간();
aPerson.repeatBreath(10);
}
}
수업인간
{
공허한 숨()
{
System.out.println("후...후...");
}
/**
* 호흡() 호출
*/
voidpeareBreath(intrep)
{
내가;
for(i = 0; i < 대표자; i++) {
this.breath();
}
}
정수 높이;
}
반복을 용이하게 하기 위해,peatBreath() 메소드에서 int 유형의 객체 i를 선언합니다. i의 범위는 RepeatBreath() 메서드의 범위로 제한됩니다.
(C언어 함수의 자동변수와 비슷합니다.)
데이터 멤버 초기화
Java에는 데이터 멤버를 초기화하는 방법이 많이 있습니다. 예를 들어 위의 getHeight() 예제에서는 높이 값을 제공하지 않지만 Java는 기본 초기 값인 0을 선택합니다.
기본 유형의 데이터 멤버에 대한 기본 초기값:
1. 숫자 유형: 0
2.부울 값: false
3. 기타 유형: null
선언하는 동안 데이터 멤버의 초기 값을 제공할 수 있습니다. 이를 명시적 초기화라고 합니다. 디스플레이 초기화 값은 프로그램에 직접 작성해야 합니다.
다음과 같이 코드 코드를 복사합니다.
공개 수업 테스트
{
공개 정적 무효 메인(문자열[] 인수)
{
인간 aPerson = 새로운 인간();
System.out.println(aPerson.getHeight());
}
}
수업인간
{/**
*접속자
*/
int getHeight()
{
this.height를 반환합니다.
}
정수 높이 = 175;
}
여기서 데이터 멤버 높이의 초기 값은 175이며 기본값은 0이 아닙니다.
Java에서는 객체를 초기화하는 다른 방법이 있는데, 이에 대해서는 나중에 소개하겠습니다.
요약
반품
this, this.field, this.method()
기본 초기값, 명시적 초기화