this的使用、静态代码块与实例代码块

this的使用、静态代码块与实例代码块

  1. this的使用

    1)this()指代一个被定义的构造方法
    2)只存在于构造方法中
    3)它必须是构造方法中的第一条语句,如果不是,会报下面错误:
      call to this must be first statement in constructor
      它必须是构造方法中的第一条语句
    
    class Date
    {
    	private int year;
    	private int month;
    	private int day;
    	
    	public Date()
    	{
    		this(1999, 1, 1);
    	}
    	
    	public Date(int year,int month,int day)
    	{
    		this.year = year;
    		this.month = month;
    		this.day = day;
    	}
    	
    	public void setYear(int year)
    	{
    		this.year = year;
    	}
    	
    	private int getYear()
    	{
    		return this.year;
    	}
    	
    	public String toString()
    	{
    		return this.year + "年" + this.month + "月" + this.day + "日";
    	}
    	
    	public void print()
    	{
    		System.out.println(this.getYear());
    	}
    }
    
    class Test2
    {
    	public static void main(String[] args)
    	{
    		Date d1 = new Date();
    		System.out.println(d1);
    	}
    }
    

    输出:

    qLAv9I.png

  2. 静态代码块与实例代码块

    1.static{ }静态代码块,最先执行,在类加载时就已经执行
    2.{ }实例代码块,构造函数方法被调用时执行,可用来检测构造方法是否执行
    

    静态代码块:

    public class Test03
    {
    	public static void main(String[] args){
    	
    		System.out.println("main begin");
    		new Test03();
    		new Test03("1");
    	}
    
    	public Test03(){
    		System.out.println("无参构造方法");
    	}
    
    	
    	public Test03(String date)
    	{
    		System.out.println("有参构造方法");
    	}
    	
    	//静态代码块
    	static
    	{
    		System.out.println("静态代码块执行!");	
    	}
    }
    
    

    输出:

    qLA6nU.png

    实例代码块:

    public class Test03
    {
    	public static void main(String[] args){
    	
    		System.out.println("main begin");
    		new Test03();
    		new Test03("1");
    	}
    
    	//实例语句块
    	{
    		System.out.println("实例语句块执行!");	
    	}
    
    	
    	public Test03(){
    		System.out.println("无参构造方法");
    	}
    
    	
    	public Test03(String date)
    	{
    		System.out.println("有参构造方法");
    	}
    }
    
    

    输出:

    qLAD10.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值