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()
完成,该变量就会被清除。