Java 是否可以将方法中的整数链接到类?

Java 是否可以将方法中的整数链接到类?,java,class,methods,integer,declare,Java,Class,Methods,Integer,Declare,出于好奇,我有一个简短的问题……如果我在一个方法中声明一个整数,例如:I=1,我是否可以将该I用于我的主类(或其他方法)中?下面的代码可能有助于理解我的问题……当然,根据答案的不同,代码可能不正确 public class main { public main() { int n = 1; System.out.print(n + i); } public number(){ i = 1; } } 不,你不能!除非你把它变成一个实例变量 或者将其作为参

出于好奇,我有一个简短的问题……如果我在一个方法中声明一个整数,例如:
I=1
,我是否可以将该
I
用于我的主类(或其他方法)中?下面的代码可能有助于理解我的问题……当然,根据答案的不同,代码可能不正确

public class main {
  public main() {
    int n = 1;
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}

不,你不能!除非你把它变成一个实例变量


或者将其作为参数发送到函数

不,你不能!除非你把它变成一个实例变量


或者将其作为参数发送到函数

不,你不能!除非你把它变成一个实例变量


或者将其作为参数发送到函数

不,你不能!除非你把它变成一个实例变量


或者将其作为参数发送到函数

是,创建一个类成员:

public class Main
{
  private int i;

  public main() {
    int n = 1;
    System.out.print(n + i);
    number();
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}

是,创建一个类成员:

public class Main
{
  private int i;

  public main() {
    int n = 1;
    System.out.print(n + i);
    number();
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}

是,创建一个类成员:

public class Main
{
  private int i;

  public main() {
    int n = 1;
    System.out.print(n + i);
    number();
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}

是,创建一个类成员:

public class Main
{
  private int i;

  public main() {
    int n = 1;
    System.out.print(n + i);
    number();
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}
这是因为
i
的范围仅限于它在中声明的方法

这是因为
i
的范围仅限于它在中声明的方法

这是因为
i
的范围仅限于它在中声明的方法


这是因为
i
的范围仅限于它在中声明的方法

可以使用类作用域字段将变量存储在类对象中,也可以从一个方法返回变量,或将其作为参数传递给另一个方法。请注意,您需要以正确的顺序调用方法,这不是最好的设计

public class main {

  int n;
  int i;
  public main() {
    n = 1;
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}

可以使用类作用域字段将变量存储在类对象中,也可以从一个方法返回变量,或将变量作为参数传递给另一个方法。请注意,您需要以正确的顺序调用方法,这不是最好的设计

public class main {

  int n;
  int i;
  public main() {
    n = 1;
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}

可以使用类作用域字段将变量存储在类对象中,也可以从一个方法返回变量,或将变量作为参数传递给另一个方法。请注意,您需要以正确的顺序调用方法,这不是最好的设计

public class main {

  int n;
  int i;
  public main() {
    n = 1;
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}

可以使用类作用域字段将变量存储在类对象中,也可以从一个方法返回变量,或将变量作为参数传递给另一个方法。请注意,您需要以正确的顺序调用方法,这不是最好的设计

public class main {

  int n;
  int i;
  public main() {
    n = 1;
    System.out.print(n + i);
  }

  public number(){
    i = 1;
  }
}

首先,让我们从简单开始。所有非构造函数的方法都需要返回类型。换句话说,

 public void number(){
     i = 1;
 }
那就更合适了

第二:传统上,
main
方法的签名是
publicstaticvoidmain(String[]args)

现在,谈谈你手头的问题。让我们考虑几个例子。我将打破一些常见的编码惯例来表达我的观点

案例1

 public void number(){
    i = 1;
 }
现在,您的代码将出现编译时错误,因为从未声明过
i
。您可以通过在类中的某个位置声明来解决此问题。要访问此变量,您将需要一个类型为
Main
的对象,它将使您的类如下所示:

public class Main {
    int i;

    public static void main(String[] args) {
        Main myMain = new Main();
        myMain.number();
        System.out.print(myMain.i);
    }

