>Java >java지도 시간 >Java this 및 super의 두 가지 특수 변수

Java this 및 super의 두 가지 특수 변수

黄舟
黄舟원래의
2016-12-17 11:09:361368검색

Java에는 매우 특별한 두 가지 변수가 있습니다. this와 super 이 두 변수는 사용하기 전에 선언할 필요가 없습니다. 이 변수는 멤버 함수 내에서 사용되며 현재 개체를 가리킵니다. 현재 개체는 현재 실행 중인 메서드를 호출하는 개체를 나타냅니다. 슈퍼 변수는 슈퍼 클래스의 생성자를 직접 가리키며 슈퍼 클래스의 변수와 메서드를 참조하는 데 사용됩니다. 그래서 모두 매우 유용한 변수입니다. 이제 this와 super의 사용법을 소개하겠습니다.

1. this

먼저 코드를 살펴보겠습니다.

class PersonInformation

{

문자열 이름, 성별, 국적, 주소;

int 나이 =p_name;

성별=p_gender;

국적=p_nationality;

주소=p_address;

age=p_age;



 }

PersonInformation() 함수에서 이 개체의 메서드 프롬프트가 개체의 멤버 변수에 직접 액세스할 수 있음을 알 수 있습니다. , 동일한 범위에서 두 개의 동일한 이름이 정의되어 있습니다. 실제로 클래스의 멤버 변수가 메소드의 매개변수 또는 메소드 자체에서 정의된 로컬 변수와 동일한 이름을 갖도록 하려면, 멤버 변수를 메소드 매개변수나 동일한 이름을 가진 지역 변수와 구별할 수 있는 방법을 생각해야 합니다. 다음으로, PersonInformation 클래스의 생성자의 각 매개변수가 객체 멤버변수와 동일한 이름을 갖고, 멤버변수의 초기값이 매개변수로 주어지도록 위의 코드를 다시 작성하고자 한다.

class PersonInformation

{

문자열 이름, 성별, 국적, 주소

int age

void PersonInformation(문자열 이름) ,문자열 성별, 문자열 국적, 문자열 주소, 정수 연령)

 {

 this.name=name;

this.gender=gender;

this.nationality=nationality;

this.address=address;

this.age=age;

}

이전 예에서 다음을 수행할 수 있습니다. 이 변수는 생성자에서 사용되어야 하며 현재 실행 중인 메서드를 참조하는 개체 인스턴스를 가리키는 데 사용됩니다. 예를 들어, 매개 변수 이름과 멤버 변수 이름을 구분해야 합니다. 매개 변수 또는 지역 변수 이름이 클래스 멤버 변수와 동일한 경우 매개 변수 또는 지역 변수의 값이 높기 때문에 name=name으로 쓰는 것은 당연히 허용되지 않습니다. 이런 식으로 메소드 내에서 매개변수 이름이나 로컬 변수 이름은 같은 이름의 멤버 변수를 숨기게 되므로 멤버 변수의 값을 지정하려면 이를 사용하여 현재 개체를 명시적으로 나타내야 합니다.

때때로 이러한 상황이 발생할 수 있습니다. 개별 인스턴스 객체에 액세스하는 대신 현재 객체에 완전히 액세스할 수도 있으며 Java에서 toString() 메서드를 사용할 수도 있습니다(이 객체를 설명하는 문자열을 반환할 수 있음). System.out.PRintln 메소드에 객체가 전달되면 이 메소드는 이 객체의 toString 메소드를 호출하고 결과 문자열을 인쇄합니다. 따라서 다음 메소드 System.out .println(this)을 사용하여 인쇄할 수 있습니다. 메소드의 내장 매개변수의 현재 상태.

this의 또 다른 사용법이 있는데, 이는 생성자의 첫 번째 명령문입니다. 해당 형식은 this(매개변수 목록)입니다. 이 생성자는 동일한 클래스의 다른 상대 생성자를 호출합니다. 다음 예를 참조하세요.

class UserInfo

{

public UserInfo(String name)

{

this(name, aNewSerialNumber);

 }

공개 사용자 정보(문자열 이름, 정수 번호)

{

userName=name;

userNumber= number;

 }

 }

UserIn을 호출하면 newinfotable = new UserInfo("Wayne Zheng"), UserInfo(String

위는 Java의 두 가지 특수 변수 this 및 super의 내용에 대한 자세한 내용은 PHP 중국어 웹사이트(www.php.cn)



를 참고하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.