Java高级学习-Object + API

举报
AAAI 发表于 2021/04/02 04:14:53 2021/04/02
【摘要】 Object java.lang.object 类是根类,超类。所有对象都实现这个类方法。 toString() public String toString() : 返回对象类型+ @ + 内存地址值 @override public String toString() { return xx} 直接打印对象的名字。其实就是调用对象的toString,打印堆...

Object

java.lang.object 类是根类,超类。所有对象都实现这个类方法。

toString()

public String toString() : 返回对象类型+ @ + 内存地址值

@override public String toString() { return xx}

直接打印对象的名字。其实就是调用对象的toString,打印堆内存的地址。

**需要进行覆盖重写。直接快捷键生成。**System.out.print(对象名)判断是否重写。

equals

指示其他对象是否与此对象"相等"。

基本数据类型:比较值 引用数据类型:比较地址

Object obj : 可以传递任意的对象

重写equals方法,比较两个对象的属性。

问题:隐含着多态 { 父类指向子类 } ,多态的弊端无法使用子类的特有的内容(属性和方法)

解决:使用向下转型,将obj类型,转换为子类,再使用子类的属性,比较内容(值)

@override  
public  boolean  equals ( Object  obj )  { //比较传递的obj参数是不是this本身,返回true //判断传递的参数是否为null,返回false, //提高程序效率 //防止ClassCastException  类型转换异常 if (obj instanceof 子类名) { 子类名  对象名  = (子类名) obj ; boolean  b  =  this.name.equals (对象名.name ) ; return  b; } return  false;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

快捷键 alt + ins ---- equals()and hashCode()

Object类的equals 方法:对两个对象进行比较,防止空指针异常

Object.equals (null,x1); //返回false

日期时间类

Date类

java.util.Date 类表示特定时间,到毫秒 1000毫秒 = 1 秒 s/1000/60/60/24 = 天

System.currentTimeMillis() // 获取当前系统时间从1970年1.1日 八点 经历了多少毫秒。

构造方法:

无参:Date date = new Date(); //date 为获取的当前系统日期和时间

带参:Date date = new Date( 0 L);//date 为:1970年1.1日 08:00:00,参数为毫秒。

long getTime() 日期转毫秒值,相当于 System.currentTimeMillis()

long t = data.getTime();// t为毫秒值

DateFormat类

格式化 日期–文本,解析 文本–日期

java.text.DateFormat 抽象类,不能直接创建对象。

成员方法:

String format(Date date) // 按照指定格式,把Date日期转化为符合格式的字符串(文本)

Date parse (String source) // 按照指定格式,把字符串转化为Date日期

SimpleDateFormat

使用DateFormat 的子类进行创建对象:SimpleDateFormat

构造方法:

SimpleDateFormat (String pattern) // 用给定模式和默认语言环境进行构造

y 年 M 月 d 日 H 时 m 分 s 秒

例如:yyyy年MM月dd日 HH 时 mm 分 ss 秒

SimpleDateFormat sdf = new SimpleDateFormat (“yyyy年MM月dd日 HH 时 mm 分 ss 秒”);

sdf.format(date);

parse 把字符串格式的日期,解析为Date格式的日期

parse 声明了一个parseExcption 解析异常{ 字符串和构造方法的模式不一致} ,需要 throws 继续抛出异常,或者try,catch自己处理。

Date date = sdf.parse(" xx ");

Calendar

java.util.Calendar是日历类,抽象类

提供了YEAR,MONTH,DAY_OF_MONTH(天),DAY_OF_WEEK (星期几), HOUR

Calendar.getInstance()静态方法返回一个Calendar子类对象,使用的是多态,父类抽象类接收子类对象

成员方法:

get(Calendar.YEAR)

set(Calendar.YEAR,1999),set(9999,12,30)—重载

add(Calendar.YEAR,-2)

Date date = x.getTime()日历变日期

System

System.currentTimeMillis() // 获取当前系统时间从1970年1.1日 八点 经历了多少毫秒。测试程序耗时。

arraycopy 数组复制

System.arraycopy (源数组,起始位置索引,目标数组,起始位置索引,元素数量)

StringBulider

字符串缓冲区,支持可变的字符串,在内存中是一个数组,效率高

byte[ ] value = new byte[16];

成员方法:

append():添加任意类型的字符形式,并返回当前对象自身(this),地址相同。

链式编程,方法返回是一个对象,可以继续调用方法。

append().append().append()

toString():将StringBulider–>String

StringBulider(String str):将String–>StringBulider

包装类

将基本类型的数据用类装起来,在类中定义一些方法,这个类是包装类,使用类中的方法进行使用基本类型。包装类可以设置为null

int – Integer , char – Character

装箱与拆箱

装箱:把基本类型的数据,包装到包装类中(基本类型 --> 包装类)

构造方法:

Integer(int value),Integer(String s),例如:new Integer(“100”)

构造新分配的 Integer 对象

静态方法:

static Integer valueOf(int value),static Integer valueOf(String s)

返回指定 int 的 Integer 实例,返回指定 String 的 Integer 实例,

Integer  in  = Integer.valueOf(1); Integer  in  = Integer.valueOf("a");  //出现数组格式化异常  NumberFormatException  

  
 
  • 1
  • 2
  • 3

拆箱:从包装类取出基本类型(包装类 --> 基本类型)

int intValue();以 int 类型返回 Integer 值。

自动装箱与拆箱

基本类型的数据与包装类可以自动的相互转换

自动装箱:直接把int类型的整数赋值包装类

Integer in = 1;

自动拆箱:包装类无法直接参与运算,自动转换为基本数据类型进行计算

in + 2 == in.invalue() + 2;

基本类型与字符串类型的转换

基本类型 --> 字符串:

1.基本类型 + " "

2.包装类的静态方法Integer. toString(参数)。不是Object的toString(),是重载

3.String类的静态方法String. valueOf ( int i ),返回 int 参数的字符串表示形式

字符串 --> 基本类型:

使用包装类的静态方法parseXXX(“数组类型的字符串”):

int parseInt(String s) ;double parseDouble(String s)

int i = Integer.parseInt ( s ) ;

作业

简述String类中的equals方法与Object类中的equals方法的不同点

Object是判断同一个对象是否一样,比较内存地址空间,String是判断对象内容是否相同。

简述StringBuilder类与String类的区别

StringBuilder字符缓冲区,字符可以进行添加,是一个容器,内部拥有数组来存储字符串内容,可以直接进行再数组添加东西。String对象内容不能进行改变,每一次拼接时是创建一个新的对象。

文章来源: blog.csdn.net,作者:αβγθ,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_38022166/article/details/115381824

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。