1、instanceof 关键字
意思:检测一个对象是否是一个类的实例,是则返回true
用法:if(a instanceof Person) System.ou.println("a是Person类的实例");
2、equals()
equals对对象而言是比较两个对象的地址,如果你想设计成两个对象属性相同就是同一个对象的话,你可以选择重写equals方法。
图片.pngequals对String而言,比较的是内容 ,下面是String类equals()方法的源码,很明显,是 先比长度,再比内容。若都满足,则两个字符串相同。
3、关于可变参数
如下:其实就是一个对象数组,如果你用Object... objects 来定义,那么就可以任意参数,任意数量了。
//定义
public Student[] getStudents() {
return this.students;
}
public void setStudents(Student... students) {
this.students = students;
}
//使用
Teacher t = new Teacher();
t.setName("martin");
Student s1 = new Student();
s1.name = "student 1";
Student s2 = new Student();
s2.name = "student 2";
Student s3 = new Student();
s3.name = "student 3";
t.setStudents(s1,s2,s3);
Student[] students = t.getStudents();
for(Student s:students) {
System.out.println(s);
}
4、完整的枚举类的定义
public enum Size {
//单例构造枚举值
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL");
private String abbrevition;
//私有化构造器
private Size(String abbrevition) {
this.abbrevition = abbrevition;
}
public String getAbbrevition() {
return abbrevition;
}
}
5、反射 -------此处引用一篇优秀的文章
https://www.jianshu.com/p/10c29883eac1
获取类的方法有以下三种:
Class c1 = Test.class; //这说明任何一个类都有一个隐含的静态成员变量class,这种方式是通过获取类的静态成员变量class得到的()
Class c2 = test.getClass();// test是Test类的一个对象,这种方式是通过一个类的对象的getClass()方法获得的 (对于基本类型无法使用这种方法)
Class c3 = Class.forName("com.catchu.me.reflect.Test"); //这种方法是Class类调用forName方法,通过一个类的全量限定名获得(基本类型无法使用此方法)
所有内容均个人编辑,如有错误,欢迎指正!
网友评论