Java-object类、内部类、时间API

    科技2022-07-17  115

    object类常用的两个方法:

    equals()方法解析: 1.object类中equals() 方法定义:return (this==obj);//直接比较两个对象引用地址是否相等 } 1.equals是比较两个对象中的实体内容是否相等。 2.对于自定义的类来说,如果没有重写Object类中的equals()方法,调用的equals()时,仍然是比较两个对象的引用地址是否相同。 3.一般情况下,在开发中一旦调用了自定义类中的equals(),通常是重写之后的equals()方法。而一般重写的equals()方法是判断两个对象的属性是否相等。

    2.例子:

    2.和equals()的区别::使用范围:可以操作基本数据类型 和引用数据类型。如操作的是基本数据类型:比较两个基本数据类型的变量对应的值是否相等。如果操作的是引用数据类型,比较两个引用的地址是否相等。== 符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译出错。列子:equals()方法:使用范围:只适用于引用数据类型。 2.toString()方法: 1.object类中toString()

    定义:

    2.当我们打印一个对象的引用时,会自动调用其toString(), 3.像String、Date、File、包装类等重写了Object类中的toString(),返回其代表的具体内容。4.在进行String与其它数据类型连接操作时,会自动调用toString()方法 2.内部类:车 发动机 发动机类脱离了车类 是没有意义的定义: 如果一个事物包含另一个事物,那么这就是类内部包含一个类,这就是内部类例如: 身体和心脏的关系 汽车和发动机

    (1)分类:

    1.成员内部类 2.局部内部类(包含了匿名内部类) 成员内部类: 语法: 修饰符 class 外部类名称{修饰符 class 内部类名称{内部类成员}外部类成员}内部类使用:编译器如何处理内部类 Body.java–>body.classBody.Heat.java—>Body$Heart.class 1.内用外 随意访问 2.外部用内部普通类使用方式:类名称 对象名=new 类名称();内部类 外部类名称.内部类名称 内部类对象=new 外部类名称().new 内部类名称(); 3.内部类如果有同名: 2.内部类的简单总结: 3.内部类如果有同名: public class Body { public class Heart { // 内部类方法 public void beat() { //number=100; //run(); System.out.println(“扑通扑通”); } }

    // 外部类方法 public void run() { System.out.println("跑起来了!"); }

    }

    访问修饰符总结:

    外部类 public 和defualt内部类public protected default private 局部内部类: 如果一个类定义在一个方法内部 这个类就是局部内部类 局部内部类: 只属于当前的方法,所以只有当前方法可以使用他 出了方法就没有了。 局部内部类注意事项: 1.如果局部内部类中的方法希望访问类,所在方法的局部变量,这个局部变量必须是有效final的Java8以后 只要局部变量是事实不变的,final可以省略。

    原因:

    1.new出来的对象,在堆上存储 2.局部变量是跟这方法走的,存在栈中 3.方法调用完成 局部变量就出栈了 4.new出来的对象会在堆中持续存在,知道垃圾回收所以,可能number已经没有了,内部类对象还有 需要把number copy出来, copy出来到常量池重要: 匿名内部类 lambda表达式前提: 1.如果接口实现类或者父类的子类 只需要使用一次 而且是唯一的一次 2.这种情况下就可以省略实现类或子类的定义,改为使用匿名内部类。

    语法:

    接口名称/抽象类名称 对象名=new 接口名称/抽象类名称 (){重写接口和抽象类的抽象方法}调用 对象名. 抽象方法注意事项:

    格式解析:

    1.new 代表创建对象的动作 2.接口名称就是匿名内部类需要实现的接口 3{。。。。。} 匿名内部类的内容说明:1.匿名内部类 在创建对象的时候只能使用一次。 2.匿名对象在调用方法的时候只能使用一次。 3.匿名内部类是省略了实现类或者子类 匿名对象是省略了对象名称。 总结: 引用(类 接口)类型作为成员变量,作为返回值和参数代码示例:public abstract void func(); }

    public class MySon extends MyClass{ @Override public void func(){ System.out.println(“哈哈哈哈!”) }

    例子:

    匿名内部类 类匿名 没有这个类 类只用一次的时候(创建对象的时候,才使用类)匿名对象: 对象匿名 没有这个对象 可以做参数,做返回值,测试方法,对象只需用亦一次的时候可以用。与时间有关的API:类Date 表示特定的瞬间,精确到毫秒毫秒:千分之一秒 1000毫秒=1秒。瞬间的定义:2000-01-01 01-01-01:001 瞬间2000-01-01 01-01-01:002  瞬间作用:可以对时间和日期进行计算。 2010-2020年有几天? 可以先把时间转换为毫秒进行计算 计算完成之后 毫秒转为天数日期转毫秒。2010-起始点 getTime方法获取毫秒2020-起始点 getTime方法获取毫秒初始:1970年1月1日00:00:00 类中的构造函数和方法 Date date =new Date(); Date date=new Date(0); System.out.println(date); 起始时间DateFormat: 包: ava.textDateFormat 是日期/时间 格式化子类抽象类子类: SimpleDateFormat作用:是日期/时间格式化 1 00:00:01 1¥ 0011999-11-11 1999:

    11:11 1999年11月11日

    构造方法和方法

    1.构造方法SimpleDateFormat(String pattern)

    2.方法:

    String format(Date) 日期转成字符串Date parse(String str) 字符串转成日期创建一个简单时间 格式化对象:抛出异常: 把字符串转换成日期: Calender 日历抽象类操作日历字段如: 获得下星期的日期提供了一些方法子类: 不好看static Calendar getInstance(Local aLocale)使用默认时区和指定环境获得一个日历。

    Java常用API

    (数学):

    java.lang.Math提供sin, cos, tan, exp, log, log10 等类方法,PI和E等类字段java.lang.String(StringBuilder线程不安全,StringBuffer线程安全) char charAt(int index)返回给定位置的代码单元boolean equals(Object other)boolean equalsIngoreCase(String other) 如果字符串与other相等, 返回true忽略大小写int length() 返回字符串的长度String substring(int beginIndex)String substring(int beginIndex, int endIndex) 返回一个新字符串,包含原始字符串从beginIndex到串尾或到endIndex-1的所有代码单元String toLowerCase()String toUpperCase()返回小写字符串返回大写字符串int indexOf(String str[, int fromIndex])int lastIndexOF(String str[, int fromIndex]) 返回第一个 最后一个子串的位置,从起始位置或者fromIndex开始。

    Processed: 0.009, SQL: 8