2010-11-29 70 views
0

变量类型和方法类型我有非常非常基本的Java问题: 对于下面的类:基本的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(){} 
} 

是什么declartion和方法上面上面的区别?

+0

我不知道我的理解。您有1个类声明,4个变量声明和3个方法声明。问题是什么? – Pete 2010-11-29 05:04:18

+0

是作业吗? – Favonius 2010-11-29 05:04:46

回答

2
public final static int a; 

这声明了一个静态的常量属性。这意味着它没有绑定到Hello类的任何实例,并且可以在Hello类和内部之外进行访问。既然是最后你将不能修改这个值,这将永远是0

public final int a; 

上面的一个类似的默认值,除了它是绑你好这个情况。

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() {} 

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

0

让我们自己做功课:

public final static int a; 

a是公开的,所以它是来自世界各地的访问。它是最终的,所以它的价值在声明后不能改变。它是静态的,所以它不属于Hello-类的实例,而是属于类本身。

1

科里·桑沃尔德的回答非常明确。如果你还不知道,我只想补充几句话。如果final用于对象引用,则意味着不能将其更改为引用另一个对象,但对象本身仍是可变的。例如

public final static List a = new ArrayList(); 

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

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

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)进行赋值,则将其称为赋值语句。
最后三行是方法。他们有格式:(当然无效)
访问修饰符(前公众)的返回类型方法名(ex.Method)参数(())体({})的声明和方法之间


区别是:
- 声明:您声明名称,你会,但你还没有分配任何东西。
- 方法:A 函数它执行正文内的代码。

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; 

其实这是静态变量的手段(不依赖于实例),那么它的因此它的平均值应该在整个程序中保持不变,并且公开这意味着它可以在内部和外部访问。

二:

static public void Method() {} 

同样的,这种方法不联系的实例,并访问内部和外部