码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象_this关键字

时间:2015-04-05 18:43:23      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

一、this关键字概述:   

    java中this关键字可以完成以下操作:
      1、调用类中的属性
      2、调用类中的方法或者构造方法
      3、表示当前对象

 

 

 

二、this代表当前的对象 

  代表他所在函数所属对象的引用,简单的说就是哪个对象在调用this所在的函数,this就代表哪个对象

public class ThisDemo {
    public static void main(String[] args) {
        Person p=new Person();
        //p.setName("libushi");
        //System.out.println(p.getName());
        Person p1=new Person("haungjianfeng");
        
        Person p2=new Person("haungjianfeng",21);
    }
}
class Person{
    private int age;
    private String name;

    Person(){
        //System.out.println("A:name="+name+",,age="+age);
    }
    Person(String name){
        this();
        this.name =name;//哪个对象调用该函数,this就代表哪个对象
        //System.out.println("B:name="+name+",,age="+age);
    }
    Person(String name,int age){
        //this.name =name;
        //这个可以将上面的构造函数拿来用
        this(name);//这叫this语句,用于构造函数之间的调用     this语句只能定义在构造函数的第一行,因为初始化动作要先执行
        this.age=age;
        //System.out.println("C:name="+name+",,age="+age);
    }
    
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    
    public void speak(){
        System.out.println("name="+name+",,age="+age);
        //System.out.println("name="+this.name+",,age="+this.age);//哪个对象调用他,this就代表哪个对象的name和age
    }
    public void cry(){
        System.out.println("cry.......");
    }
}

 

public class NinetyFive {
    public static void main(String[] args) {
        Bear b1 = new Bear("小白", ‘公‘);//这里创建对象,给对象初始化的时候调用类相应的构造函数,那么this就表示b1这个对象
        Bear b2 = new Bear();
    }

}
class Bear{
    private String name;
    private char sex;
    
    public Bear(){
        this("熊大");//调用下面的构造方法,必须在这个方法中的第一行(构造函数之间的往下调用)
    }
    public Bear(String name){
        this(name,‘公‘);//调用下面的构造方法(构造函数之间的往下调用)
    }
    
    public Bear(String name, char sex) {
        this.name = name;//调用类中的属性,表示当前对象的name,哪个对象调用this就表示哪个对象的name
        this.sex = sex;
        this.bite();//调用本类中的方法
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public char getSex() {
        return sex;
    }
    public void setSex(char sex) {
        this.sex = sex;
    }
    
    //咬人的方法
    public void bite(){
        System.out.println("我是"+sex+"熊--"+name);
    }
    
}

 

 

 

 

 

三、this的应用

  当类中要定义功能时,该函数内部要用到调用函数的对象时,这时用this来表示这个对象

    1、需求:定义一个功能,用于比较年龄是否相同

 1 public class ThisTest {
 2     public static void main(String[] args) {
 3         Person p1 = new Person(20);
 4         Person p2 = new Person(25);
 5         boolean b = p1.compare(p2);
 6         System.out.println(b);
 7     }
 8 }
 9 class Person{
10     private int age;
11     Person(int age){
12         this.age = age;
13     }
14     public boolean compare(Person p){
15         //可以用if else语句,也可以用三元运算符
16         return this.age==p.age;//this可以省略,加上阅读性比较好
17     }
18 }

 

面向对象_this关键字

标签:

原文地址:http://www.cnblogs.com/LO-ME/p/3551431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!