zoukankan      html  css  js  c++  java
  • 【java】this用法

    this代表当前类的引用对象:哪个对象调用方法,该方法内部的this就代表那个对象
    this关键字主要有两三个应用:
    (1)this调用本类中的属性,也就是类中的成员变量;
    class People
    {
    	private int age;
    	private String name;
    	People(String name,int age)
    	{
    		/*
    		错误写法,实际就是x=x;改变的是局部变量的值。因为赋值是会先寻找局部变量,若局部变量没有,才会找成员变量
    		name=name;
    		age=age;
    		*/
    		//this是区分局部变量和成员变量同名问题,this代表所在函数所属对象的引用。简单理解: 哪个对象调用this所在的函数,this就代表这个对象
    		this.name=name;
    		this.age=age;
    	}
    
    	public void speak()
    	{
    		System.out.println("myname is "+name+", age is "+age);
    	}
    		
    }
    
    class  PeopleDemo
    {
    	public static void main(String[] args) 
    	{
    		People p2=new People("zhang san",18);
    		p2.speak();
    	
    	}
    }
    (2)定义类中的函数时,函数内部要用到调用此函数的对象时,可以用this来表示这个对象。但凡定义本类内部功能时,使用了本类对象,都能用this表示
    //定义一个比较年龄是否相同的功能
    public boolean compare(Person p1)
    {
    	//compare功能用到了本类的对象,需要本类对象和其他对象进行比较
    	return this.age==p1.age;
    }

    (3)this()用在本类中构造函数间相互调用,定义时要放在构造方法的第一行,因为初始化要先执行。
    class People
    {
    	private int age;
    	private String name;
    	
    	People()//构造函数1
    	{
    		this("lisi",10);//调用了构造函数2
    	}
    
    	People(String name,int age)//构造函数2
    	{
    		
    		this.name=name;
    		this.age=age;
    	}
    
    	public void speak()
    	{
    		System.out.println("myname is "+name+", age is "+age);
    	}		
    }
    
    
    class  PeopleDemo
    {
    	public static void main(String[] args) 
    	{
    		People p2=new People();
    		p2.speak();
    	
    	}
    }
    

      

  • 相关阅读:
    【QML Model-View】ListView-简单使用(一)
    QML 界面切换的几种方法(带示例代码)
    QML 常用控件:TextInput, TextField, TextEdit, TextArea(编辑框)用法及自定义
    props参数赋值给data
    nprogress 跳转路由进度条
    小程序页面加水印
    el-table默认展示所有行
    父子路由传参
    IE接口缓存
    wireshark抓包新手使用教程
  • 原文地址:https://www.cnblogs.com/paulwinflo/p/7885140.html
Copyright © 2011-2022 走看看