欢迎来到天天文库
浏览记录
ID:57060216
大小:505.50 KB
页数:122页
时间:2020-07-30
《[计算机软件及应用]JAVA基本类课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java基本类1Object类Object类是Java程序中所有类的直接或间接父类,也是类库中所有类的父类。所有类都是从Object类派生出来的,所以Object类包含了所有Java类的公有属性。2(1)equals方法:publicbooleanequals(Objectobj)比较两个对象的内存地址是否相同(不是对象的值),相同则返回true,否则返回false。由于equals方法是属于Object类的,而Object类是所有类的父类,所以在任何类里都可以直接使用这个方法。3调用equals方法的语法如下:object1.equals(o
2、bject2)默认equals方法的定义如下:publicbooleanequals(Objectobj){return(this==obj);}4在Object类中equals方法与运算符“==”是等效的。但两者有如下的区别:equals方法只能用于引用类型,而"=="可用于所有类型(包括简单数据类型)5classValue{inti;}publicclassEqualsMethod2{publicstaticvoidmain(String[]args){Valuev1=newValue();Valuev2=newValue();v1.i=v
3、2.i=100;System.out.println(v1.equals(v2));}}///:~如果输出语句前加一句:v1=v2;结果如何呢?6如比较两个字符时,使用关系运算符"==",而比较两个字符串则需要使用equals方法。classA{inta=1;}publicclassaa{publicstaticvoidmain(Stringargs[]){Aobj1=newA();Aobj2=newA();Strings1,s2,s3="abc",s4="abc";s1=newString("abc");s2=newString("abc")
4、;System.out.println("s1==s2是"+(s1==s2));System.out.println("s1.equals(s2)是"+(s1.equals(s2)));7System.out.println("s1==s3是"+(s1==s3));System.out.println("s1.equals(s3)是"+(s1.equals(s3)));System.out.println("s3==s4是"+(s3==s4));System.out.println("s3.equals(s4)是"+(s3.equals(s4)
5、));System.out.println("s2==s3是"+(s2==s3));System.out.println("s2.equals(s3)是"+(s2.equals(s3)));System.out.println("obj1==obj2是"+(obj1==obj2));System.out.println("obj1.equals(obj2)是"+(obj1.equals(obj2)));obj1=obj2;System.out.println("obj1=obj2后obj1==obj2是"+(obj1==obj2));Syste
6、m.out.println("obj1=obj2后obj1.equals(obj2)是"+(obj1.equals(obj2)));}}8输出结果为:s1==s2是falses1.equals(s2)是trues1==s3是falses1.equals(s3)是trues3==s4是trues3.equals(s4)是trues2==s3是falses2.equals(s3)是trueobj1==obj2是falseobj1.equals(obj2)是falseobj1=obj2后obj1==obj2是trueobj1=obj2后obj1.eq
7、uals(obj2)是true9由输出结果可以看出,对于字符串变量来说:“==”运算符用来比较两个变量本身的值,即两个对象在内存中的首地址,而"equals()“方法则用来比较两个字符串中所包含的内容是否相同。(有程序可知s3、s4这两个由字符串常量生成的变量在内存中存放的地址是相同的。)10对于非字符串变量来说:"=="和"equals()"方法则都用来比较两个类类型的变量是否指向同一对象,即比较其在堆内存中的首地址。11非常重要的是:Java的File,String,Date及包装类等对equals方法进行了重写,比较的是对象的值,而不是对
8、象的内存地址了,如上面的例子就是关于String的。12注意:如果equals方法比较的两个对象的类型不同,虽然值一样但结果仍然是false。例如:L
此文档下载收益归作者所有