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 } }