日期:2014-05-20  浏览次数:20641 次

java类里的初始化块
class Person{
  {
  int a = 8;
  if ( a > 7){
  System.out.println("a大于 7");
  }
  System.out.println("a小于7");
  }
  {
  System.out.println("a的初始化块");
  }
 }
 
 
 
 public class PersonTest{
 
  public static void main(String[] args) {
  Person p1 = new Person();
  }
 }
 后面为什么还会“输出a小于7”呢?if语句后面不是隐藏else语句嘛(还是我理解错啦)?虽然初始化块一定要执行。求指导呀,大侠们。

------解决方案--------------------
“if语句后面不是隐藏else语句”,哪个老师哪本书告诉你的?
------解决方案--------------------
System.out.println("a小于7");
这一行跟你的if块没有半毛钱关系,除非你写到else块里。
------解决方案--------------------
你理解错了
------解决方案--------------------
if ( a > 7)
System.out.println("a大于 7");
else
System.out.println("a小于7");

------解决方案--------------------
探讨
if语句后面不是隐藏else语句嘛(还是我理解错啦)

------解决方案--------------------
if与else像兄弟一样,是不能分离的 你理解错了