Java 试图更改两个公共int值,但返回时未更改

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();

如果这个问题不明显,我对java还不是很在行。我今晚只是在玩一些基本的东西,我需要对这些基本的东西感到舒服,因为我有一点想法,但是遇到了一个问题。我可能只是累了,错过了什么,如果是这样,我道歉

这是Main.java类中的代码:

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);

  }`