Java Object类详解:Object类的常用方法(equals()和getClass()
发布时间:2020-12-15 02:37:01 所属栏目:Java 来源:网络整理
导读:Object 是 Java 类库中的一个特殊类,也是所有类的父类。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。 因此,以下两个类是等价的。 public class MyClass{…} 等价于 public class MyClass extends Object {…} 由于 Java 中的
Object 是 Java 类库中的一个特殊类,也是所有类的父类。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。因此,以下两个类是等价的。
public class MyClass{…}等价于 public class MyClass extends Object {…} 由于 Java 中的所有类都是由 Object 类派生出来的,因此在 Object 类中定义的方法,在其他类中都可以使用,常见的方法如表 1 所示。
其中,equals() 方法和 getClass() 方法在 Java 程序中比较常用。 equals() 方法equals() 方法的作用与运算符类似,用于值与值的比较和值与对象的比较,而 equals() 方法用于对象与对象之间的比较,其使用格式如下:boolean result = obj.equals(Object o);其中,obj 表示要进行比较的一个对象,o 表示另一个对象。 例 1编写一个 Java 程序,实现用户登录的验证功能。要求,用户从键盘输入登录用户名和密码,当用户输入的用户名等于 admin 并且密码也等于 admin 时,则表示该用户为合法用户,提示登录成功,否则提示用户名或者密码错误信息。在这里使用 equals() 方法将用户输入的字符串与保存 admin 的字符串对象进行比较,具体的代码如下: import java.util.Scanner; public class Test01 { // 验证用户名和密码 public static boolean validateLogin(String uname,String upwd) { boolean con = false; if (uname.equals("admin") && upwd.equals("admin")) { // 比较两个 String 对象 con = true; } else { con = false; } return con; } public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("------欢迎使用大数据管理平台------"); System.out.println("用户名:"); String username = input.next(); // 获取用户输入的用户名 System.out.println("密码:"); String pwd = input.next(); // 获取用户输入的密码 boolean con = validateLogin(username,pwd); if (con) { System.out.println("登录成功!"); } else { System.out.println("用户名或密码有误!"); } } }上述代码在 validateLogin() 方法中又使用 equals() 方法将两个 String 类型的对象进行了比较,当 uname 对象与保存 admin 的 String 对象相同时,uname.equals("admin") 为 true;与此相同,当 upwd 对象与保存 admin 的 String 对象相同时,upwd.equals("admin") 为 true。当用户输入的用户名和密码都为 admin 时,表示该用户为合法用户,提示登录成功信息,否则提示用户名或密码有误的错误信息。 该程序的运行结果下所示: ------欢迎使用大数据管理平台------ 用户名: adinm 密码: admin 用户名或密码有误! ------欢迎使用大数据管理平台------ 用户名: admin 密码: admin 登录成功! getClass() 方法getClass() 方法返回对象所属的类,是一个 Class 对象。通过 Class 对象可以获取该类的各种信息,包括类名、父类以及它所实现接口的名字等。例 2编写一个实例,演示如何对 String 类型调用 getClass() 方法,然后输出其父类及实现的接口信息。具体实现代码如下:public class Test02 { public static void printClassInfo(Object obj) { // 获取类名 System.out.println("类名:" + obj.getClass().getName()); // 获取父类名 System.out.println("父类:" + obj.getClass().getSuperclass().getName()); System.out.println("实现的接口有:"); // 获取实现的接口并输出 for (int i = 0; i < obj.getClass().getInterfaces().length; i++) { System.out.println(obj.getClass().getInterfaces()[i]); } } public static void main(String[] args) { String strObj = new String(); printClassInfo(strObj); } }该程序的运行结果如下: 类名:java.lang.String 父类:java.lang.Object 实现的接口有: interface java.io.Serializable interface java.lang.Comparable interface java.lang.CharSequence (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |