java学习笔记(十八)代码块

系统 1677 0
java学习笔记(十八)代码块

代码块

1:普通代码块:直接定义在方法中的代码


    public class MainDemo01
{
 public static void main(String args[]){
  {
  int c = 40;
 System.out.println(c);
  }
 
 int c =100;
 System.out.println(c);
 }
}

  



输出为:

F:\java>javac MainDemo01.java

F:\java>java MainDemo01 one
40
100

2:构造代码块:直接定义在类中的代码


    class Demo
{
 {
 System.out.println("构造块");
 }
 public Demo(){
 System.out.println("构造方法");
 }
}
public class MainDemo01
{
 public static void main(String args[]){
  new Demo();
  new Demo();
  new Demo();
  new Demo();
  new Demo();

  }
}


  


输出为:

F:\java>java MainDemo01
构造块
构造方法
构造块
构造方法
构造块
构造方法
构造块
构造方法
构造块
构造方法

构造块优于构造方法执行,执行多次。


3:静态代码块:直接使用static关键字声明的代码


    class Demo
{
 {
 System.out.println("构造块");
 }
 static {
 System.out.println("静态代码块");
 }
 public Demo(){
 System.out.println("构造方法");
 }
}
public class MainDemo01
{
 static{
 System.out.println("在主方法中定义的代码块");
 }
 public static void main(String args[]){
  new Demo();
  new Demo();
  new Demo();
  new Demo();
  new Demo();

  }
}


  



输出为:


F:\java>java MainDemo01
在主方法中定义的代码块
静态代码块
构造块
构造方法
构造块
构造方法
构造块
构造方法
构造块
构造方法
构造块
构造方法

得出结论;

1:静态块优先于主方法执行,如果在普通类中定义的静态块,优先于构造块执行,不管有多少实例化对象产生,静态代码块只执行一次,静态代码块的主要功能是为静态属性初始化。


能不能不使用主方法就输出“helloworld”呢?


答案是可以的。

    public class MainDemo01
{
 static{
 System.out.println("helloworld");
 }
}


  


输出为:

F:\java>java MainDemo01
helloworld
Exception in thread "main" java.lang.NoSuchMethodError: main


可以输出,但是出现错误,程序仍然继续寻找主方法,能不能去掉这个错误呢》

答案是可以的


    public class MainDemo01
{
 static{
 System.out.println("helloworld");
 System.exit(1);
 }
}

  



输出为:


F:\java>java MainDemo01
helloworld

java学习笔记(十八)代码块


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论