基本Java问题,变量类型& java中的方法类型

时间:2010-11-29 04:59:24

标签: java

我有非常非常基本的java问题: 对于下面的课程:

public class Hello {
    public final static int a;
    public final int a;
    public int a;
    int a;

    static public void Method(){}
    public void Method(){}
    private void Method(){}
}

上面的声明和方法有什么区别?

6 个答案:

答案 0 :(得分:2)

public final static int a;

这声明了一个静态的常量属性。这意味着它不依赖于Hello类的任何实例,并且可以在Hello类和内部访问。由于它是最终的,您将无法修改此值,它将始终是其默认值0。

public final int a;

与上面的类似,除了它与Hello的这个实例相关联。

public int a;

这是Hello实例的公共属性,可以在Hello类的内部和外部修改。这被认为是不好的做法。

int a;

此Hello实例的默认级别属性。只能在这个Hello实例中修改。

static public void Method() {}

Hello类中的静态(未绑定到实例)方法,可以在内部和外部访问。它无法访问以下内容:

public final int a;  
public int a;
int a;

它无法访问这些,因为此方法与此实例无关,而所有这些值都是。

public void Method() {}

Hello类的公共方法。它可以在内部和外部访问。

private void Method() {}

与上述方法类似,但只能在内部访问。

答案 1 :(得分:1)

Corey Sunwold的回答非常明确。如果您还不知道,我只想补充几句话。如果final用于对象引用,则意味着您无法将其更改为引用另一个对象,但对象本身仍然是可变的。例如

public final static List a = new ArrayList();

变量a设置为引用ArrayList的实例。您将无法将a设置为另一个ArrayList对象,但仍可以将元素添加到a

Java中的

final关键字并不意味着常量,并且不等同于C ++中的const关键字。它确实意味着变量(原始),引用(对象),方法或类是最终的,不能进一步修改。

答案 2 :(得分:1)

public final static int a;

它不属于任何实例并且保持不变。

public final int a;

它是常量,不能在整个程序/应用程序中更改

public int a;

变量的正常声明,可以在任何时间通过应用程序/程序进行更改。

int a;

与public int a相同,默认情况下,未使用说明符声明的变量仍为public。所以,没有区别

static public void Method(){}

此方法不属于任何类的实例。

public void Method(){}

任何其他类都可以通过扩展来访问此方法,即在继承的帮助下。

private void Method(){}

此方法只能由其所属的类访问。因此在任何时候都不能被其他类访问。​​

有关访问说明符click here的更多信息 有关继承的更多信息click here

答案 3 :(得分:0)

让我们做你的作业:

public final static int a;

a是公开的,因此可以从任何地方访问。这是最终的,所以它的价值在宣布后不能改变。它是静态的,因此它不属于Hello - 类的实例,而属于类本身。

答案 4 :(得分:0)

public class Hello {
    public final static int a;
    public final int a;
    public int a;
    int a;

    static public void Method(){}
    public void Method(){}
    private void Method(){}
}

上面的声明和方法有什么区别??
=>声明是前4行,因为您没有为其分配任何内容。如果使用 = (例如,int a = 3)进行分配,则将其作为赋值语句调用。
最后三行是方法。它们的格式为:
访问修饰符(例如public)返回类型(例如void)方法名称(ex.Method)参数(())body({})


声明与方法的区别在于:
- 声明:您声明具有您的名字的东西,但您尚未分配任何内容。
- 方法:一个函数,它执行正文中的代码。

答案 5 :(得分:0)

这里有两件事很棘手,第一:

public final static int a; 

实际上这是静态变量的意思(不依赖于实例)然后是最终的,所以它的平均值应该在整个程序中保持不变,而且公众意味着它的内部和外部都是可访问的。

第二:

static public void Method() {}

与此方法相同,不与实例绑定,可在内部和外部访问