Object类
Object类是所有类的超类,所有对象(包括数组)都实现了这个类的方法
1.Object中的toString方法的使用
String toString() 返回对象的字符串表示形式。
①我们在定义一个类的时候,这个类就会去继承Object类的toString方法,但是Object中方法往往不会满足我们的需求,这是就要去覆盖重写toString方法,重写在IDEA中直接Alt+Insert生成
②当我们输出对象名是,默认的调用Object类中的toString方法,就是stu.toString,stu是引用所以输出的是stu保存的地址值
③看一个类是不是重写了Object中的toString方法,直接输出对象名,如果输出的地址值那么这个类就没有重写
2.Object中的equals方法的使用
①我们定义一个类默认继承了 Object类,所以可以使用Object类的 equals方法
boolean equals( object ob))指示其他某个对象是否与此对象“日等。
②equals方法源码
public boolean equals(object obj) {
return(this==obj);
}
object obj: 可以传递任意的对象
= =比较运算符返回的是一个布尔值 true false
基本数据类型:比较的是值
引用处据类型:比价的是两个对象的地址值
p1.equals(p2);
this是谁那个对象调用的方法,方法中的this就是那个对象;p1调用的 equals方法所以this就是p1
obj是谁?传递过来的参数p2
this = =obi—>p1
③equals方法的重写
Object类的 equals方法,默认比较的是两个对象的地址值,没有意义
所以我们要重写 equals方法,比较两个对象的属性
问题:
隐含着一个多态
多态的弊端:无法使用子类特有的内容(属性和方法)
Object obj=p2= new (Object子类)对象名称( 属性 );
解决:可以使用向下转型(强转)把Object类型转换为子类对象
子类名称 子类对象名称=(Object) 子类名称;
注意:
这是需要添加一个判断,防止出现ClassCastException(类型转换异常)
Date类
1.毫秒的作用
java.util.Date:表示日期和时间的类
类Date表示特定的瞬间,精确到毫秒。
毫秒:千分之一秒 1000毫秒=1秒
特定的瞬间:一个时间点,一刹那时间
2019-10-11 22:24:54 888
2019-10-11 22:24:54 889 瞬间
毫秒值的作用:可以对时间和日期进行计算
2099-61-03到2088-61-61 中间一共有多少天
可以日期转换为毫秒进行计算,计算完毕,在把毫秒专换为日期
把日期转换为毫秒
当前的日期:2088-01-01
时间原点(0毫秒):1978年1月1日00:00:00(英国格林威治)
就是计算当前日期到时间原点之间一共经历了多少毫秒
注意
中国属于东八区,会把时间增加8个小时
1970年1月1日00:00:00
把毫秒转换为日期
1天=24x60x66=86400秒=86400x1000=8640000毫秒
2.Date类中的构造方法和成员方法
成员方法
long getTime()把日期转换为毫秒值(相当于 System. currentTimeMillis()方法)
返回自1970年1月1日00:00:00 GMT以来此Date对象表示的毫秒数。
自带参数的构造方法
Date(long date)
传递毫秒值,把毫秒值转换为Date日期
Date类的空参数构造方法
Date()获取当前系统的日期和时间
Date类重写了toString方法
3.DateFormat类和SimpleDateFormat类
java.text. Dateformat:是日期/时间格式化子类的抽象类
作用
格式化(也就是日期->文本)、解析(文本->日期)
成员方法:
string format( Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串
Date parse(String source)把符合模式的字符串,解析为Date日期
Dateformat类是一个抽象类无法直接创建对象使用可以使用Dateforma类的子类
java. text. SimpleDateformat extends Dateformat
构造方法
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
参数
String pattern:传递指定的模式
模式:区分大小写的
缩写 | 时间 |
---|---|
y | 年 |
M | 月 |
d | 天 |
H | 时 |
m | 分 |
s | 秒 |
写对应的模式,会把模式替换为对应的日期和时间
yyyy-mm-dd HH: mm: ss
注意:
模式中的字母不能更改,连接模式的符号可以改变
“yyyy年MM月dd日 HH时mm分ss秒”
4.DateFormat类中format方法和parse方法
format方法
使用 DateFormat类中的方法 format,把日期格式化为文本
使用步骤
1.创建 SimpleDateFormat对象,构造方法中传递指定的模式
2调用 SimpleDateFormat对象中的方法 format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
String format( Date date)
按照指定的模式,把Date日期,格式化为符合模式的字符串
parse方法
使用 DateFormat类中的方法 parse,把文本解析为日期
使用步骤
1.创建 SimpleDateFormat对象,构造方法中传递指定的模式
2.调用 SimpleDateFormat对象中的方法 parse,把符合构造方法中模式的字符串,解析为Date日期
注意
public Date parse(String source) throws ParseException
parse方法声明了一个异常叫 ParseException
如果字符串和构造方法的模式不一样,那么程序就会抛出止此异常
调用一个抛出了异常的方法,就必须的处理这个异常,要么 throws继卖抛出这个异常,要么 try catche自己处理
Calendar类
1.Calendar中获取对象的方式
java.util Calendar类:日历类
Calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、 MONTH、 DAY_ OF_ MONTH、HOUR)
Calendar类无法直接创建对象使用,里边有一个静态方法叫 getInstance(),该方法返回了 Calendar类的子类对象
static Calendar getInstance()
使用默认时区和语言环境获得一个日历。
2.Calendar中成员方法的使用
根据 Calendar类的AP文档,常用方法有
public int get( int field);
返回给定日历字段的值。
返回值:日历字段代表的具体的值
成员方法的参数
int field:日历类的字段,可以使用 Calendar类的静态成员变量获取
public static final int YEAR=1;年
final int MONTH=2; 月
public static final int DATE=5;月中的某一天
public static final int DAY _OF_ MONTH=5;月中的某一天
public static final int HOUR= 10; 时
public static final int MINUTE =12; 分
public static final int SECOND =13: 秒
public void set( int field, int value)
:将给定的日历字段设置为给定值。
参数
int field 传递指定日历字段
int value 给指定字段设的值
public abstract void add( int field, int amount):
根据日历的规则,为给定的日历字段添加或减去指定
的时间量
public Date getTime();
返回一个表示此 Calendar时间值(从历元到现在的亳秒偏移量)的Date对象
System类
1.System中的常用方法
java.lang. System类中提供了大是的静态方法,可以获取与系统相关的信息或系统级操作,在 System类的API文
档中,常用的方法有
public static long currentTimeMillis()返回以亳秒为单位的当前时间。
public static void arraycopy(object src, int srcpos, object dest, int destpos, int length)将数组中指定的数据拷贝到另一个数组中。
参数:
src-源数组。
srcpos-源数组中的起始位置(起始索引)。
dest-目标数组。
destpos-目标数据中的起始位置。
length・要复制的数组元素的数量。
StringBuilder
1.StringBuilder中的构造方法和appen方法
java.lang. StringBuilder类:字符串缓冲区,可以提高字符串的效率
构造方法
StringBuilder()
构造一个不带任何字符的字符串生成器,其初始容量为16个字符。
StringBuilder( String str)
构造一个字符串生成器,并初始化为指定的字符串内容。
appen方法
String Builder 常用的方法有2个
public StringBuilder append(); 添加任意类型数据的字特串形式,并返回当前对象自身。
链式編程:
方法返回值是一个对象,可以继续调用方法
System. out. println("abc".touppercase(). tolowercase(). touppercase(). tolowercase());
bu.append("abc"). append(1) append(true). append(8.8)append("m");
System. out. printin(bu);//abc1true8.8m
2.StringBuilder中的toString方法
public String toString(); 将当前 StringBuilder对象转换为 String对象。
StringBuilder和 String可以相互转换
String->StringBuilder:可以使用 StringBuilder的构造方法
StringBuilder( String str);
构造一个字符串生成器,并初始化为指定的字符串内容
StringBuilder-> String:可以使用 StringBuilder中的 toString方法
public String toString();
将当前StringBuilder对象转换为 String对象。
包装类
1.装箱和拆箱
基本类型与对应的包装类对象之间,来回转换的过程称为"装箱"与"拆箱"
装箱:从基本类型转换为对应的包装类对象
拆箱:从包装类对象转换为对应的基本类型。
用 Integer与int为例:(
基本数值->包装对象
Integer i= new Integer(4);//使用构造函数
Integer ii= Integer. valueOf(4);//使用包装类中的 value0f方法
包装对象->基本数值
int num =i. intValue();
2.自动装箱和自动拆箱
由于我们经常要做基本类型与包装类之间的转换,从Java5(JDK1.5)开始,基本类型与包装类的装箱、拆箱动作
可以自动完成。
例如
Integer i=4; // 自动装箱。相当于 Integer i= Integer. valueOf(4);
i=i+5; //等号右边:将i对象转成基本数值(自动拆箱) i.intvalue()+5
//加法运算完成后,再次装箱,把基本数值转成对象
3.包装类中的基本数据类型和字符串类型之间的互相转换
基本类型与字符类型之间的相互转换
基本类型->字符串(String)
-== 基本类型的值 +""== 最简单的方法(工作中常用)
- 包装类的静态方法 toString(参数),不是Object类的 toString()重载
static String toString(int i)
返回一个表示指定整数的String对象 - String类的静态方法 volueOf(参数)
static String valueOf(int i)
返回int参数的字符串表示形式。
字符串( String)->基本类型
使用包装类的静态方法 parsexxx(“字符串”)
Integer类: static int parseInt(String s)
Double类: static double parseDouble(String s)