문제점이 있습니다. 여러 가지 방법으로 작동 시키려고 시도했지만 올바르게 처리하지 못했습니다. 예제와 같이이 클래스 구조 여야합니다. 문제에 관해서. 나는 메인 클래스에Java, 메소드를 통해 주 값이 변경됨,이 값을 다른 클래스에 올바르게 전달하는 방법
public class MainClass {
public static void main(String[] args) {
Moving moving = new Moving();
moving.forward();
moving.forward();
System.out.println(moving.move.y); //prints 10;
moving.status(); //prints 0; I need it to print 10 too;
}
}
홈페이지에서 내 인스턴스가 이동되는 클래스 객체를 메서드를 호출하고 있습니다 :
수준의 이동에 매개 변수를 전달public class Moving {
Move move = new Move();
Status status = new Status();
public void forward() {
this.move.moving(5);
}
public void backwards() {
this.move.moving((-5));
}
public void status() {
status.getStatus();
}
}
:
public class Move {
int y;
String forward = "forward";
String back = "back";
public void moving(int howMuch) {
y+=howMuch;
}public int getY() {
return this.y;
}
}
그리고 마지막으로 클래스를 가진다을 Main()에서 forward() 또는 backwards 메소드를 호출 할 때 변경되는 인쇄 정보 (int y 값).
public class Status {
Move move = new Move();
int y;
public void setStatus(Move move) {
this.y = move.getY();
}
public void getStatus() {
System.out.println(this.y);
}
}
그리고 여기에서 임씨는 제대로 작동하지 않으려 고합니다. 일단 내가 int y를 static int y로 바꿨을 때 나는 어떻게 든 succeded했다. ,하지만 정적이 아닌, 나는 그것을 작동하게하지 않습니다.
두 클래스를 인스턴스화하는 하나의 클래스가 있는데, 둘 다 y 위치의 정보를 보유하고 있습니까? 미안하지만, 이것은 극도로 나쁜 디자인처럼 보입니다. 그리고 실제로 당신이 성취하려는 것을 이해하지 못하기 때문에 좋은 대답을하는 것이 꽤 어렵습니다. – klutt
그게 더 큰 것의 일부이고, 나는 그 수업이 필요해. 또한 하나 또는 소수의 클래스가 아닌 여러 클래스로 작동하는 법을 배우는 학습 목적입니다. Move 클래스에서 값을 가져야하는 Status 클래스의 main 메서드에서 변수 int y를 출력해야합니다. –
Status에'y'를 넣으면 안됩니다. 'Move' 객체를'Status' 생성자에게 건네 주면 또 다른 Move in Status를 생성하는 대신 그 객체에 대한 참조를 유지합니다. 'getStatus' 메쏘드는'move.y'를 사용해야합니다. – DodgyCodeException