8.2常用类(Object类,Scanner类)
来源:互联网 发布:网络推广活动方案 编辑:程序博客网 时间:2024/06/06 05:38
一、Object类概述及其构造方法
(1) Object类概述:是类层次结构的根类,所有类都直接或者间接的继承自该类,所有对象(包括数组)都实现这个类的方法。
(2) 构造方法:public Object()
(3) Object类的成员方法:
publicint hashCode()
a. 返回该对象的哈希码值。哈希码值在底层通过哈希表进行的一个哈希算法算出来的。
b. 不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。
c. 哈希码值不是实际地址值,可以理解为逻辑地址值。举例:物体和编号
publicfinal Class getClass()
a. 返回此 Object的运行时类。
b. 可以通过Class类中的一个方法: public String getName()以 String的形式返回此 Class(类),获取对象的真实类的全名称。
publicString toString()
a. 返回该对象的字符串表示。通常,toString方法会返回一个“以文本方式表示”此对象的字符串
b. 它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode())
【Integer类】
是int类型的包装类型:从一个基本类型---->提升了Integer类型(JDK5.0以后特性:
int类型---->自动装箱 Integer类型
Integer类型--->自动拆箱int)
public static String toHexString(inti)
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
c. 创建对象,直接输出对象名称,其实是调用了toString()方法,打印出来的是一个全路径名称的一个地址值:包名.类名@16进制数据
d. 如果想打印出来显示的是该类中的成员,就需要重写Object中的toString();在一个类中重写toString()是不需要手动建立的,自动生成!( alt+shift+s-->s)
publicboolean equals(Object obj)
a. 指示其他某个对象是否与此对象“相等”。
b. 默认情况下比较的是对象的地址值是否相同。
c. 如果要比较的他们的内容(成员变量)是否相同,那么就必须重写equals()方法。手动重写/自动生成
d. ==和equals()的区别。(面试题)
==: 在String类:直接比较两个对象的地址值是否相同
equals():默认的比较的是地址值,如果重写了Object中的equals()方法,那么就比较两个对象的内容是否相同
protectedvoid finalize()
a. 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
b. 垃圾回收器不会马上回收垃圾,但是我们可以建议它尽快回收垃圾。(System.gc()方法)
c. 主要针对堆内存。
protectedObject clone()
表示创建一个对象的副本:复制操作
Object 类的 clone方法执行特定的复制操作。首先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。
二、Scanner类概述及其构造方法
(1)Scanner类概述:JDK5以后用于获取用户的键盘输入
(2)构造方法: Scanner(InputStream is)
InputStream:抽象类:抽象类不能直接实例化:字节输入流(IO流)
InputStream is = System.in; 标准输入流: 抽象类多态
(3)Scanner类中的成员方法:
基本格式:hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double等。
如果需要判断是否包含下一个字符串,则可以省略Xxx
nextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同
比较: int类型
Boolean hasNextInt(): 具有判断功能:判断是否还有下一个输入项(整数项)
nextInt() : 接收的一个int类型的数据
常用方法:public int nextInt():接收的是一个整数类型
public String nextLine():接收的是一个字符串类型
细节问题:先接收一个int类型,再去接收一个字符串类型,发现字符串类型的值会遗漏掉!直接输出int类的值,字符串是空的,没有值?为什么?
跟回车换行符有关系,应该在输入字符串之前,再创建一个键盘录入对象
举例:
Scanner sc = new Scanner(System.in);
int a = sc.nextInt() ;
Scanner sc2 = new Scanner(System.in) ;
String b = sc2.nextLine();
System.out.println("a:"+a);
System.out.println("b:"+b);
- 8.2常用类(Object类,Scanner类)
- 常用类(Object,Scanner,String,StringBuffer),递归
- Java常用类(Object类和Scanner类)
- JavaSE----API之常用类(Object、Scanner、String)
- JavaSE----API之常用类(Object、Scanner、String)
- 常用类(Object类,Scanner类,String类)
- 常用类(Object类,Scanner类,String类)
- java基础--4.常用类-1.Object,Scanner,System
- 【常用包类】Scanner。
- 黑马程序员——java-几个常用的类(Object,Scanner,String,StringBuffer/StringBuilder)
- 超类Object和键盘类Scanner
- eclipse工具及Object类、Scanner类
- 黑马程序员——Java常用类笔记(上)【Object类/Scanner类、String类/StringBuffer类、包装类】
- java Scanner类常用方法
- 扫描(Scanner类)
- Scanner类
- Scanner类
- Scanner类
- helloworld
- 算法面试题之字符串子串
- go学习(四)——调用C库
- 出栈序列的统计
- 拥塞控制算法测试——Planetlab平台实验
- 8.2常用类(Object类,Scanner类)
- Java源码阅读-ArrayList
- go学习(五)——基本数据类型转换
- Bagging 与Boosting 特点分析
- HDU1282 最简单的计算机
- 利用可变参数实现求平均值
- HDU-1284-钱币兑换问题(完全背包)
- 单例模式的懒汉模式和饿汉模式
- 哲学家就餐问题