JAVA常用工具 --API之关于Object的基础讲解(以及Javabean对于Object中方法重写的基础介绍)hashCode(),getClass(),toString,equals()

JAVA常用工具-----API 

使用步骤应用举例:

  1. 顶层父类:Object 所有的类的父类
  2. 控制台录入:Scanner 可以接受从控制台录入的数据
  3. 字符串处理:String 类
  4. 字符串处理:StringBuilder 和 StringBuffer
  5.  日期获取:Date 和Calendar 
  6. 基本类型的包装类     

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 类 ,后期会有

  1. 控制台录入:Scanner 可以接受从控制台录入的数据
  2. 字符串处理:String 类
  3. 字符串处理:StringBuilder 和 StringBuffer
  4.  日期获取:Date 和Calendar 
  5. 基本类型的包装类     

的介绍,请关注我吧,如果看的还可以,就留下一个赞 ,再走吧。

谢谢您的支持。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想睡醒的梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值