Object类:
定义:Object类是层次结构的跟类,每个类都是使用Object类作为超类,所有对象以及数组都实现这个类的方法。
public void main{//默认继承了Object类
}
成员方法:
public int hasCode()返回该对象的哈希码值。(哈希码值是哈希码表中提供的一种算法),可以理解为地址值,
public class ObjectDemo {
public static void main(String[] args) {
//创建学生对象
Student s = new Student() ;
System.out.println(s.hashCode());//1829164700 哈希码值
Hastable(java.util)返回值是整数类型。
输出· 一个对象名称 ——>地址值(类名@十六进制数据)
public final Class getClass();通过这个方法获取当前类的字节码文件对象。返回当前类的运行时类(跟返射有关系)。
public class ObjectDemo {
public static void main(String[] args) {
//创建学生对象
Student s = new Student() ;
Class c = s.getClass();//返回当前类的运行时类
System.out.println(c);
Class类下面有一个方法:
public String getname (); 以String的形式返回此class 对象所表示的实体名称。
public class ObjectDemo {
public static void main(String[] args) {
//创建学生对象
Student s = new Student() ;
Class c = s.getClass();//返回当前类的运行时类
System.out.println(c);
String str = c.getName();//获取当前字节码文件对象的全路径名称(包名.类名)
System.out.println(str);
toString
public String toStrign():返回该对象的字符串表示。
//重写toString方法
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
总结:为了防止输出对象名称得到地址值,所以就必须要重写Object类中的toString方法。
equals
equals底层默认比较地址值是否相同(基本类型)
重写后比较内容是否相同(是系统自动重写) (基本类型)
代码示例:
package object_study_03;
public class StudentDemo {
public static void main(String[] args) {
Student s1 = new Student("李四",23);
Student s2 = new Student("李四",23);
System.out.println(s1==s2);
//equal重写之前比较的是地址值是否相同,
//equal重写之后比较的是值是否相同
Student s3=s1;
System.out.println(s3==s1);
System.out.println(s1.equals(s2));
}
}
运行结果
Scanner:Java.util.Scanner
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
成员方法
判断功能:public boolean hasNext xxx( );//针对录入数据之前进行判断,判断下一个数据是否是xxx类型。
获取功能:public xxx nextxxx( );获取键盘录入的xxx数据。