Java中的祖宗类Object怎么使用
这篇文章主要介绍“Java中的祖宗类Object怎么使用”,在日常操作中,相信很多人在Java中的祖宗类Object怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中的祖宗类Object怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、简介正如前面所说的,Object类作为Java中最常用的内置包装类之一,它是Java所有类的父类,我们也常常从称之为祖宗类,来彰显其地位之高。如果一个类没有指定父类,那么它默认的父类就是Object类。因此,以下两段代码性质是一样的:
publicclassMyee{...}
publicclassMyeeextendsObject{...}
由于Java中的所有类都是Object类的子类,也因此可以调用该类中的所有方法
二、toString()方法该方法从字面上来看,to 是得到、获取,String 大家都公认是个字符串的符号了,因此结合在一起,这个方法就是获取字符串的方法的。官方的解释,就是返回对象的字符串。
toString()也有一个比较常用,但是不直接使用的方式。再平常我们会把字符串和某个对象用连接符号(+)连接在一起的时候,系统会默认把调用这个对象的 toString() 方法来返回一个字符串。
在 Object 类中的 toString() 方法返回的是一个“运行时类名@十六进制哈希值”,如:
//定义Demo类,实际上继承Object类classDemo{}publicclassObjectDemo01{publicstaticvoidmain(String[]args){Demod=newDemo();//实例化Demo对象System.out.println("不加toString()输出:"+d);System.out.println("加上toString()输出:"+d.toString());}}
输出结果:
不加toString()输出:Demo@15db9742
加上toString()输出:Demo@15db9742
从上述的输出结果可见,加不加 toString() 方法,输出的都是一样的结果。
因此,一般许多类都会对 toString() 方法进行重写。
publicclassPerson{privateStringname;privateintage;publicPerson(Stringname,intage){this.name=name;this.age=age;}publicStringtoString(){return"姓名:"+this.name+":年龄"+this.age;}publicstaticvoidmain(String[]args){Personper=newPerson("小明",30);//实例化Person对象System.out.println("对象信息:"+per);//打印对象调用toString()方法}}
输出结果:
对象信息:姓名:小明:年龄30
以上代码就是对 toString() 方法进行了重写,这样直接输出对象时调用的就是子类重写过的该方法。
三、equals()方法在学习字符串比较的时候,我们就学过两种比较方式,一种是 == 比较运算符,另一个就是接下来要讲的 equals() 方法。
这两种比较方式有什么样的区别呢?== 比较运算符,比较两个变量是否指向同一个实例;而 equals() 方法值只比较两个对象的内容是否一致。一般来说,字符串一般只关心内容一样不一样。
使用格式:
booleanresult=obj.equals(Objecto);
其中 obj 表示要进行比较的对象, o 表示被比较的对象。
下面我将用具体的代码实例来展示一下 equals() 方法的用法:
场景需求:编写一个 Java 程序,来实现用户登录的验证功能。要求用户从键盘上是输入账户和密码,如果账户和密码与指定的内容一样的时候,则显示成功登录;否则,会显示登陆失败。
importjava.util.Scanner;publicclassTest01{//验证用户名和密码publicstaticbooleanvalidateLogin(Stringuname,Stringupwd){booleancon=false;if(uname.equals("admin")&&upwd.equals("admin")){//比较两个String对象con=true;}else{con=false;}returncon;}publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.println("------欢迎使用大数据管理平台------");System.out.println("用户名:");Stringusername=input.next();//获取用户输入的用户名System.out.println("密码:");Stringpwd=input.next();//获取用户输入的密码booleancon=validateLogin(username,pwd);if(con){System.out.println("登录成功!");}else{System.out.println("用户名或密码有误!");}}}
失败显示:
------欢迎使用大数据管理平台------
用户名:
adimn
密码:
admin
用户名或密码有误!
成功显示:
四、getClass()方法------欢迎使用大数据管理平台------
用户名:
admin
密码:
admin
登陆成功!
从该方法的字面上看,get 获得,获取; Class 都知道是类。因此这个方法从字面上看,就是获取类名的方法。在官方的解释是,返回当前对象所属的类,是一个 Class 对象。通过这个 Class 对象,可以获取该类的所有信息,包括了类名、父类以及它所实现的接口等等。
下面我们用一个代码示例演示一下:
publicclassTest02{publicstaticvoidprintClassInfo(Objectobj){//获取类名System.out.println("类名:"+obj.getClass().getName());//获取父类名System.out.println("父类:"+obj.getClass().getSuperclass().getName());System.out.println("实现的接口有:");//获取实现的接口并输出for(inti=0;i<obj.getClass().getInterfaces().length;i++){System.out.println(obj.getClass().getInterfaces()[i]);}}publicstaticvoidmain(String[]args){StringstrObj=newString();printClassInfo(strObj);}}
运行结果:
类名:java.lang.String父类:java.lang.Object实现的接口有:interfacejava.io.Serializableinterfacejava.lang.Comparableinterfacejava.lang.CharSequence
到此,关于“Java中的祖宗类Object怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。