java_Object类的toString方法 、Objects类的equals方法 、Date类 、DateForma、Calendar类介绍 、System类的常用方法_学习笔记

2021/5/3 14:55:13

本文主要是介绍java_Object类的toString方法 、Objects类的equals方法 、Date类 、DateForma、Calendar类介绍 、System类的常用方法_学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

2021-04-10复习java

  • 一、Object类的toString方法
  • 二、Object类的equals方法
  • 三、重写Object类的equals方法
    • 3.1、Objects类的equals方法
  • 四、Date类
  • 五、DateFormat类与SimpleDateFormat
  • 六、Calendar类介绍
  • 七 、System类的常用方法
  • 八、StringBuilder类

一、Object类的toString方法

  • java.Lang.object
  • 类object是类层次结构的根(父)类。
  • 每个类(Person , Student… .)都使用object作为超(父)类。所有对象(包括数组)都实现这个类的方法。
public class Person {
    private String name;
    private int age;
    public Person() {
    }
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
public static void main(string[]args) {
	/*
	Person类默认继承了object类,所以可以使用object类中的tostring方法string tostring()返回该对象的字符串表示。
	*/
	Person p = new Person( name:“张三",age: 18);
	String s = p.tostring();
	system.out.println(s);//com.zhang.0bject.Person@75412c2f
	 Person(nome=张三,age=18)
	//直接打印对象的名字,其实就是调用对象的toString p=p.toString();
	system.out.println(p);//com.zhang.object.Person@5f150435 
	PersonP(noamen张三,oge=18)
	
}

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

二、Object类的equals方法

使用object类的equals方法
boolean equals(object obj)指示其他某个对象是否与此对象“相等”。

equals方法源码:
public boolean equals(0bject obj) {
	return (this == obj);
}

参数:

  • 0bject obj:可以传递任意的对象
  • ==比较运算符,返回的是一个布尔值true false基本数据类型:比较的是值 引用数据类型:比价的是两个对象的地址值
  • this是谁?那个对象调用的方法,方法中的this就是那个对象;

三、重写Object类的equals方法

object类的equals方法,默认比较的是两个对象的地址值,没有意义所以我们要重写equals方法,比较两个对象的属性(name , age)
问题:

  • 隐含着一个多态
  • 多态的弊端:无法使用子类特有的内容(属性和方法)object obj = p2 = new Person("小美”,19);解决:可以使用向下转型(强转)把obj类型转换为Person
@Override
public boolean equals(0bject obj) {
	//增加一个判断,传递的参数obj如果是this本身,直接返回true,提高程序的效率
	if(obj==this){
		return true;
	}
	//增加一个判断,传递的参数obj如果是null,直接返回false,提高程序的效率
	if(obj==null){
		return false;
	}
	//增加一个判断,防止类型转换一次cLasscastException
	if(obj instanceof Person){//判断参数obj是否是person类型
		//使用向下转型,把obj转换为Person类型
		erson p = (Person)obj;
		//比较两个对象的属性,一个对象是this(谁调用谁就是this),一个对象是p(obj)
		boolean b = this.name.equals(p.name) &&this.age==p.age;
		return b;
	}
	//不是person类型返回false
	return false;
}

3.1、Objects类的equals方法

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

public static boolean equals(0bject a, 0bject b) {
		return (a == b) il ( a != null && a.equals(b));
	}
	//演示
	boolean b2 = Objects.equals(s1,s2);
	system.out.print1n(b2);

四、Date类

  • java.util.Date:表示日期和时间的类类Date表示特定的瞬间,精确到享秒。毫秒:千分之—秒1000毫秒=1秒
  • 毫秒值的作用:可以对时间和日期进行计算
  • 2099-01-03到2088-01-61中间一共有多少天
  • 可以日期专换为毫秒进行计算,计算完毕,在把毫秒转换为日期
  • 把毫秒转换为日期: 1天=24 x 60 x 60 = 86400秒= 86400 x 1000 = 86400008毫秒
public static void main(String[]args) {
	//获取当前系统时间到1970年1月1日00:00:60经历了多少毫秒
	system.out.printIn(System.currentTimeillis());
	}

五、DateFormat类与SimpleDateFormat

  • java.text.DateFormat:是日期/时间格式化子类的抽象类
  • 作用:格式化《也就是日期->文本)、解析《文本->日期)

成员方法:

  • string format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串Date parse(String source)把符合模式的字符串,解析为Date日期
  • DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类

java.text.SimpleDateFormat extends DateFormat
构造方法:

  • SimpLeDateFormat(string pattern)
    用给定的模式和黑f认语言环境的日期格式符号构造simpleDateFormat。

参数:
String pattern :传递指定的模式模式:
区分大小写的
y年、M月、d日、H时、m分、s 秒

写对应的模式,会把模式替换为对应的日期和时间

