2016-08-23 2 views
-1

정적 메서드를 통해 개인 정적 변수를 변경하려고하는데 BlueJ는 변경하려고하는 변수 (정적 변수로 선언 됨)를 사용할 수 없다고 말합니다. 비 정적이다정적 메서드로 정적 변수 변경

public class Playerinfo { 
    private static String name = ""; //Stores the name of the 'player' 
    public static void setname(String name) { 
     this.name = name; 
    } 
} 

변수는 이름이라고하며 방법 SETNAME 불린다. 나는이 작업을 수행 할 수 있다는 것을 알고 : 나는하지 개인이 그 쉽게 다른 클래스로와 간섭받는 것을로 Playerinfo의 이름 변수가 선언 얻고 자하기 때문에

Playerinfo.name = (insert variable here) 

내가 위를 좋아하지 않는다.

답변

2

정적 방법에는 this이 없습니다.

public class Playerinfo { 
    private static String name = ""; //Stores the name of the 'player' 
    public static void setname(String newName) { 
     name = newName; 
    } 
} 
1

this는 정적 메서드에서 불법 클래스 인스턴스를 의미 :

가장 좋은 방법의 매개 변수의 이름을 변경하는 것입니다. 매개 변수의 이름을 바꾸고 name = param;을 실행하거나 Playerinfo.name = name; 클래스로 참조하십시오. 어느 쪽이든 다른 클래스에 대한 가시성에는 영향을 미치지 않습니다.

0

지금까지 내가 이름을 그렇게

public class Playerinfo{ 
    private String name = ""; //Stores the name of the 'player' 
    public void setname(String newName){ 
     this.name = newName; 
} 
+0

나는 단지 참조 클래스로 Playerinfo이 계획 모두 이름과 SETNAME 정적 제거 자신의 이름이 있어야 static.Each PlayerInfo 객체가 될 필요가 없습니다 이해 그래서 나는 정적 변수와 메소드를 사용하고 있습니다. –

관련 문제