package cn.china;


public class testDemo1 {


public static void main(String[] args) {
Person person = new Person(20,"钢弹");
Person person1 = new Person(30,"周星驰");
person.speak();
person1.speak();


}


}
/*
* this代表对象,this就是所在函数所属对象的引用
* 简单说:哪个对象调用了this所在的函数,this就代表哪个对象。
* 类中成员必须要有对象调用(除了静态方法)*/
class Person{
private int age;
private String name;
public void setAge(int age){
this.age=age;
}
public int getAge(){
return this.age;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public Person(int age,String name){
this(age);//this等于(new Person),简单说就是调用这个构造方法的对象;
this.name=name;//注意this在构造函数中调用其它构造函数,只能定义在构造函数中的第一行;

}
public Person(int age){
this.age=age;
}
public void speak(){
System.out.println("age="+this.age+"name="+this.name);
}
/*
* this 应用:只要调用本类对象,就可以使用this
* 添加功能:判断是否是同龄人*/
public boolean compare(Person p){
// if(this.age==p.age)
// return true;
// else
// return false;
return this.age==p.age;
}
}

 

 

package cn.java;
class Person{
    private String name;
    private int age;
    Person(){//构造函数可以调用一般函数,但是一般函数不能调用构造函数;
        name="baby";
        age=1;
        System.out.println("person run!");
        return;
    }
    Person(String name){
        this.name=name;
        return;
    }
    Person(String name,int age){
        this(name);
        this.age=age;
        return;
        /**
         * 当成员变量与局部变量重名时可以用this区分。
         * this:代表对象,代表哪个对象呢?当前对象。
         * this就是所在函数所属对象的引用。
         * 简单说:哪个对象调用了this所在的函数,this就代表哪个对象。
         * this可以调用构造函数*/
    }
    public void speak(){
        //this被省略,因为方法都被对象调用
        System.out.println(this.name+":"+this.age);
        return;
    }
}
public class javaThis {

    public static void main(String[] args) {
        Person p1=new Person("sky",25);
        p1.speak();
        Person p2=new Person("tom",27);
        p2.speak();
        // TODO Auto-generated method stub

    }

}