zoukankan      html  css  js  c++  java
  • Java构造函数和this关键字

    
    

    一、  构造函数

    /*
    	一个函数中定义的变量必须要初始化,否则编译会报错
    	一个类中的数据成员
    		1、 如果在定义的时候不初始化,则它的值是系统自动分配好的默认值! 如int型为零 boolean型是false
    			如本程序的A类对象就是这样
    
    		2、 如果在定义的同时赋初值, 则是可以的,也就是说该值是生效的.注意在C++中则不可以,在C++中一个类的数据成员不能在定义的同时初始化,它只能在构造函数中初始化
    			如本程序的A类对象就是这样
    			
    		3、 如果在定义的同时赋初值,当然生效,但如果在构造函数中又改变了定义时赋的初值,
    			则该数据成员最终的值就是构造函数中修改之后的那个值,因为:
    				系统会先执行定义时赋的初值,然后再执行构造函数中赋的初值
    			如本程序的B类对象就是这样
    */
    
    class A
    {
    	int i;
    	int j = 10;
    	boolean flag;
    
    	void show()
    	{
    		System.out.println("i = " + i);
    		System.out.println("j = " + j);		
    		System.out.println("flag = " + flag);
    	}
    }
    
    class B
    {
    	int i;
    	int j = 10;
    	boolean flag;
    
    	public B()
    	{	
    		System.out.println("以前的值是 " + i + "  " + j + " " + flag);
    
    		i = 88;
    		j = 88;
    		flag = true;
    	}
    
    	void show()
    	{
    		System.out.println("i = " + i);
    		System.out.println("j = " + j);		
    		System.out.println("flag = " + flag);
    	}
    }
    
    class TestConst_3
    {
    	public static void main(String[] args)
    	{
    		A aa1 = new A();
    		aa1.show();
    
    		B bb1 = new B();
    		bb1.show();
    	}
    }
    /*
    	在j2sdk1.4.2_16中的运行结果是:
    --------------
    i = 0
    j = 10
    flag = false
    以前的值是 0  10 false
    i = 88
    j = 88
    flag = true
    --------------
    */

    二、  this关键字

    /*
      关键字this:
        1,在普通方法中,关键字this代表方法的调用者,即本次调用了该方法的对象
        2,在构造方法中,关键字this代表了该方法本次运行所创建的那个新对象
    */
    
    class A
    {
    	private int i;
    	public A(int i)
    	{
    		this.i = i;  //将形参 i 赋给该构造方法本次运行所创建的那个新对象的i数据成员
    	}
    	public void show(){
    		System.out.println("i = " + this.i);
    			//this表示当前时刻正在调用show方法的对象
    			//this可以省略
    	}
    }
    
    public class TestThis
    {
    	public static void main(String[] args){
    		A aa1 = new A(100);
    		aa1.show();
    		
    		A aa2 = new A(200);
    		aa2.show();
    	}	
    }
    

      

  • 相关阅读:
    JavaScript 循环语句
    python 学习(day1)
    spring定时任务(@Scheduled注解)cron表达式详解
    IDEA 实用插件
    mysql版本和mysql-connector-java的对应关系记录
    CAS单点登录(理论部分)
    AOP
    获取post请求数据工具类
    nodeJs 安装
    docker 安装Nginx
  • 原文地址:https://www.cnblogs.com/strivers/p/6537881.html
Copyright © 2011-2022 走看看