欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

7天学完Java基础之7/7

程序员文章站 2022-07-11 09:18:05
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类的常用成员方法

  1. public int get( int field ):返回给定日历字段的值
  2. public void set (int field ,int value):将给定的日历字段设置为给定值
  3. public abstract void add( int field ,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量
  4. 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类型变成字符串类型