  • “yyyy-MMM-dd HH : mm : SS”"

注意:
模式中的字母不能更改,连接模式的符号可以改变

  • "yyyy年月dd日H时mm分ss秒“

时间日期转换成对应的格式:

public static void main(String[ ] args) {
	   demoe1();
	/**
	使用DateFormat类中的方法format,
	把日期格式化为文本使用步骤:
	1.创建SimpLeDateFormat对象,构造方法中传递指定的模式
	2.调用simpleDateFormat对象中的方法format ,按照构造方法中指定的模式,把pate日期格式化为符合模式的字符串(文本)
	*/
	private static void demoe1() {
		//1.创建SimpleDateFormat对象,构造方法中传递指定的模式
		simpleDateFormat sdF = new simpleDateFormat("yyyy年月dd日H时mm分ss秒");
		//2.调用SimpLeDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
		//Sstring format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串
		Date ri= new Date(;
		string time= sdf.format(ri);
		 System.out.println("转换之前:"+ri); //转换之前:Fri Apr 09 14:11:14 CST 2021
		 System.out.println("格式化之后:"+time);//格式化之后:2021年04月09日14时11分14秒
		 }


}

对应的文本格式转换为date日期

public static void main(String[ ] args) throws ParseException  {
	   demoe2();
	/*使用DateFormot类中的方法parse,
	把文本解析为日期使用步骤:
		1 .创建SimpleDateFormat对象,构造方法中传递指定的模式
		2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Dote日期注意
	public Date parse(String source) throws ParseExceptionparse方法声明了一个异常叫ParseException
		如果字符串和构造方法的模式不一样,那么程序就会抛出此异常
		调用一个抛出了异常的方法,就必须的处理这个异常,要么throws 继续抛出这个异常,要么try catch自己处理
	*/
	private static void demoe2()throws ParseException {
		//1.创建SimpleDoteFormat对象,构造方法中传递指定的模式
		SimpleDateFormat sdf m new SimpleDateFormat( patterm:"yyyy年A月dd日H时mm分ss秒");
		//2.调用SimpLeDateFormat对象中的方法pars,把符合构造方法中模式的字符串,解析为Date日期
		// /Date parse(String source)把符合模式的字符串,解析为Date日期
		Date date = sdf.parse( source:"2021年04月09日14时11分14秒");
		System.out.print1n(date);//Fri Apr 09 14:11:14 CST 2021
	}
}

六、Calendar类介绍

  • java.util.calendar类:日历类
  • calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_NONTH、HOUR )
  • caLendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了caLendar类的子类对象
  • static calendar getInstance()使用黑默f认时区和语言环境获得一个日历。

七 、System类的常用方法

java.Lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在5ystem类的API文档中,常用的方法有:

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

验证程序运行时所消耗的毫秒值

public class Test {
    public static void main(String[] args) {
      atime();
    }
    /**
     * 验证for循环1-9999所消耗的毫秒值
     */
    private static void atime() {
        //程序执行前获取一次毫秒值
        long start = System.currentTimeMillis();
        for (int i = 0; i <= 9999; i++) {
            System.out.println(i);
        }
        //程序执行完成获取一次毫秒值
        long end = System.currentTimeMillis();
        System.out.println("程序总耗时"+(end-start)+"毫秒");//程序总耗时58毫秒
    }

八、StringBuilder类

字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串)底层也是一个数组,但是没有被final修饰,可以改变长度

  • java.Lang. StringBuiLder类:字符串缓冲区,可以提高字符串的效率

构造方法:

  • stringBuilder()构造一个不带任何字符的字符串生成器,其初始容量为16个字符。
  • stringBuilder (String str)构造一个字符串生成器,并初始化为指定的字符串内容。
public static void main(String[]args){
	//空参数构造方法
	stringBuilder bu1 = new stringBuilder();
	system.out.println( "bu1 :"+bu1);//bu1 : 
	/带字符串的构造方法
	stringBuilder bu2 = new StringBuilder( "abc" );
	System.out.println( ""bu2 : "+bu2);//bu2:ABC
}

StringBuilder和string可以相互转换:

  • string变成StringBuilder:可以使用stringBuilder的构造方法
  • StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容。
  • StringBuilde变成String:可以使用stringBuilder中的tostring方法
  • public string tostring():将当前stringBuilder对象转换为string对象。
public static void main(string[]args) {
	// String变成StringBuilder
	string str = "hel1o";
	System.out.println( "str: "+str);
	stringBuilder bu = new StringBuilder( str);
	//往stringBuilder中添加数据
	bu.append( "world" ) ;
	system.out.println("bu:"+bu) ;/ / StringBuilder->String
	String s = bu.toString();
	system.out.println( "s: " +s );
}


这篇关于java_Object类的toString方法 、Objects类的equals方法 、Date类 、DateForma、Calendar类介绍 、System类的常用方法_学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程