Object类和常用API

思维导图

在这里插入图片描述

Object类
类 Object 是类层次结构的根(父)类。
每个类(Person,Student...)都使用 Object 作为超(父)类。
所有对象(包括数组)都实现这个类的方法。
  • public String toString() :返回该对象的字符串表示。

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。 由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因 此也需要重写它。

看一个类是否重写了toString,直接打印这个类的对象即可,如果没有重写toString方法那么打印的是对象的地址值

重写toString方法:
在这里插入图片描述

  • public boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”
    默认比较的是如果没有覆盖重写equals方法,
    默认比较的是对象的地址,只要不是同一个对象,结果 必然为false。

重写equale方法:
在这里插入图片描述

  • Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题。
    public static boolean equals(Object a, Object b) : 判断两个对象是否相等
java.util.Date类
  • public Date() :分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public Date(long date) :分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元 (epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。 (东八区,我们的基准时间为1970年1月1日8时0分0秒。)
  • public long getTime(): 把日期对象转换成对应的时间毫秒值。
java.text.DateFormat类

DateFormat为抽象类,不能直接使用,常用的子类 java.text.SimpleDateFormat类。

  • public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
  • public String format(Date date) :将Date对象格式化为字符串。
  • public Date parse(String source) :将字符串解析为Date对象。

栗子:计算出一个人已经出生了多少天

public static void function() throws Exception { 
	System.out.println("请输入出生日期 格式 YYYY‐MM‐dd");
	// 获取出生日期,键盘输入      
	String birthdayString = new Scanner(System.in).next();
	// 将字符串日期,转成Date对象     
	// 创建SimpleDateFormat对象,写日期模式
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy‐MM‐dd");      
	// 调用方法parse,字符串转成日期对象      
	Date birthdayDate = sdf.parse(birthdayString);         
	// 获取今天的日期对象      
	Date todayDate = new Date();           
	// 将两个日期转成毫秒值,Date类的方法getTime      
	long birthdaySecond = birthdayDate.getTime();      
	long todaySecond = todayDate.getTime();      
	long secone = todaySecond‐birthdaySecond;          
	if (secone < 0){      
		System.out.println("还没出生呢");          
		} 
	else {      System.out.println(secone/1000/60/60/24);
	}      
}
java.util.Calendar类

Calendar也是抽象类,可以利用其静态方法:

  • public static Calendar getInstance() :使用默认时区和语言环境获得一个日历

常用方法:

  • public int get(int field) :返回给定日历字段的值。
  • -public void set(int field, int value) :将给定的日历字段设置为给定值。
  • public abstract void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去指 定的时间量。
  • public Date getTime() :返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

栗子:

Calendar cal = Calendar.getInstance();
System.out.print(year + "年" + month + "月" + dayOfMonth + "日"); // 2018年1月17日         
// 使用add方法
cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天         
cal.add(Calendar.YEAR,3); // 减3年         
System.out.print(year + "年" + month + "月" + dayOfMonth + "日"); // 2015年1月18日;
Date date = cal.getTime();         
System.out.println(date); // Tue Jan 16 16:03:09 CST 2018 
java.lang.System 类

System有很多静态方法:

  • public static long currentTimeMillis() :返回以毫秒为单位的当前时间。
  • -public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将 数组中指定的数据拷贝到另一个数组中。

栗子:

 public static void main(String[] args) {         
 		int[] src = new int[]{1,2,3,4,5};         			
 		int[] dest = new int[]{6,7,8,9,10};         
 		System.arraycopy( src, 0, dest, 0, 3);         
 		/*代码运行后:两个数组中的元素发生了变化          src数组元素[1,2,3,4,5]          dest数组元素[1,2,3,9,10]         */
 		
} 
java.lang.StringBuilder类

StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进 行各种操作。对比String,StringBuilder长度可变,操作起来方便,而String长度不可变。

  • public StringBuilder() :构造一个空的StringBuilder容器。
  • public StringBuilder(String str) :构造一个StringBuilder容器,并将字符串添加进去。
  • public StringBuilder append(…) :添加任意类型数据的字符串形式,并返回当前对象自身。
  • public String toString() :将当前StringBuilder对象转换为String对象。

栗子:

 public static void main(String[] args) {         
 		StringBuilder sb1 = new StringBuilder();         
 		System.out.println(sb1); // (空白)         
 		// 使用带参构造         
 		StringBuilder sb2 = new StringBuilder("it");         
 		System.out.println(sb2); // it
 		// 链式创建         
 		StringBuilder sb = new StringBuilder("Hello").append("World").append("Java");         
 		// 调用方法         
 		String str = sb.toString();
 		System.out.println(str); // HelloWorldJava 
} 
包装类

基本类型对应的包装类,如下
在这里插入图片描述

  • 装箱:从基本类型转换为对应的包装类对象。
  • 拆箱:从包装类对象转换为对应的基本类型。

自动拆、装箱:

Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4); 
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; //加法运算完成后,再次装箱,把基本数值转成对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值