关于static和final的问题

bihuaiyu0288 2017-10-26 08:19:20
就你所学到的static和final知识来看,下面哪些程序可以通过编译?
(1)public class foo{
static int x;
public void go(){
System.out.println(x);
}
}

(2)public class foo2{
int x;
public static void go(){
System.out.println(x);
}
}

(3)public class foo3{
final int x;
public void go(){
System.out.println(x);
}
}

(4)public class foo4{
static final int x = 12;
public void go(){
System.out.println(x);
}
}

(5)public class foo5{
static final int x = 12;
public void go(final int x){
System.out.println(x);
}
}

(6)public class foo6{
int x = 12;
public static void go(final int x){
System.out.println(x);
}
}
...全文
353 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
legend_night 2017-10-27
  • 打赏
  • 举报
回复
局部变量与成员变量的概念混淆了,查一下概念。 另外,局部变量与成员变量重复的话,使用局部变量,简单说就是小范围优于大范围 public static void go(final int x){ System.out.println(x); System.out.println(this.x); }
偏安zzcoder 2017-10-27
  • 打赏
  • 举报
回复
引用 3 楼 小小白sh的回复:
[quote=引用 2 楼 kingslave1 的回复:] 1,4,5,6 2:static方法或者构造块不能直接访问非static成员变量或方法。 3:final 修饰的成员变量必须在定义时就给定初始值。
前4个明白了,问下第五个和留个传入的形参 final int 是相当一个常量么?,第五个x不是final的为啥还能被传入的参数所所修改呢[/quote] 第5个不就是final吗。。。
「已注销」 2017-10-27
  • 打赏
  • 举报
回复
引用 2 楼 kingslave1 的回复:
1,4,5,6 2:static方法或者构造块不能直接访问非static成员变量或方法。 3:final 修饰的成员变量必须在定义时就给定初始值。
前4个明白了,问下第五个和留个传入的形参 final int 是相当一个常量么?,第五个x不是final的为啥还能被传入的参数所所修改呢
偏安zzcoder 2017-10-27
  • 打赏
  • 举报
回复
1,4,5,6 2:static方法或者构造块不能直接访问非static成员变量或方法。 3:final 修饰的成员变量必须在定义时就给定初始值。

62,626

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