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

问题描述 投票:0回答:6

我有非常非常基本的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(){}
}

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

java
6个回答
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
投票

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

public final static List a = new ArrayList();

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

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


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的更多信息


0
投票

我们做你的功课:

public final static int a;

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


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行,因为你没有给它分配任何东西。如果使用=(ex.int a = 3)赋值,则将其作为赋值语句调用。 最后三行是方法。他们的格式为: 访问修饰符(例如public)返回类型(例如,void)方法名称(ex.Method)参数(())body({})

声明和方法之间的区别是: - 声明:你声明了一些名字,但你还没有指定任何东西。 - 方法:执行体内代码的函数。


0
投票

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

public final static int a; 

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

第二:

static public void Method() {}

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

© www.soinside.com 2019 - 2024. All rights reserved.