关闭

Java语言基础之4种代码块以及构造函数比较大集合

发表于:2012-12-28 10:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:逝秋    来源:51Testing软件测试网采编

class Demo
{
 private static int day=0;
 private static int age=0;
  public Demo()
 {
   day=day+1;
  System.out.println("构造函数day="+day);
 }


 {

  age=age+1;
  System.out.println("构造代码块age="+age);
 }
 static
 {
 
  System.out.println("静态代码块");
 }


 public static void main(String[] args)
 {

  Demo v=new Demo();//此时为age为1
  System.out.println("new实例第一个对象day="+v.day);
  System.out.println("new实例第一个对象age="+v.age+"\n");
  Demo v1=new Demo();//此时age=?
  System.out.println("new实例第2个对象day="+v1.day);
  System.out.println("new实例第2个对象age="+v1.age);
  System.out.println("类名调用static变量 age="+Demo.age);
  System.out.println("类名调用static变量 age="+Demo.day);
 }
}

  运行结果:

  笔记:

  java中四种代码块:

  1、普通代码块:直接在一个方法中出现的{}就称为普通代码块

  2、构造代码块:直接在类中定义的没有加static关键字的代码块{}称为构造代码块

  3、静态代码块:使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性(类)初始化.静态代码块——>构造代码块——>构造方法(构造函数)的执行,静态代码块只执行一次!

  4、同步代码块:

  比较:静态代码块与静态方法

  1、静态代码块是自动执行的;

  2、静态方法是被调用的时候才执行的

  静态代码块与非静态代码块:

  1、静态代码块只给第一次类的实例初始化

  2、非静态代码块每次类的实例都初始化(执行)

  非静态代码块与构造函数:

  1、构造函数是给对应的对象进行初始。因为:一个类中可以有多个构造函数,至于类的实例(创建对象)是根据传入的形式参数(形参个数、形参类型)而决定执行哪一个构造函数,

  2、非静态构造代码块是给所有对象进行初始化。每创建一个对象(类的实例)都会执行非静态代码块

  static:

  static修饰变量又名静态变量(全局变量):

  a)在类中定义static变量,该类中函数可以直接调用(格式:直接调用变量名)

  b)任何方法中不可以定义静态变量(用static修饰)

  c)在本类中调用Demo类中的static int a;格式:类名.变量名(Demo.a)

  d)static修饰的变量,在类被载入时创建,随类的结束才释放

  内存:静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期

  本人初学,如有错误请留言并指正。谢谢!

  本文转载自:http://blog.csdn.net/vvqiu/article/details/8350825

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号