java - 인스턴스 변수의 이름이 인수 변수와 같을 때 호출

기사 출처 java static naming-conventions

이 코드가 있습니다.

class Foo {
 int x = 12;

public static void go(final int x) {

    System.out.println(x);

}
}


인수 final x와 인스턴스 x는 이름이 같습니다. 인스턴스 변수 x = 12의 이름이 인수 변수와 동일하다는 점을 고려하여 go () 메서드에서 사용하려면 어떻게 참조합니까?
정적 메서드 내에서 사용하려면 정적으로 만들어야합니다.

static int x = 12;


그런 다음 클래스 이름을 통해 참조를 얻을 수 있습니다.

public static void go(final int x)
{
    System.out.println(Foo.x);
}




또는 인스턴스를 만들고 로컬에서 사용합니다.

int x = 12;

public static void go(final int x)
{
    Foo f = new Foo();
    System.out.println(f.x);
}




또는 인스턴스 메소드를 사용하고 x 키워드로 인스턴스 this를 참조하십시오.

int x = 12;

public void go(final int x)
{
    System.out.println(this.x);
}

이 질문에 대해 Stack Overflow에서 비슷한 토론을 찾았습니다: https://stackoverflow.com/questions/13924242/

관련 기사
java - 객체 배열의 모든 조합
java - Java의 arraylist에 대용량 파일을로드하는 가장 좋은 방법
java - 배포 (게시) 후 Weblogic 오류 : 오류 503-- 서비스를 사용할 수 없음
java - "리소스로 시도"에 문제가 있음
java - Java 인터페이스에 대한 Java 특성 파일 바인딩
java - 날짜 시간 형식 Java로 시간 추가
java - Java의 내부 클래스에서 변수에 액세스
java - ArrayIndexOutOfBoundsException 데이터 액세스 시도
java - charAt ()은 문자열을 반환하지 않습니까?
enums - Java API에서 열거 형 사용