JAVA常用工具-----API
使用步骤应用举例:
- 顶层父类:Object 所有的类的父类
- 控制台录入:Scanner 可以接受从控制台录入的数据
- 字符串处理:String 类
- 字符串处理:StringBuilder 和 StringBuffer
- 日期获取:Date 和Calendar
- 基本类型的包装类
JAVA的常用工具:API 集合 IO流 三种
接下来讲解一下API
一:API简介:
Application Programming Interface,应用程序编程接口,这里指的是API文档,通常叫"Java文档”,是Java中提供的类的使用说明书。
作用:发挥面向对象思想,找到Java提供的对象来实现功能,学习API文档就是在学习Java中类的使用方法。
Java中组件的层次结构:模块(module) → 包 (package) → 类或者接口(class/interface)
那么什么是API呢?
打开网页:https://docs.oracle.com/javase/8/docs/api/ 注意:此网页全是英文 可以翻译此页
此网页包含所有的类.模块.包和接口的使用方法等等含有详细介绍。理解可用。
二:Object类
简介:类层次结构最顶层的基类,所有类都直接或间接的继承自Object类,所以,所有的类都有一个 Object(对象)。 Java.base → java.long → Object类
构造方法:Object():构造一个对象,所有子类对象都会优先调用该方法。
class student extends person{}
class person extends Object{}
//建立两个person 和 stunent 类 把student 继承 person类
//但是在默认的情况下 person 继承 Object 类
//但这个继承不会出现,这是固定。
成员方法(含代码介绍)只写几个重点的(都是非静态方法)
注意:Java.lang包下的类可以直接使用不需要导包。(规定)
1:int hashCode(): 返回对象的哈希码值,该方法通过对象的地址值进行计算,不同对象的返回值一般不同。(不同对象的哈希码值一般不同)
public class object {
public static void main(String[] args) {
// TODO Auto-generated method stub
Object obj1 = new Object();
Object obj2 = new Object();
int test1=obj1.hashCode();
int test2=obj2.hashCode();
System.out.println(test1);
System.out.println(test2);
}
}
----------------------------------
输出结果:
798154996
681842940
2:class <?> getClass();返回调用此方法对象的运行时类对象(调用者的字节码文件对象)
注意:一个类只有一个字节码文件对象(所以无论创建多少个对象最后实现的都是以字节码文件。
public class object {
public static void main(String[] args) {
// TODO Auto-generated method stub
Object obj1 = new Object();
Object obj2 = new Object();
Class test1 = obj1.getClass();
Class test2 = obj2.getClass();
System.out.println(test1);
System.out.println(test2);
}
}
---------------------------
输出结果:
class java.lang.Object
class java.lang.Object
3:String toString ():返回该对象的字符串表示。
注意:输出为:地址值,不同的对象的地址值肯定不相同。
拓展:地址值:全类名 + @ +该对象的哈希码值的无符号十六进制形式。
public class object {
public static void main(String[] args) {
// TODO Auto-generated method stub
Object obj1 = new Object();
Object obj2 = new Object();
String s1 = obj1.toString();
String s2 = obj2.toString();
System.out.println(s1);
System.out.println(s2);
}
}
----------------------------
输出结果:
java.lang.Object@2f92e0f4
java.lang.Object@28a418fc
4:boolean :返回其他某个是否与此对象“相等”。默认情况下比较两个对象的引用,建议重写。
注意:此方法是比较两个对象是否相等,默认比较的是地址值。无意义,因为不同的对象地址值不同。子类一般都会重写此方法。
public class object {
public static void main(String[] args) {
// TODO Auto-generated method stub
Object obj1 = new Object();
Object obj2 = new Object();
boolean b1= obj1.equals(obj2);
System.out.println(b1);
}
}
------------------------------
输出结果:
false
三:JavaBean 重写Object类的方法。
1:实现一个完整的JavaBean类(例如:students类 私有的有 id name score方法)
创建方法的快捷键。
get 和set方法建立:alt + shift + s + r
有参构造: alt + shift + s + o
无参构造:alt + shift + s + c
package API;
public class javabeanobject {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
class students{
private int id;
private String name;
private int score;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public students() {
super();
// TODO Auto-generated constructor stub
}
2:在学生类进行Object (toString 和 equals两种进行重写)
@Override //toString的重写
public String toString() {
return "student [id=" + id + ", name=" + name + ", score=" + score + "]";
}
@Override //对于equals方法进行重写。
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
students other = (students) obj;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (score != other.score)
return false;
return true;
}
3:对于重写的方法进行实验
重写步骤:alt + shift + s (然后选择相应的方法进行方法重写)
public class javabeanobject {
public static void main(String[] args) {
// TODO Auto-generated method stub
students obj1 = new students(19,"马",100);
System.out.println(obj1);
students obj2 = new students(18,"马",100);
System.out.println(obj2);
boolean test = obj1.equals(obj2);
System.out.println(test);
}
}
-----------------------------------
输出结果:
student [id=19, name=马, score=100]
student [id=18, name=马, score=100]
false
这个博客只介绍了API的Object 类 ,后期会有
- 控制台录入:Scanner 可以接受从控制台录入的数据
- 字符串处理:String 类
- 字符串处理:StringBuilder 和 StringBuffer
- 日期获取:Date 和Calendar
- 基本类型的包装类