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在构造函数执行时,调用另一个构造函数。





  • 相关阅读:
    rowkey设计原则和方法
    ubuntu安装及使用
    sqoop数据迁移
    Hive 自定义UDF操作步骤
    hive之数据导入导出
    MySQL优化
    MongoDB、Redis、elasticSearch、hbase的对比
    数据库基本操作
    count(*) 和 count(1)和count(列名)区别
    BigDecimal的运算——加减乘除
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4260846.html
Copyright © 2011-2022 走看看