- 21.代码讲解:
- public class cat{
- string name;
- string color;
- public cat (string name,string color){
- name=this.name;
- color=this.color;很明显这里是成员方法,我们要记得this在成员方法中相当于是main方法中的对象
- }
- public static void main(string[] args){
- cat c1=new cat("小花","红色")
- cat c2=new cat("小花","红色")
- system.out.println(c1==c2)我们会发现此时代码运行完的结果是false,这是因为此时默认判断的是两个对象的内存地址是否一致(也就是判断是否是同一只猫,如果是同一只猫,内存地址必然一样)但字符串除外(无论是使用==还是equals都是相等的)
- }
- }
- 22.equals
- public class cat{
- string name;
- string color;
- public cat (string name,string color){
- name=this.name;
- color=this.color;很明显这里是成员方法,我们要记得this在成员方法中相当于是main方法中的对象
- }
- public static void main(string[] args){
- cat c1=new cat("小花","红色")
- cat c2=new cat("小花","红色")
- system.out.println(c1.equals(c2));此时调用的是object中的equals方法,但是发现此时也报错(和刚才的==实际上是一致的)但实际上我们可以在成员方法中重写父类的equals方法,来自定义判断两个对象相同的条件
- }
- }
- 23.
- public test {
- public static void main{
- string s1="小红";
- string s2="小红";
- system.out.println(s1==s2);
- system.out.println(s1.equals(s2));
- }
- }此时运行代码发现得到的结果都是true