Java의this 키워드 사용 및 방법 재부팅 관련 지식
5144 단어 Java
this 키워드는 현재 대상 자체나 현재 클래스의 실례를 나타내는 데 사용되며,this를 통해 본 대상의 모든 방법과 속성을 호출할 수 있습니다.예:
public class Demo{
public int x = 10;
public int y = 15;
public void sum(){
// this
int z = this.x + this.y;
System.out.println("x + y = " + z);
}
public static void main(String[] args) {
Demo obj = new Demo();
obj.sum();
}
}
실행 결과:
x + y = 25
위의 프로그램에서obj는 데모 클래스의 실례입니다.this와obj 등가, intz=this를 실행합니다.x + this.y;,intz=obj를 실행하는 것과 같습니다.x + obj.y;.주의:this는 클래스 실례화 후에만 의미가 있습니다.
this를 사용하여 같은 이름의 변수 구분하기
구성원 변수와 방법 내부의 변수가 중명될 때 방법 내부에서 구성원 변수를 호출하기를 희망합니다. 어떻게 합니까?이때 this만 사용할 수 있습니다. 예를 들면:
public class Demo{
public String name;
public int age;
public Demo(String name, int age){
this.name = name;
this.age = age;
}
public void say(){
System.out.println(" " + name + ", " + age + " ");
}
public static void main(String[] args) {
Demo obj = new Demo(" ", 3);
obj.say();
}
}
실행 결과:
, 3
형삼의 작용역은 전체 방법체이고 국부 변수이다.데모()에서 인삼과 구성원 변수의 이름을 바꿉니다.this를 사용하지 않으면 국부 변수name과age에 접근합니다. 구성원 변수가 아니라.say()에서 우리는this를 사용하지 않았습니다. 왜냐하면 구성원 변수의 작용역은 전체 실례이기 때문에this를 추가할 수 있습니다.
public void say(){
System.out.println(" " + this.name + ", " + this.age + " ");
}
Java는 기본적으로 모든 구성원 변수와 구성원 방법을this와 연결시키기 때문에this를 사용하는 것은 일부 상황에서 불필요한 것입니다.방법명으로 대상을 초기화하다
즉, 본 종류의 다른 구조 방법을 호출하는 것과 같아서 반드시 구조 방법의 첫 문장으로 해야 한다.예는 다음과 같습니다.
public class Demo{
public String name;
public int age;
public Demo(){
this(" ", 3);
}
public Demo(String name, int age){
this.name = name;
this.age = age;
}
public void say(){
System.out.println(" " + name + ", " + age + " ");
}
public static void main(String[] args) {
Demo obj = new Demo();
obj.say();
}
}
실행 결과:사이트의 이름은 미학원으로 이미 설립된 지 3년이 되었다
주의해야 할 것은 다음과 같다.
구조 방법에서 다른 구조 방법을 호출하려면 호출 동작이 가장 시작 위치에 있어야 합니다.
구조 방법 이외의 어떤 방법에서도 구조 방법을 호출할 수 없다.
하나의 구조 방법 내에서는 하나의 구조 방법만 호출할 수 있다.
상기 코드는 매개 변수가 다르면 여러 개의 동명 방법이 나타날 수 있도록 하는 방법 재부팅과 관련이 있다.다음 장에서 설명할 것이다.
매개변수로 전달
완전히 분리된 클래스에서 방법을 사용하고 현재 대상의 인용을 매개 변수로 전달해야 할 때.예:
public class Demo{
public static void main(String[] args){
B b = new B(new A());
}
}
class A{
public A(){
new B(this).print(); //
}
public void print(){
System.out.println("Hello from A!");
}
}
class B{
A a;
public B(A a){
this.a = a;
}
public void print() {
a.print();
System.out.println("Hello from B!");
}
}
실행 결과:
Hello from A!
Hello from B!
익명의 대상은 이름이 없는 대상이다.대상이 한 번만 사용하면 익명의 대상이 될 수 있습니다. 코드에 new B(this)가 있습니다.print(); (new B(this)와 같습니다.print();,먼저 new B (this) 를 통해 이름이 없는 대상을 만들고 그 방법을 호출합니다.Java 메서드 재부팅
자바에서 같은 종류의 여러 방법은 같은 이름을 가질 수 있으며, 매개 변수 목록이 다르면 된다. 이를 메서드 오버로드(method overloading)라고 부른다.
매개 변수 목록은 매개 변수 서명이라고도 하는데 매개 변수의 유형, 매개 변수의 개수와 매개 변수의 순서를 포함하고 하나만 다르면 매개 변수 목록이 다르다고 한다.
재부팅은 대상을 대상으로 하는 기본적인 특성이다.
다음은 상세한 실례를 하나 봅시다.
public class Demo{
// ,
void test(){
System.out.println("No parameters");
}
// ,
void test(int a){
System.out.println("a: " + a);
}
// ,
void test(int a,int b){
System.out.println("a and b: " + a + " " + b);
}
// ,
double test(double a){
System.out.println("double a: " + a);
return a*a;
}
public static void main(String args[]){
Demo obj= new Demo();
obj.test();
obj.test(2);
obj.test(2,3);
obj.test(2.0);
}
}
실행 결과:
No parameters
a: 2
a and b: 2 3
double a: 2.0
위의 실례를 통해 독자들이 알 수 있듯이 중재는 한 종류에서 같은 함수 명칭이 있지만 형참이 다른 함수이다.다시 불러오는 결과는 한 프로그램의 코드와 방법의 종류를 최대한 줄일 수 있다.설명:
방법 이름과 함께 컴파일러는 호출 방법의 매개 변수 개수, 매개 변수 유형 등에 따라 하나씩 일치하여 대응하는 방법을 선택하고, 일치하지 않으면 컴파일러가 오류를 보고합니다. 이를 다시 불러오는 해상도라고 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.