3/6day04_常用API(时间相关)

2020-03-06  本文已影响0人  蹦蹦跶跶的起床啊

回顾

1.多态
    多态: 一个对象可以有不同的形态
    比如:
        Animal an = new Dog();
        Animal an = new Cat();
    前提:
        a.继承关系或者实现关系
        b.要有方法的重写
    表现形式:
        父类类型/接口类型 变量名 = new 子类()/new 实现类();
    好处:
        提高代码的扩展性(喂猫喂狗案例)
    弊端:
        多态的情况,只能调用子父类共有的方法,无法调用子类特有的方法
    解决弊端的方案:
        向上转型:
            Animal an = new Dog();
        向下转型:
            Dog d = (Dog)an;
            Cat c = Cat(an);
    关键字:
        boolean b = an instanceof Dog
2.内部类
    重点介绍匿名内部类:
        父类/接口 变量名 = new 父类/接口(){
            重写父类或者接口中所有的抽象方法
            //特有方法
            public void show(){
                ....
            }    
        };
    问题:
        如果匿名内部类中,有特有方法.我们怎么向下转型来调用它??
        是无法向下转型(因为匿名内部类没有类名)    
    结论:
        如果想使用匿名内部类,就不要在{}中写特有方法
    
3.权限修饰符
     public protected 空的 private
     public:修饰成员方法和构造方法       
     private:修饰成员变量
4.代码块  
     代码块: 就是使用大括号括起来的一句或者多句代码
     构造代码块:
        {
            构造代码块
        }
        执行: 每次创建对象时,构造代码块都会执行,优先于构造方法执行
     静态代码块:
        static{
            静态代码块
        }
        执行:第一加载该类时,静态代码块会执行一次,优先于构造方法执行的

今日内容

Object类(重要)

介绍

Object类 是所有类的父类, 所有对象(包括数组,包括自己写的类)都具有该类的11个方法.

toString方法

注意事项
重写了toString之后, 当调用对象的toString方法时,返回的是重写的方法即具体的属性值.
实际上不用手动调用toString方法
如:

Dog d = new Dog();
String s = d.toString()
sout(s)
上下两个代码结果一样
Dog d =  new Dog();
sout(d)//此处编译器省略了d.toString

equals方法

native本地方法

在Object类的源码中定义了 native 修饰的方法, native 修饰的方法称为本地方法。

扩展(equals 和 == 的区别)

对于基本类型:
== 比较基本类型的数值
equals 没有该方法(基本类型又不是一个类)

对于引用类型:
== 比较引用类型的地址值
equals 默认比较地址值,如果子类重写了,按照重写规则比较(一般用来比较内容)

Objects类

Objects类, 我们称之为工具类(其内部所有的方法都是静态的)
在所有对象中 使用编译器 重写的父类Object类的equals方法中 使用了 Objects类中的equals静态方法.
此类中的equals方法, 多了一步判断空指针异常

Date类(重要)

介绍

构造方法

Date类的常用方法

DateFormat类(抽象类)(重要)

其子类(SimpleDateFormat)作用

构造方法

由于DateFormat为抽象类,不能直接使用..所以需要常用的子类 java.text.SimpleDateFormat

成员方法

Calendar类(抽象类)(理解)

介绍和获取对象方式

注意
在Calendar类中, 月份是(0-11)代表我们的(1-12)

常见方法

注意事项
1.Calendar类中的month是(0-11如同索引)
2.时间日期,拥有大小之分, 时间越靠后,越大(明天比今天要大)

Math类

介绍

Math中主要包含了一些数学运算的方法
该类中的方法都是静态方法 可以直接通过类名.方法名来调用. 因此将其作为工具类

常用方法


向上取整, 只要有小数, 就进一
四舍五入只看小数第一位

System类

介绍

类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作.
不能被实例化 因为其构造方法为私有

常用方法

今日总结:

1.Object
    所有类父类
    toString: 默认返回对象的字符串表示,包名.类名@地址值
              开发中我们会重写toString,返回对象的内容(alt+insert自动生成)
              注意: 实际上我们不需要手动调用toString方法,
                    因为我们在使用对象时,编译器会自动调用toString()方法
    equals: 默认比较两个对象的地址值
            开发中我们也会重写equals,比较两个对象的内容(属性值)
2.Date和DateFormat
     构造方法
      public Date(); // 当前系统时间
      public Date(long millis); //距离基准时间milllis毫秒后的那个时间
    成员方法
      public long getTime();//获取当前Date对象距离基准时间的毫秒值 
      public void getTime(long millis);//修改当前Date对象距离基准时间的毫秒值
    
SimpleDateFormat(子类) extends DateFormat(抽象类)
         
 构造方法:
    public SimpleDateFormat(String 模式/格式); //模式 "yyyy-MM-dd HH:mm:ss"
             
 成员方法:
    格式化: public String format(Date date);
    解 析: public Date parse(String time);

3.Calendar
     获取对象:
        Calendar c = Calendar.getInstance();//返回Calendar的子类对象
     成员方法:
        public void get(int field);
        public void set(int field,int value);
        public void add(int field,int value);
4.Math
    Math类中方法都是静态的
    public static double abs(double d);
    public static double ceil(double d);
    public static double floor(double d);
    public static long round(double d);
    public static double pow(double d1,double d2)
        
6.System
    System类中方法都是静态的    
    public static void exit(0);//退出JVM
    public static long currentTimeMillis();//获取当前时间的毫秒值(用于计算某段代码的运行时间)
上一篇 下一篇

猜你喜欢

热点阅读