Java 试图更改两个公共int值,但返回时未更改
如果这个问题不明显,我对java还不是很在行。我今晚只是在玩一些基本的东西,我需要对这些基本的东西感到舒服,因为我有一点想法,但是遇到了一个问题。我可能只是累了,错过了什么,如果是这样,我道歉 这是Main.java类中的代码:Java 试图更改两个公共int值,但返回时未更改,java,Java,如果这个问题不明显,我对java还不是很在行。我今晚只是在玩一些基本的东西,我需要对这些基本的东西感到舒服,因为我有一点想法,但是遇到了一个问题。我可能只是累了,错过了什么,如果是这样,我道歉 这是Main.java类中的代码: private int h,w; public static void main(String args[]){ Main inst = new Main(); inst.Frame(); Second s = new Second();
private int h,w;
public static void main(String args[]){
Main inst = new Main();
inst.Frame();
Second s = new Second();
}
public void Frame(){
this.h = 200;
this.w = 200;
}
public int getWidth(){
return w;
}
public int getHeight(){
return h;
}
这是一个非常基本的程序,旨在创建两个int(h,w)并在Frame()中更改它们的值,然后使用底部的两个方法返回类2中的200个值
这是second.java:
Second(){
this.Window();
}
public void Window(){
System.out.println("window()");
Main win = new Main();
int width = win.getWidth();
int height = win.getHeight();
System.out.println("width and height "+width+height);
}
Window()中的输出只给出两个零。在创建值时(Public int w=200,h=200),可以通过更改这些值来抵消这一点,但这并不是我想要做的,因为它需要在下一步进行更改
您知道如何在Frame()中完成更改以显示在窗口ints中吗?非常感谢:)您有一个void方法,而不是构造函数。删除
void
关键字 您正在创建两个独立的Main实例,每个实例都有自己的h&w值。更改第一个实例的值,然后从第二个未更改的实例打印它们
您可能希望将您的主实例作为参数传递给第二个构造函数,以便它们可以共享相同的数据。谢谢,我仍在理解实例,因此错过了它。我只是想玩弄一下彼此链接的方法,谢谢。
`Second(Main m){
this.Window(m);
}
public void Window(Main m){
System.out.println("window()");
Main win = m;
int width = win.getWidth();
int height = win.getHeight();
System.out.println("width and height"+width+height);
}`