    public void number(){
        i = 1;
    }
}
public class Main {

    public static void main(String[] args) {
        Main myMain = new Main();
        System.out.print(myMain.number());
    }

    public int number(){  //the int here means we are returning an int
        i = 1;
        return i;
    }
}
案例2

假设您不想使
i
成为类变量。您只希望它是函数返回的值。您的代码将如下所示:

public class Main {
    int i;

    public static void main(String[] args) {
        Main myMain = new Main();
        myMain.number();
        System.out.print(myMain.i);
    }

    public void number(){
        i = 1;
    }
}
public class Main {

    public static void main(String[] args) {
        Main myMain = new Main();
        System.out.print(myMain.number());
    }

    public int number(){  //the int here means we are returning an int
        i = 1;
        return i;
    }
}
案例3

前面两个案例都将打印出
1
,作为其输出。但是让我们尝试不同的东西

public class Main {
    int i = 0;

    public static void main(String[] args) {
        Main myMain = new Main();
        myMain.number();
        System.out.print(myMain.i);
    }

    public void number(){
        int i = 1;
    }
}
您认为这种情况下的输出是什么?它不是
1
!在这种情况下,我们的输出是
0
。为什么?

语句
inti=1
number()
中,它在
number()
的范围内创建一个新变量,也称为
i
。只要
number()
完成,该变量就会被清除。在
public class Main
下声明的原始
i
没有更改。因此,当我们打印出
myMain.i
时,它的值是0

案例4

还有一个案例,只是为了好玩:

public class Main {
    int i = 0;

    public static void main(String[] args) {
        Main myMain = new Main();
        System.out.print(myMain.number());
        System.out.print(myMain.i);
    }

    public int number(){
        int i = 1;
        return i;
    }
}

这将产生什么样的结果?这是
10
。你为什么问?因为
number()
返回的
i
number()
范围内的
i
,其值为1<但是,code>myMain的
i
与案例3一样保持不变。

首先,让我们从简单开始。所有非构造函数的方法都需要返回类型。换句话说,

 public void number(){
     i = 1;
 }
那就更合适了

第二:传统上,
main
方法的签名是
publicstaticvoidmain(String[]args)

现在,谈谈你手头的问题。让我们考虑几个例子。我将打破一些常见的编码惯例来表达我的观点

案例1

 public void number(){
    i = 1;
 }
现在,您的代码将出现编译时错误,因为从未声明过
i
。您可以通过在类中的某个位置声明来解决此问题。要访问此变量,您将需要一个类型为
Main
的对象,它将使您的类如下所示:

public class Main {
    int i;

    public static void main(String[] args) {
        Main myMain = new Main();
        myMain.number();
        System.out.print(myMain.i);
    }

    public void number(){
        i = 1;
    }
}
public class Main {

    public static void main(String[] args) {
        Main myMain = new Main();
        System.out.print(myMain.number());
    }

    public int number(){  //the int here means we are returning an int
        i = 1;
        return i;
    }
}
案例2

假设您不想使
i
成为类变量。您只希望它是函数返回的值。您的代码将如下所示:

public class Main {
    int i;

    public static void main(String[] args) {
        Main myMain = new Main();
        myMain.number();
        System.out.print(myMain.i);
    }

    public void number(){
        i = 1;
    }
}
public class Main {

    public static void main(String[] args) {
        Main myMain = new Main();
        System.out.print(myMain.number());
    }

    public int number(){  //the int here means we are returning an int
        i = 1;
        return i;
    }
}
案例3

前面两个案例都将打印出
1
,作为其输出。但是让我们尝试不同的东西

public class Main {
    int i = 0;

    public static void main(String[] args) {
        Main myMain = new Main();
        myMain.number();
        System.out.print(myMain.i);
    }

    public void number(){
        int i = 1;
    }
}
您认为这种情况下的输出是什么?它不是
1
!在这种情况下,我们的输出是
0
。为什么?

语句
inti=1
number()
中,它在
number()
的范围内创建一个新变量,也称为
i
。只要
number()
完成,该变量就会被清除。