局部变量,实例字段,输入参数和类字段之间有什么区别?

时间:2013-12-18 23:57:22

标签: java variables scope

关于简单Java程序,局部变量,实例字段,输入参数和类字段之间有什么区别?

6 个答案:

答案 0 :(得分:21)

局部变量是在块的范围内定义的。它不能在该块之外使用。

示例:

if(x > 10) {
    String local = "Local value";
}

我无法在local阻止之外使用if

实例字段字段是绑定到对象本身的变量。我可以在对象中使用它而无需使用访问器,并且对象中包含的任何方法都可以使用它。

如果我想在对象 之外使用,而不是public,我将不得不使用getter和/或setter。

示例:

public class Point {
    private int xValue; // xValue is a field

    public void showX() {
        System.out.println("X is: " + xValue);
    }
}

输入参数,或参数,甚至参数,是我们传递给方法或构造函数的东西。它具有关于我们传递给它的方法或构造函数的范围。

示例:

public class Point {
    private int xValue;
    public Point(int x) {
        xValue = x;
   }

    public void setX(int x) {
        xValue = x;
    }
}

两个x参数都绑定到不同的范围。

类字段静态字段与字段类似,但不同之处在于您不需要使用包含对象的实例它

示例:

System.out.println(Integer.MAX_VALUE);

我不需要Integer的实例来检索所有整数的全局已知最大值。

答案 1 :(得分:4)

不完全。

类字段是您认为的局部变量,但它通常是静态字段,因此在所有实例中都是相同的。

实例字段与类字段相同,但是非静态的,并且对于对象的每个实例可以是不同的。

http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

局部变量是方法或块内的变量,只能由该方法或块使用。

哦,输入参数定义正确,输入参数是作为参数传递给方法的字段。

答案 2 :(得分:2)

类字段通常称为类变量,您可以找到该信息here

答案 3 :(得分:2)

首先阅读Classes and Objects

  

我知道局部变量是一个可用于它所在类的变量,对吗?

不,通常局部变量引用的变量只在其声明的区域内具有上下文。这通常是指在方法和{...}块(如if语句)

中声明的变量
  

实例字段是在构造函数中创建的对象......?

实际上,实例字段是在类级别声明的任何字段,它不是静态的,因此它的值只对类的单个实例有意义

  

输入参数是传递给方法的参数。

  

但我对课堂领域一无所知!

类字段和实例字段(通常)是相同的。唯一的区别是如果字段被声明为static,那么它不能是实例字段......

答案 4 :(得分:1)

局部变量是方法的本地变量。

实例字段是类的实例的字段,即对象。

将参数传递给方法

一个类字段,我假设是一个与该类关联的静态字段。例如如果你使用多个类加载器,你可以有多个具有相同名称和自己的静态字段的类。

答案 5 :(得分:0)

局部变量是方法中的变量。它的范围仅限于它周围两个括号的范围。 {}

示例:

public void someMethod () {

    int localVariable1 = 5;

    if (...) { 
        int localVariable2 = 7;
    }
}

使用实例字段,我认为您的意思是类实例的成员。如果您以课程Dimension为例,则可以是heightwidth。 。 正如您所猜测的,输入参数是方法中的参数。

类字段是静态方法中的字段。