网站logo怎么设置,互联网创业有哪些项目可以做,wordpress后台密码,中原免费网站建设提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言对象比较equals方法内部类实例内部类静态内部类总结 前言
对象比较equals方法
三种比较相等方法#xff1a; 第一种#xff0c;如果两侧是基本数据类型文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言对象比较equals方法内部类实例内部类静态内部类总结 前言
对象比较equals方法
三种比较相等方法 第一种如果两侧是基本数据类型则比较变量的值是否相等 第二种如果 两侧是引用数据类型则比较引用变量的地址是否相等 第三种如果要比较引用对象的值是否相等则要重写Object中的equals方法
class Student{public String name;public int age;//构造方法初始化成员变量public Student(String name, int age) {this.name name;this.age age;}//重写toString方法Overridepublic String toString() {return Student{ name name \ , age age };}//重写equals方法Overridepublic boolean equals(Object o) {if (this o) return true;if (o null || getClass() ! o.getClass()) return false;Student student (Student) o;return age student.age Objects.equals(name, student.name);}Overridepublic int hashCode() {return Objects.hash(name, age);}
}
public class Test {public static void main(String[] args) {Student student new Student(藏三,6);Student student2 new Student(藏三,6);//只是比较地址一样不一样System.out.println(studentstudent2);//这才是比较对象一样不一样System.out.println(student.equals(student2));}
}结论比较对象中内容是否相同的时候一定要重写equals方法。
内部类
可以将一个类定义在另一个类或者一个方法的内部 前者称为内部类后者称为外部类 【注意事项】
定义在class 类名{}花括号外部的即使是在一个文件里都不能称为内部类内部类和外部类共用同一个java源文件但是经过编译之后内部类会形成单独的字节码文件
实例内部类
即未被static修饰的成员内部类
// OutClass是外部类
// InnerClass是内部类
class OutterClass{public int date1 9;public static int date2 77;private int date3 66 ;public void test(){InnerClass innerClass new InnerClass();//在外部类实例化实例内部类System.out.println(OutterClass:test());}//实例内部类即未被static修饰的成员内部类。class InnerClass{public int date1 111;public int date4 44;public static final int date5 10;private int date6 7;public void test(){System.out.println(InnerClass:test());System.out.println(date1);//实例内部类有date1外部类也有date1优先访问实例内部类的System.out.println(OutterClass.this.date1);//访问外部类,用外部类类名点this点变量名System.out.println(date2);System.out.println(date3);System.out.println(date4);System.out.println(date5);System.out.println(date6);}}
}
public class Test {public static void main(String[] args) {OutterClass outterClass new OutterClass();//实例化实例内部类对象//要先实例化外部类对象// 然后在实例化内部类的号左边加大驼峰外部类类名和. 右边加小驼峰外部类类名和.OutterClass.InnerClass innerClass outterClass.new InnerClass();innerClass.test();}
}静态内部类
class OuterClass{public int date1 1;private int date2 2;public static int date3 3;//静态内部类static class InterClass{public int date4 4;public static int date5 5;private int date6 6;public void test(){System.out.println(InterClass:test());
// System.out.println(date1);//不能调用非静态的成员变量
// System.out.println(date2);//可以用外部类间接访问OuterClass outerClass new OuterClass();System.out.println(outerClass.date1);System.out.println(outerClass.date2);System.out.println(date3);System.out.println(date4);System.out.println(date5);System.out.println(date6);}}public void test(){System.out.println(OuterClass:test());}
}public class Test {public static void main(String[] args) {//静态内部类的实例化OuterClass.InterClass interClass new OuterClass.InterClass();interClass.test();}
}总结
equals比较方法最核心是要重写Object中的equals方法还有明白什么是外部类内部类以及实例内部类静态内部类。