1.Object类
Object是类Object结构的根。 每个类都有Object作为超类(父类).
常用的功能:大部分常用类已经将这些功能重写了
public final Class getClass():表示正在运行的类的实例 (当前类的字节码文件对象)
public int hashCode():哈希码值,把它可以看成是一个"地址值",不是真实意义的地址值,和哈希表有关,不同的对象,哈希码值不同.
获取一个类的字节码文件对象的方式有几种?
1)Object的方法 public final Class getClass()
2)任意Java类型的class属性
/*class Demo{
}*/
public class ObjectDemo {
public static void main(String[] args) {
// Demo demo = new Demo() ;
// System.out.println(demo.getClass()) ;
//创建两个学生对象
Student s1 = new Student() ;
Student s2 = new Student() ;
//System.out.println(s1) ;
//System.out.println(s2) ;
Class c1 = s1.getClass() ;
Class c2 = s2.getClass() ;
System.out.println("-----------------------------------");
// public String getName()
String name1 = c1.getName();
String name2 = c2.getName();
System.out.println(name1+"----"+name2);
System.out.println(c1) ;//包名.类名
System.out.println(c2) ;
System.out.println(s1==s2) ;//分别需要开辟空间
System.out.println(c1==c2) ; //因为类就加载一次,产生的字节码文件就一个
System.out.println("----------------------------------") ;
//另一种方式也可以获取字节码文件对象
//任意Java类型的class属性(自定义的类/jdk提供类)
Class c3 = Student.class ;
System.out.println(c3);
System.out.println(c3==c2);
System.out.println("----------------------------------") ;
int i = s1.hashCode();
int i2 = s2.hashCode();
System.out.println(i);
System.out.println(i2);
System.out.println("高圆圆".hashCode()) ;
System.out.println("张少华".hashCode());
}
}
1.1 public String toString()
返回对象的字符串表示形式
应该是一个简明扼要的表达,容易让人阅读.创建对象,输出对象名称.打印出来的对象的地址值,没有意义;应该看到的是当前这个对象的成员信息表达式.建议所有子类覆盖此方法.
1.2 public boolean equals(Object obj)
指示其他对象与此对象是否"相等"
==和equals的区别:
==:连接的是基本数据类型:比较的基本数据类型数据值是否相等
int a= 10 ;
int b = 20 ;
a==b ;
==:连接的是引用数据类型,比较的是引用数据类型的地址值是否相同
equals:默认比较的是地址值是否相同,建议子类重写equals方法,比较他们内容是否相同(成员信息是否相同).
在重写equals方法的同时,还需要重写hashCode()方法,保证哈希码值必须一样,才能比 较equals.
大部分的常用类都会重写Object类的equals方法.
1.3 protected Object clone() throws CloneNotSupportedException
调用过程中可能存在克隆不支持的异常
对于jdk提供的类的方法本身存在异常.谁调用这个方法,必须做出处理,否则报错,最简单的方式继续往上抛 throws
2.Scanner类
文本扫描器
构造方法
public Scanner(InputStream source)
成员方法:
判断功能 haxNextXXX():判断下一个录入都是是否是XXX类型
public boolean hasNextInt():
public boolean hasNextLine().
获取功能 nextXXX()
public int nextInt()
public String nextLine()
public String next()
public class ScannerDemo {
public static void main(String[] args) {
//public Scanner(InputStream source):形式参数时候一个抽象类,需要有子类对象
//System类中存在一个"标准输入流"in
//public static final InputStream in
InputStream inputStream = System.in ; //字节输入流
//创建键盘录入对象
Scanner sc = new Scanner(inputStream) ;
System.out.println("录入一个数据:");
/* int num = sc.nextInt(); //获取功能
System.out.println(num);*/
//java.util.InputMismatchException:录入的数据和需要接收的num类型不匹配
//Scanner类的提供的判断功能
if(sc.hasNextInt()){
//录入的int类型
//接收int
int num = sc.nextInt() ;
System.out.println("您输入的数据是:"+num);
}else if(sc.hasNextLine()){
//录入的String
String line = sc.nextLine() ;
System.out.println("您输入的数据是:"+line);
}else{
System.out.println("对不起,没有提供其他接收的类型值...");
}
}
}
3.String类
String类代表字符串
Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例