Object对象
我们先来介绍一下API
API(Application Programming Interface):应用程序编程接口
Java API
- 就是Java提供给我们使用的类,这些类将底层的实现封装起来
- 我们不需要关心这些类是如何实现的,只需要学习这些类如何使用的就好
Ojbect是超级类,任何类都会继承与Object类,你不写,父类默认是Object
Object的概述
- Object是类层次结构的根类
- 所有类都直接或者间接的继承与Object类
- Object类的构造方法: public Object()
- 子类的构造方法默认访问的是父类的无参数构造方法
Object的hashCode方法
- Object有一个方法public int hashCode()
- 方法返回一个哈希码值,默认情况下该方法会根据对象的地址来计算
- 不同对象的hashCode()一般来说不会相同,但是同一个对象的hashCode值是肯定相同的
- 注意:hashCode不是对象的实际地址值,可以理解为逻辑地址值
public class test { public static void main(String[] args){ StudentTest std1 = new StudentTest("null",11); StudentTest std2 = new StudentTest("null",12); StudentTest std3 = std1; System.out.println("std1:"+std1.hashCode()); System.out.println("std2:"+std2.hashCode()); System.out.println("std3:"+std3.hashCode()); } } class StudentTest{ String name; int age; public StudentTest(String name,int age){ this.name = name; this.age = age; } }
Object的getClass方法
- 返回此object运行时类
- 可以通过class类中的一个方法,获取对象的真实类的全名称
package day15_nullnull; public class test { public static void main(String[] args){ StudentTest std1 = new StudentTest("null",11); StudentTest std2 = new StudentTest("null",12); StudentTest std3 = std1; System.out.println(std1.getClass()); System.out.println(std2.getClass()); System.out.println(std3.getClass()); } } class StudentTest{ String name; int age; public StudentTest(String name,int age){ this.name = name; this.age = age; } }
Object类的toString方法
- toString方法返回此对象的字符串表示
- 一般相当于:(d.hashCode())
- 但我们打印一个对象的时候,我们默认调用的就是toString方法,相当于Python中的__str__
- 这个方法我们一个用于自定义字符串输出
建议重写toString方法
Object类的equals方法
- 表示与其他对象是否相等
- 默认情况下比较的是 对象的引用(地址)是否相同
- 由于比较对象的引用没有意义,一般建议重写这个方法
补充:==与equals方法的区别
- ==是一个比较云算法,即可以比较基本数据类型,也可以比较引用数据类型
- 基本数据类型比较的是值,引用数据类型比较的是地址值
- equals方法是一个方法,只能比较数据类型
- 默认的equals和==比较引用数据类型无任何区别
- 但是通过自定制,我们可以做到我们想要的比较结果
Scanner类的一些介绍
scanner是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器
scanner的构造方法:
Scanner(InputStream source)
System.in 介绍
- System类下有一个静态的字段
- public static final InputStream in 标准的输入流,对应着键盘录入
Scanner的成员方法:
比较重要的:
hasNext.. 判断是否还有下一个输入项,其中...可以是Int,Double等,如果需要判断是否包含字符串,则可以省略...
next.... 获取下一个输入项
常用的:
- public int nextInt(); 获取一个int类型的值
- public String nextLine(); 获取一个String类型的值,也就是字符串
- 注意:如果要连用,最好使用一样的
String类的介绍
string的构造方法:
- public String()
- public String(byte[] bytes) 把字节数组转化为字符串
- public String(byte[] bytes,int index,int length) 把字节数组的一部分转化为字符串
- public String(char[] value,int index,int count) 把字符数组的一部分转化为字符串
- public String(String original) 初始化一个新创建的String对象,使其表示一个与参数相同的字符序列;就是说,新创建的字符串是该参数字符串的一个副本(有没有想到深拷贝)
package day15_nullnull_01; public class null_String { public static void main(String[] args){ String str1 = new String(); System.out.println(str1); byte[] bytes1 = {97,98,99}; String str2