Object類的toString方法 類Object是類層次結構的根類 每個都使用Object作為超類 所有對象都實現這個類的方法 Object類的equals方法 日期時間類 Date類 Date類的構造方法和成員方法 DateFormat類的format方法和parse方法 Calendar類的 ...
Object類的toString方法
類Object是類層次結構的根類
每個都使用Object作為超類
所有對象都實現這個類的方法
//這個是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 void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
//重寫toString方法
//重寫參數列表要與父類參數列表相同
public String toString(){
String string = "{name="+name+" age="+age+"}";
return string;
}
}
public class PersonDemo{
public static void main(String[] args){
Person person = new Person("李白",22);
//直接列印對象,列印出來的是地址值
System.out.println(person);//Person@3b192d32
//沒有重寫父類的toString方法列印出來的也是地址值
String s = person.toString();
System.out.println(s);//Person@3b192d32
//現在重寫了toString方法,
person.toString();//{name=李白 age=22}
}
}
//這個是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 void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
Object類的equals方法
public class PersonDemo{
public static void main(String[] args){
Person p1 = new Person("李白",22);
Person p2 = new Person("蘇軾",23);
//直接列印對象,列印的其實就是地址值
System.out.println(p1);
System.out.println(p2);
//Object類的方法equals
//equals源碼
//boolean equals(Object obj) Indicates whether some other object is "equal to" this one.
/*public boolean equals(Object obj) {
return (this == obj);
}*/
boolean b = p1.equals(p2);
System.out.println(b);
}
}public class PersonDemo{
public static void main(String[] args){
Person p1 = new Person("李白",22);
Person p2 = new Person("蘇軾",23);
//直接列印對象,列印的其實就是地址值
System.out.println(p1);
System.out.println(p2);
//Object類的方法equals
//equals源碼
//boolean equals(Object obj) Indicates whether some other object is "equal to" this one.
/*public boolean equals(Object obj) {
return (this == obj);
}*/
boolean b = p1.equals(p2);
System.out.println(b);
}
}
日期時間類 Date類
public class DemoDate{
public static void main(String[] args){
long l =System.currentTimeMillis();//獲取從1970年1月1日到今天經歷了多少毫秒
System.out.println(l);
//把毫秒值變成天數
long day = 24*60*60*1000;
long aday = l/day;
System.out.println(aday);//18036
//把天數轉化成年
System.out.println(aday/365);//1970年距今49年
}
}
Date類的構造方法和成員方法
import java.util.Date;
public class DateClass{
public static void main(String[] args){
Date date = new Date();
//Date的空參數構造方法會返回系統當前的日期和時間
System.out.println(date);
Date date1 = new Date(100000000L);
//date有參構造方法將會把傳遞進來的數值轉換成日期
System.out.println(date1);
System.out.println(method());
}
//獲取毫秒值
public static long method(){
Date date = new Date();
return date.getTime();
}
}
DateFormat類的format方法和parse方法
import java.text.*;
import java.util.*;
public class DemoDateFormat{
public static void main(String[] args) throws ParseException{
method2();
}
public static void method(){ //首先創建DateFromat子類SimpleDateFormat對象
//並且創建對象是使用構造方法指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分55秒");
//調用方法format,調用方法是需要傳遞Date類
Date date = new Date();
System.out.println(date);
String str = sdf.format(date);
System.out.println(str);
}
public static void method2() throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分55秒");
Date date = sdf.parse("2019年05月20日 15時21分55秒");
System.out.println(date);
}
}
import java.util.*;
import java.text.*;
//計算一個人活了多久
public class Survival{
public static void main(String[] args) throws ParseException{
System.out.println("讓我們來幫你算算你活了多久");
System.out.println("請按照"+" yyyy-MM-dd"+" 格式輸入你的出生日期吧");
Scanner sc = new Scanner(System.in);
String birth = sc.next();
//現在要把出生日期字元串,解析成Date格式
//需要與出生日期的格式一樣,否則會解析異常
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//需要一個指定格式的字元串格式
Date date = sdf.parse(birth);
//把日期轉換成毫秒值
long ms = date.getTime();
//獲取當前日期,轉換成毫秒值
long todayTime = new Date().getTime();
long newMs = todayTime-ms;
long newDay = newMs/1000/60/60/24;
System.out.println(newDay);
}
}
Calendar類的常用成員方法
- 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對象
import java.util.*;
public class CalendarDemo{
public static void main(String[] args){
//public int get(int field):返回給定日曆欄位的值
//參數:傳遞指定的日曆欄位(YEAR,MONTH....)
//返回值:日曆欄位代表的具體的值
//getInstance是一個比較特殊的方法
//他會返回一個Calendar的子類
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);//獲取當前系統的年份
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println("年:"+year+" 月:"+month+" 天:"+day);
System.out.println("====================================");
c.set(Calendar.YEAR,2520);
c.set(Calendar.MONTH,5);
c.set(Calendar.DATE,20);
int year1 = c.get(Calendar.YEAR);//獲取當前系統的年份
int month1 = c.get(Calendar.MONTH);
int day1 = c.get(Calendar.DAY_OF_MONTH);
System.out.println("年:"+year1+" 月:"+month1+" 天:"+day1);
//增加年的方法也是一樣的
//c.add(Calendar.YEAR,2);
//c.add(Calendar.MONTH,3);
//把日曆對象變成日期對象的方法
//c.getTime();這個方法將返回日期
}
}
System類
System類提供了大量的靜態方法,可以獲取與系統相關的信息或系統級操作,在System類的API文檔中,常用方法有:
public static long currentTimeMillis():返回以毫秒為單位的當前時間
public static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length):將數組中指定的數據拷貝到另一個數組中 ;
import java.util.*;
public class ArrayDemo{
public static void main(String[] args){
int[] src = {1,2,3,4,5};
int[] dest = {6,7,8,9,10};
System.out.println("複製前:" +Arrays.toString(dest));
System.arraycopy(src,0,dest,0,3);
System.out.println("複製後:"+ Arrays.toString(dest));
}
}
StringBuilder類
字元串緩衝區,可以提高字元串的操作效率(可以看成一個長度可以變化字元串)
//StringBuilder的構造方法
public class StringBuilderDemo{
public static void main(String[] args){
//空參數構造方法,其中沒有字元,初始字元容量為16
StringBuilder sb = new StringBuilder();
System.out.println(sb+"羌笛何須怨楊柳,春風不度玉門關,");
//有參數的構造方法,字元內容為指定的內容
StringBuilder sb1 = new StringBuilder("雲想衣裳花想容,春風拂檻露華濃");
System.out.println(sb1);
}
}
//StringBuilder的常用方法
public class StringBuilderDemo2{
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
//這裡吧sb的地址值賦值給了sb1
StringBuilder sb1 = sb.append("雲想衣裳花想容,春風拂檻露華濃。");
System.out.println(sb);
System.out.println(sb1);
System.out.println(sb==sb1);
//鏈式編程
StringBuilder libai =sb.append("若非群玉山頭見").append(",會向瑤臺月下逢。").append("----清平調").append(".李白");
System.out.println(libai);
//雲想衣裳花想容,春風拂檻露華濃。若非群玉山頭見,會向瑤臺月下逢。----清平調.李白
}
}
//String與StringBuilder的相互轉換
public class StringBuilderDemo3{
public static void main(String[] args){
//String--->StringBuilder
String str = "雲想衣裳花想容";
System.out.println(str);
StringBuilder sb = new StringBuilder(str);
sb.append(" 春風拂檻露華濃");
System.out.println(sb);
//StringBuilder-->Strintg
String sb2 = sb.toString();
System.out.println(sb2+" 若非群玉山頭見,會向瑤臺月下逢");
}
}
/*包裝類:
基本數據類型,使用起來非常方便,但是沒有對應的方法來操作這些基本類型的數據,可以使用一個類,把基本類型的數據裝起來,在類中定義一些方法,這個類叫做包裝類,我們可以使用類的方法來操作這些基本類型的數據
*/
/*裝箱:把基本類型的數據,包裝到包裝類中(int-->Integer)
Integer類的構造方法
Integer(int value)
構造一個新分配的Integer對象,他表示指定的int值
Integer(String s)
構造一個新分配的Integer 對象,他表示Stirng參數所指示的值
傳遞的字元串必須是基本類型的字元串
靜態方法:
Integer valueOf(int i)返回一個表示指定的 int值的 Integer
Integer valueOf(String s)
拆箱:在包裝類中取出基本類型 int intValue();
*/
public class IntegerDemo{
public static void main(String[] args){
//裝箱,先使用構造方法裝箱
Integer integer = new Integer(5);//傳遞int值,完成裝箱
//裝箱,第二張方式
Integer integer2 = new Integer("10");//傳遞基本類型的字元串
System.out.println(integer);//重寫了toString
System.out.println(integer2);//重寫了toString
//第三種方式裝箱
Integer integer3 = Integer.valueOf(1);
Integer integer4 = Integer.valueOf("2");
System.out.println(integer3);
System.out.println(integer4);
//拆箱
int i = integer3.intValue();
System.out.println(i);
}
}
//自動拆箱與自動裝箱
Integer in = 1; //發生了自動裝箱Integer in = new Integer(1);
//int in = in+2;//發生了自動拆箱
Integer類可以把基本類型的字元串變成int類型,也可以把int類型變成字元串類型