八天学完java基础_7天学完Java基础之7/7

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源码

//booleanequals​(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源码

//booleanequals​(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类型变成字符串类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值