1.前言
亲爱的小伙伴们,目前我们看到的是java基础部分的一个新的部分API。这是个啥
又能做啥呢?
其实可以概括成一句话,帮助我们站在巨人的肩膀上,实现更加高效的
开发,那么我们来一探究竟吧!
2.什么是API
API(Application Programming Interface ,应用程序接口)是一些预先定义的函数
目的是提供应用程序与开发人员基于某软件可以访问的一些功能集,
但又无需访问源码或理解内部工作机制的细节。API是一种通用功能集
有时公司会将API作为其公共开放系统,也就是公司制定自己的系统接口
标准,当需要进行系统整合,自定义和程序应用等操作时,公司所有成员
都可以通过接口标准调用源代码。
======================================================
java.util包是java中的工具包,包含各种实用工具类/集合类/日期时间工具等各种常用的工具包。
imprt.java.util.Scanner;
import.java.util.Arrays;
java。lang包是java的核心,包含了java基础类
包括基本object类/Class类/String类/基本数学类等最基本的类,这个包无需导入
,默认会自动导入。。
import.java.lang.Object;
import.java.lang.String;
import.java.lang.StringBuilder/StringBuffer
正则表达式
包装类等等
那么接下来我们会学习一些常用的类,帮助大家完成“基建工程”,首先第一位选手
就是传说中的Object类。
3.Object
3.1概念
Object 类是所有java类的祖先,也就是说我们所说的顶级父类
它存在于java。lang。Object。这个包不需要我们手动导包
需要注意的是每个类都使用Object作为超类,所有对象(包括数组)都实现这个类的方法
在不明确给出超类的情况下,java会自动把Object类作为要定义类的超类
/*本类用于测试顶级父类Object*/
public class TestObject{
mian{
//4.创建对象进行测试
Student s = new Student("海绵宝宝",3);
Student s2 = new Student("海绵宝宝",3);
/*用于测试toString();*/
//5.打印对象的属性值
//重写前:。。。api.Student@1b6d3586//没有明确指出父类,这是object的toString
//重写后:对象的类型与属性值
println(s);
println(s2);
/*用于测试hashCode()*/
*本方法的作用用于返回对应的哈希码值*
*本方法力求不同对象尽量返回不同的哈希码值*
*我们可以大致理解成不同对象的哈希码值就是不同的*
*极低的概率会一样,我们称之为哈希碰撞。*
//7.打印对象的哈希吗值
println(s.hashCode);
println(s2.hashCode);
/*本类用于测试equals();*/
*本方法底层的判断逻辑是==比较,==比较比较的是左右两边的值*
**而s与s2是引用类型Student的对象,保存的是两个不同的地址值
*所以,地址值不同,equals()返回false*
//8.打印equals()
println(s.equals(s2));//false
}
}
//创建学生类
class Student{
//2.定义属性
String name;//姓名
int age;//年龄
//3.添加无参与含参构造
//右键—》generate ->Constructor->select None->无参构造
//右键-》Generate->Constructorr->Shift全选所有的属性-》OK-》全参构造
//3.2添加无参构造与含参构造
public Student(String name,int age){
this.name = name;
this.age = age;
}
//右键-》Generate-》toString()-》OK
//6.在Student类中添加重写的toString()
//右键-》Generate-》toString()-》OK
//6.在student类中添加重写的toString方法。
@Override
public String toString(){
return "Student{"+
"name=' " + name + '/'' +
", age =" + age +
'}';
}
//9.添加重写的equals()
//右键-》Generate-》equals()与hashCode()-》一顿next即可
@Override
public boolean equals(Object o){
if(this==0) return true;//如果if后面只有一句可以省略大括号,第一步,判断地址值是否一样!
if(0 == null|| getClass() ! = o.getClass()) return false;
//判断对象有没有地址值,判断对象类型是否一致。 Student student = (Student) o;//强制类型转换
return age == student.age && Objects.equals(name, student.name)
//引用类型要用equals来比较,==号直接比较值是否一样。
}
@Override
public int hashCode(){
return Object,hash(name, age);
}
}