JavaApi高级编程(一)Object以及equals和==的区别

简介: JavaApi高级编程(一)Object以及equals和==的区别

一、Api概念


1、API(application programming interface

A、应用程序接口

B、函数与类的集合


二、java的数据类型


1、值类型

值类型储存在内存的堆栈(简称为栈),包含八种基本数据类型分别对应八种封装类

例如:int、double、float

2、引用类型

引用类型存放的是引用类型变量的地址,而它本身是存储在堆

例如:数组、String、类、接口


三、equals和==用法的区别


1、==用于比较地址

含义:比较两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即内容是否相同

//如果年龄相同,就返回trues

public boolean equals(Object obj) {
  if(obj instanceof Student) {
    Student stu = (Student)obj;
    if(stu.getAge()==this.age) {
    return true;
    }
  }
  return false;
  }

2、equals用于比较对象存的内容

含义:两个变量是否是对同一个对象的引用,也就是堆中的内容是否相同

//如果两个学生的学号相同,姓名也相同,就返回true

public boolean equals(Object obj) {
  if(obj instanceof Student) {
    Student stu = (Student) obj;
    if(stu.getSid()==this.sid && stu.getName().equals(this.name)) {
    return true;
    }
    }
    return false;
  }


四、object类


含义:基类、超类、根类,任何类直接或间接继承于Object

主要方法:

1、toString()方法

对象在打印的时候一定会调用toString()方法,并且是默认调用,重写toString()方法

public class Person {
  private String name;//姓名
  private String sex;//性别
    public Person(String name,String sex,) {
  this.name = name;
  this.sex = sex;
    }
    public String toString() {
  return "姓名:" + this.name + "; "性别:" + this.sex;
    }
}

2、equals()方法

主要功能是进行对象的比较操作

public class Person {
  private String name;//姓名
  private String sfz;//身份证
  private String sex;//性别
  private String saddress;//地址
  private int age;//年龄
  public Person(String name, String sfz, String sex, String saddress,int age) {
  super();
  this.name = name;
  this.sfz = sfz;
  this.sex = sex;
  this.saddress = saddress;
  this.age = age;
  }
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  public String getSfz() {
  return sfz;
  }
  public void setSfz(String sfz) {
  this.sfz = sfz;
  }
  public String getSex() {
  return sex;
  }
  public void setSex(String sex) {
  this.sex = sex;
  }
  public String getSaddress() {
  return saddress;
  }
  public void setSaddress(String saddress) {
  this.saddress = saddress;
  }
  public int getAge() {
  return age;
  }
  public void setAge(int age) {
  this.age = age;
  }

 2.1、在类中equals();

public boolean equals(Object obj) {
  if(obj instanceof Person) {
    Person per = (Person)obj;
    if(per.getSfz().equals(this.sfz) && per.getName().equals(this.name)) {
        return true;
    }
  }
  return false;
  }

以上知识就分享到这里,希望对大家有帮助

相关文章
|
7月前
|
JavaScript 前端开发 API
DOM编程:Document Object Model
DOM编程:Document Object Model
|
4天前
Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别以及优缺点
Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别以及优缺点
7 0
|
16天前
|
安全 Java 编译器
【JAVA】泛型和Object的区别
【JAVA】泛型和Object的区别
|
1月前
|
JavaScript 前端开发
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
26 1
|
2月前
|
存储 JavaScript
JS中Map对象与object的区别
JS中Map对象与object的区别
|
2月前
|
JavaScript 前端开发 Java
编程笔记 html5&css&js 073 JavaScript Object数据类型
编程笔记 html5&css&js 073 JavaScript Object数据类型
|
3月前
Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别以及优缺点
Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别以及优缺点
|
3月前
|
存储 BI 数据库
如何使用 ABAP 编程的方式,给 Business Object 创建 attachment
如何使用 ABAP 编程的方式,给 Business Object 创建 attachment
22 0
如何使用 ABAP 编程的方式,给 Business Object 创建 attachment
|
4月前
|
JavaScript 前端开发
JavaScript 中 == 和 Object.is() 的区别
JavaScript 中 == 和 Object.is() 的区别
14 0
|
4月前
|
JavaScript 数据安全/隐私保护 开发者
常见的vue面试中的proxy和object.defineProperty的区别
常见的vue面试中的proxy和object.defineProperty的区别