26.equals函数的作用

  • equals函数在什么地方
    • 所有的类当中都会有equals函数
  • equals函数的作用
    • “==”操作符的作用:判断两个引用是否指向堆内存当中的同一块地址
  1. publicclassTest{
  2. publicstaticvoid main(String args []){
  3. User u1 =newUser();
  4. User u2 =newUser();
  5. User u3 = u1;
  6. boolean b1 = u1 == u2;
  7. boolean b2 = u1 == u3;
  8. System.out.println(b1);
  9. System.out.println(b2);
  10. }
  11. }

结果:

D:\work\src>javac Test.java

D:\work\src>java Test

false

true

    • equals函数的作用是用来比较,两个对象的内容是否相等(类型和值都相等)
  • 复写equals函数的方法
  1. classUser{
  2. String name;
  3. int age;
  4. public boolean equals(Object obj){
  5. if(this== obj){
  6. returntrue;
  7. }
  8. //instanceof作用:判断前面的对象是不是后面对象的类型
  9. boolean b = obj instanceof User;
  10. if(b){
  11. //obj向下转型为User对象
  12. User u =(User)obj;
  13. if(this.age == u.age &&this.name.equals(u.name)){
  14. returntrue;
  15. }
  16. else{
  17. returnfalse;
  18. }
  19. }
  20. else{
  21. returnfalse;
  22. }
  23. }
  24. }
  1. publicclassTest{
  2. publicstaticvoid main(String args []){
  3. User u1 =newUser();
  4. User u2 =newUser();
  5. User u3 =newUser();
  6. u1.name ="zhagnsan";
  7. u1.age =12;
  8. u2.name ="lisi";
  9. u2.age =12;
  10. u3.name ="zhagnsan";
  11. u3.age =12;
  12. System.out.println(u1.equals(u2));
  13. System.out.println(u1.equals(u3));
  14. }
  15. }

结果:

D:\work\src>javac User.java

D:\work\src>javac Test.java

D:\work\src>java Test

false

true

来自为知笔记(Wiz)

时间: 2024-11-05 08:05:52

26.equals函数的作用的相关文章

equals函数的作用

1.equals函数在哪 2.equals函数的作用 3.equals函数方法的复写 1.equals函数在哪 包含在Object类, 而Object是所有类的父类, 因此所有类都有equals函数 2.equals函数的作用 首先讲"=="的概念, 再讲equals, 不能混淆这两个 编辑器使用sublime_Text代替Notepad, 界面确实很好看 1 class User{ 2 String name; 3 int age; 4 } 1 class Test{ 2 publi

第38节:hashCode()与toString()与equals()函数的作用,内部类和匿名内部类

hashCode()和toString() Hash算法是把任意长度的数据通过hash算法成为散列值 hashCode() public int hashCode(){ int result = 10; result = 2*result + age; result = 2*result + name.hashCode(); return result; } toString() public String toString(){ String result = "age:"+age+

完美重写Java的equals函数

首先看一下String的equals()函数的重写: 1 /** 2 * Compares this string to the specified object. The result is {@code 3 * true} if and only if the argument is not {@code null} and is a {@code 4 * String} object that represents the same sequence of characters as th

【学习笔记】【C语言】static和extern对函数的作用

如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.obj可能会调用c.obj中定义的一个函数.将这些相关联的目标文件链接在一起后才能生成可执行文件. 外部函数:如果在当前文件中定义的函数允许其他文件访问.调用,就称为外部函数.C语言规定,不允许有同名的外部函数.内部函数:如果在当前文件中定义的函数不允许其他文件访问.调用,只能在内部使用,就称为内部函数.C语言规定不同的源文件可以有同名的内部函数

虚函数的使用 以及虚函数与重载的关系, 空虚函数的作用,纯虚函数->抽象类,基类虚析构函数使释放对象更彻底

为了访问公有派生类的特定成员,可以通过讲基类指针显示转换为派生类指针. 也可以将基类的非静态成员函数定义为虚函数(在函数前加上virtual) 1 #include<iostream> 2 using namespace std; 3 4 class base{ 5 public: 6 /*virtual*/ void who(){ //define this function to virtual will be normal 7 cout << "this is th

mysql中floor函数的作用是什么?

需求描述: 最近写mysql程序的时候,使用了floor函数,在此记录下该函数的作用 操作过程: 1.使用floor函数的测试 mysql> select floor(1.23),floor(-1.23); +-------------+--------------+ | floor(1.23) | floor(-1.23) | +-------------+--------------+ | 1 | -2 | +-------------+--------------+ 1 row in se

[转]什么是C++虚函数、虚函数的作用和使用方法

我们知道,在同一类中是不能定义两个名字相同.参数个数和类型都相同的函数的,否则就是“重复定义”.但是在类的继承层次结构中,在不同的层次中可以出现名字相同.参数个数和类型都相同而功能不同的函数.例如在例12.1(具体代码请查看:C++多态性的一个典型例子)程序中,在Circle类中定义了 area函数,在Circle类的派生类Cylinder中也定义了一个area函数.这两个函数不仅名字相同,而且参数个数相同(均为0),但功能不同,函数体是不同的.前者的作用是求圆面积,后者的作用是求圆柱体的表面积

18-C语言static和extern关键字1-对函数的作用

一.extern与函数 在第三讲和第四讲中,我提到过一句话:如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.obj可能会调用c.obj中定义的一个函数.将这些相关联的目标文件链接在一起后才能生成可执行文件. 先来理解2个概念: 外部函数:如果在当前文件中定义的函数允许其他文件访问.调用,就称为外部函数.C语言规定,不允许有同名的外部函数. 内部函数:如果在当前文件中定义的函数不允许其他文件访问

编程题:strcmp()函数的作用是:从左到右逐个字符比较。遇见‘\0’为止。

编程题:strcmp()函数的作用是:从左到右逐个字符比较.(按照字符对应的ascii码值比较)遇见'\0'为止. #include<stdio.h> #include<string.h> int string_compare(char string1[],char string2[]) { int i=0; while(string1[i]==string2[i]&&string1[i]!='\0') i++; return string1[i]-string2[