请问 java 中 public static final, 跟 public static void有什么区别啊?

如题所述

public static final 用于声明一个变量,并且这个变量在程序中不能够改变。

比如 public static final float PI = 3.14;
这个PI值在程序中再次进行赋值是没效果的。

public static void 一般是放到一个方法前面,void 表示方法什么都不返回。static

表示调用者不用new 一个对象就可以直接调用这个方法。

比如 常见的 public static void main(String args[])

一个用于变量声明,一个用于方法声明。追问

是不是就是说用了final,把3.14赋给PI,PI的值就不能改变了, 比如 public static final int PI = 30

PI = 50 + total apples
不管后面怎么写,PI的值永远是30是不是啊

追答

是的,
如果你用 PI = 50 + total apples 这样去赋值的话,系统会提示错误 说final类型的变量不能被重新赋值。

追问

加个qq行么。。
我qq359687095

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-14
本质的区别,第一个(public static final)表示声明的方法不可覆盖,类不可继承
第二个(public static void)表示声明的方法没有任何返回值,可直接类名点。
第2个回答  2013-03-14
final是最终,就是你这里定义之后,其它地方就不能改了
void是空,函数如果是void的就没有返回值追问

我不太懂什么最终,返回值诶。。。我刚学这个,那这两个具体有没有什么区别呢,能举个例子么?

追答

public static final method1(){....}不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用
public static void method2(){....}这个就是一个没有返回值的函数
没办法再解释了,final定义的方法就是可以直接使用的,以后不许重写这个方法了。
返回值这个就简单啦,有的函数有返回值,有的函数没返回值,看需求。void 和final本来就是俩不同功能的东西,谈不上联系区别。

public void f1() {
System.out.println("f1");
} 这是一个void方法,他没有返回值,直接在控制台输出"f1"俩字,但是子类可以重新写这个方法

public final void f2() {
System.out.println("f2");
} 无法被子类覆盖的方法 ,这个你学了继承之后才懂

public final int f3() {
int a=1+1;

return a;

}不是void 的方法就必须有返回值

追问

大学刚学programming,好难理解,没基础。。。
大神能加个qq么,我qq:359687095

第3个回答  2018-07-29
static代表着不随着类来初始化,可以直接使用,这样就可以找到程序的主入口本回答被网友采纳
第4个回答  2013-03-14
加上final 修饰的方法,不能被重写
相似回答