标签:int() 返回 一个个 back set null 使用 输出 方法调用
实质就是:this代表当前对象
目录:
1.this(name) 调用同一个类中参数为
public Person(String name)这个构造方法
2.this.say() 同一个类中,某一个方法调用非static的say()方法
3.this.name //当前对象的name属性
4.比较两个对象是否相等 first:进行地址比较 second:进行内容比较
class Person { private String name; private int age; /*至少保证一个没有this调用构造方法,保证递归调用的出口*/ public Person() { System.out.println("*** 一个新的Person类对象被实例化******"); } public Person(String name) { this(); // 调用无参构造 this.name = name; } public Person(String name, int age) { this(name); // 调用有一个参数的构造,这句话调用的是灰色部分的函数 this.age = age; } // setter、getter略 /*自己写的*************************/ public Person(double haha){ System.out.println("只进行输出操作"); } public Person(int age){ this(10.21); this.age = 10; this.name="lcy"; } /********************************/ public String getInfo() { return "姓名:" + this.name + ",年龄:" + this.age; } } public class Test { public static void main(String args[]) { Person per = new Person("张三", 20); System.out.println(per.getInfo()); *** 一个新的Person类对象被实例化****** 姓名:张三,年龄:20 Person per1 = new Person("张四"); System.out.println(per1.getInfo()); *** 一个新的Person类对象被实例化****** 姓名:张四,年龄:0 Person per2 = new Person(100000000); System.out.println(per2.getInfo()); 只进行输出操作 姓名:lcy,年龄:10 } } /** 相互调用构造方法在new对象的时候 构造方法:调用其他构造使用“this()”调用。 例如:现在一个类之中存在了三个构造方法(无参、有一个参数、有两个参数), 但是不管使用何种构造方法,都要求在实例化对象产生的时候输出一行提示信息: “一个新的类对象被实例化”(假设这个信息等于50行代码) */ _________________________________________________________ this表示当前对象 当前对象指的是当前正在调用本类方法的操作对象,下面首先来验证一下。 class Demo { private int filed =100; public void say(){ System.out.println(123456); } public void print() { System.out.println("当前对象:" + this); this.say(); System.out.println(this.filed); } } public class Test { public static void main(String args[]) { Demo demo1 = new Demo(); Demo demo2 = new Demo(); System.out.println(demo1); demo1.print(); System.out.println(demo2); demo2.print(); } } Demo@2a139a55 当前对象:Demo@2a139a55 123456 100 Demo@15db9742 当前对象:Demo@15db9742 123456 100
程序中Person类中定义了一个compare方法,此方法的主要功能就是专门完成两个对象的比较操作,
在比较时,首先进行地址的比较,如果两个对象的地址一样,则肯定是同一个对象,
而如果地址不相等,则将一个个属性依次进行比较。对象比较操作在开发中是一个重要的概念,要重点掌握
class Person { private String name ; private int age ; public Person(String name,int age) { this.name = name ; this.age = age ; } // 一个类可以接收本类引用 // 接收完成之后可以直接调用本类中的私有操作 public boolean compare(Person per) { if (per == null) { return false ; // 直接返回false } if (this == per) { // 地址相同 return true ; } // 这样一来在compare()方法之中有两个对象:传入的Person,另外一个是this if (this.name.equals(per.name) && this.age == per.age) { return true ; } return false ; //其他情况 } public void setName(String name) { this.name = name ; } public void setAge(int age) { this.age = age ; } public String getName() { return this.name ; } public int getAge() { return this.age ; } }
public class TestDemo { public static void main(String args[]) { Person per1 = new Person("张三",20) ; Person per2 = new Person("张三",20) ; if (per1.compare(per1)) { System.out.println("是同一个对象。") ; } else { System.out.println("不是同一个对象。") ; } } }
标签:int() 返回 一个个 back set null 使用 输出 方法调用
原文地址:http://www.cnblogs.com/cs-lcy/p/7413826.html