在Java中,API(Application Programming Interface)函数库是一组预定义的类、接口和方法,用于开发人员在编写Java应用程序时使用。它提供了一种标准化的方式,使开发人员能够与Java平台进行交互,并利用其中提供的功能和服务。
(大神封装好的函数库,咱直接用就行。)
在java的API中,类是被包在包中的(比如java.util包里有Arraylist类,java.lang包里有String类)。要使用API的类,你必须知道它被放在哪个包中。
因此,在程序的某个地方你必须要指明函数库类的完整名称,即包的名称加上类的名称。(包名.类名)目的就是归类。
比如,在我的Java录入个人信息教程中说过:
Java.util.Scanner sc = new java.util.Scanner(System.in);
Java.util就是包名,类名就是Scanner
什么情况下java中的类不需要加包名?
在 Java 中,类不需要加包名的情况主要有两种:
1.在同一个包中的类之间的访问:当类和被访问的类位于同一个包中时,无需加上包名。
2. 使用java.lang包中的类:Java编译器会自动导入java.lang包,因此无需显式导入或加上包名。
使用来自API中的类是很简单的,只要把它们当作自己的就好。
我们拿Object类举个例子
public class Review_API01 {
public static void main(String[] args) {
Student000 sss = new Student000();
}
}
class Student000{
}
创建了一个名为Review_API01
的公共类。
在main
方法中,创建了一个名为sss
的Student000
对象
我们之前说过每个类都默认继承Object类,那么Student000类肯定也继承Object类
来查询Oject类中有哪些方法?
在Java中,每个类都继承了Object
类,而Object
类中有一个hashCode()
方法,用于返回对象的哈希码。
我们来尝试调用一下hashCode()方法
调用该方法,会返回该对象的哈希码值。
哈希码(Hash Code)是由对象的哈希函数(Hash Function)生成的一个整数值。
默认情况下,hashCode()
方法会根据对象的内部地址或标识生成哈希码。
因此哈希码值不是对象的地址值哦,而是根据地址值转化为哈希码值的值。
public class Review_API01 {
public static void main(String[] args) {
Student000 sss = new Student000();
System.out.println(sss.hashCode());
}
}
class Student000{
}
输出结果为1163157884
再来看看Object类的toString方法
当你调用一个对象的toString()
方法时,它会返回一个字符串,这个字符串通常由对象的类名、一些标识信息和属性值组成。
我们创建对象,设置变量,看看它能不能返回一个简明易懂的信息表达式(包含类名,名字和年龄等信息)
public class Review_API02 {
public static void main(String[] args) {
Student0001 wa = new Student0001();
wa.setAge(20);
wa.setName("Emma");
System.out.println(wa.toString());
}
}
class Student0001{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
输出结果Student0001@4554617c
啊?这输出的一堆数字是啥玩意啊?
别急,图里不说了吗?
换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
所以为了得到简明易懂的信息表达式,我们还是要进行显示重写的嘞
public class Review_API02 {
public static void main(String[] args) {
Student0001 wa = new Student0001();
wa.setAge(20);
wa.setName("Emma");
System.out.println(wa.toString());
}
}
class Student0001{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override//重写
public String toString() {
return "Student0001{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
输出结果:
Student0001{age=20, name='Emma'}