zoukankan      html  css  js  c++  java
  • 构造代码块、构造函数、this执行顺序

    一、构造函数

    对象一建立就会调用与之对应的构造函数。
    构造函数的作用:可以用于给对象进行初始化。
    构造函数的小细节:当一个类中没有定义构造函数时,系统会默认给该类加一个空参数的构造函数;当在类中自定义了构造函数后,默认构造函数就没有了。

    二、构造代码块

    在类中直接用大括号{}括起来的代码块,在类被编译的时候执行,进行一些准备工作。与属性、方法并列存在。
    class Person
    {
    	private String name;
    	private int age;
    	/*
    	构造代码块
    	*/
    
    	{
    		System.out.println("crying……");   //中间定义的是函数的共性,只要定义对象不管什么对象,都会执行,
    	}							      //并且优先于构造函数执行
    
    	Person()
    	{
    		System.out.println("A:name="+name+",age="+age);
    	}
    	Person(String n)
    	{
    		name=n;
    		System.out.println("B:name="+name+",age="+age);
    	}
    	Person(String n,int a)
    	{
    		name=n;
    		age=a;
    		System.out.println("C:name="+name+",age="+age);
    	}
    }
    
    class PersonDemo 
    {
    	public static void main(String[] args) 
    	{
    		Person p1=new Person();
    		///Person p2=new Person("李四");
    		///Person p3=new Person("王五",10);
    	}
    }
    


    三、this

    this一般来说有两种使用方式:
    第一种是给当前对象属性付初值,例如tihs.name=name;
    第二种是在一个构造函数中调用另外一个构造函数
    /*
    this语句用于构造函数之间进行互相调用
    */
    class Person
    {
    	private String name;
    	private int age;
    
    	Person(String name)
    	{
    		thisname=name;
    	}
    
    	Person(String name,int age)
    	{   
    		//这里面一定要记住this后面没点
    		this(name);
    		this.age=age;
    	}
    
    }
    
    class  PersonDemo
    {
    	public static void main(String[] args) 
    	{
    		System.out.println("Hello World!");
    	}
    }
    

    四、三者的执行顺序

    第一:构造代码块在编译的时候执行。
    第二:构造函数在运行时候执行。
    第三:this在构造函数执行时,调用另一个构造函数。





  • 相关阅读:
    jQuery 与 prototype 共存
    我写的javascript常用静态方法类,分享给大家
    css控制固定表头,兼容行列合并
    JQuery之拖拽插件
    css小贴士备忘录
    助你简化开发的 jQuery 插件
    jQuery学习之:Validation表单验证插件
    CSS3圆角,阴影,透明
    fastclick 源码注解及一些基础知识点
    按钮点击效果(水波纹)
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4260846.html
Copyright © 2011-2022 走看看