复习四:常用类

Object类

类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

简单来说就是,Object类是所有类的父类,包括我们所写的类,我们在使用类的时候就会利用Object类中的方法

hashCode()
public int hashCode();
返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算
在这里插入图片描述
不同对象的 hashCode() 的值一般是不相同。
但是,同一个对象的hashCode() 值肯定相同。(就好像身份证号一样,两个人的身份账号可能相同,但是一个人的身份证号肯定是不会变的~)

gerClass()
public final Class getClass()
返回此 Object 的运行时类
在这里插入图片描述
toString()
public String toString()
返回该对象的字符串表示
在这里插入图片描述
上图显示的toString()与我们平时写出来的有一些不一样,别着急哈,仔细看一下输出结果,JAVAlesson.Six.Homework.entity则是定义Student实体类的路径,之后是@+一系列字符(哈希码值)
下图是toString()方法的底层代码
在这里插入图片描述
在实际应用中并不会常用到底层的代码,因此大部分情况下我们都会在定义实体类的时候顺便将toString()方法重写。
在这里插入图片描述
便可以得到我们想要输出的结果啦
在这里插入图片描述
equals()
public boolean equals();
指示其他某个对象是否与此对象“相等”
在这里插入图片描述
==号和equals方法的区别

“==” 是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值

equals() 方法是一个方法,只能比较引用数据类型,所有的对象都会继承 Object 类中的方法,没有重写 Object 类中的 equals 方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性
附上完整代码

package JavaL.T6;

import JAVAlesson.Six.Homework.entity.Student;

public class Demo {
    public static void main(String[] args) {
        Object object = new Object();
        Object object2 = new Object();
//        System.out.println(object.hashCode());
//        System.out.println(object2.hashCode());

        Class c = object.getClass();
//        System.out.println(c);

        Student student = new Student(53,"耳冉","男");
//        System.out.println(student.toString());

        Student student1 = new Student(54,"聃","男");
        System.out.println(student.equals(student1));
    }
}

Math类

package JavaL.T6;

public class MathDemo {
    public static void main(String[] args) {
        // Math类中的常量
        System.out.println("E的值为:"+Math.E);
        System.out.println("π的值为:"+Math.PI);
        // Math.abs() 计算绝对值
        System.out.println("-10086的绝对值为:"+Math.abs(-10086));
        // Math类中包含三角函数与反三角函数
        /* 余弦cos 正弦sin 正切tan
           反余弦acos 反正弦asin 反正切atan
           cosh双曲余弦 sinh双曲正弦 tanh双曲正切
        */
        System.out.println("cos0余弦值为:"+Math.cos(0));
        // Math.cbrt() 计算立方根
        System.out.println("27的立方根为:"+Math.cbrt(27));
        // Math.sqrt() 计算算术平方根
        System.out.println("81的平方根为:"+Math.sqrt(81));
        // Math.ceil() 向上取整
        System.out.println("2.5向上取整"+Math.ceil(2.5));
        System.out.println("2.1向上取整"+Math.ceil(2.1));
        // Math.floor() 向下取整
        System.out.println("2.9向下取整"+Math.floor(2.9));
        // Math.exp() 返回e^x值
        System.out.println("e^2值为:"+Math.exp(2));
        // Math.min() Math.max() 计算最大最小值
        System.out.println("1与999较小的是:"+Math.min(1,999));
        System.out.println("1与999较大的是:"+Math.max(1,999));
        // Math.Random()函数能够返回带正号的double值 取值范围是[0.0,1.0)
        System.out.println("random随机数:"+Math.random());
        // Math.round() “四舍五入”值
        System.out.println("3.5四舍五入为:"+Math.round(3.5));
        System.out.println("3.49四舍五入为:"+Math.round(3.49));
        /*
         Math.floorMod()
         如果参数的符号相同,则floorMod和%运算符的结果是相同的
         如果参数的符号不同,则结果与%运算符不同
         */
        System.out.println(Math.floorMod(4,3)); // 4 % 3 = 1
        System.out.println(Math.floorMod(4,-3)); // 4 % -3 = 1   floorMod(4,-3) = -2
        System.out.println(Math.floorMod(-4,3)); // -4 % 3 = -1   floorMod(4,-3) = 2
        System.out.println(Math.floorMod(-4,-3)); // -4 % -3 = -1
        // Math.toIntExact(),long转int
        System.out.println("53.995转化为int:"+Math.toIntExact((long) 53.995));
    }
}

附上运行结果
在这里插入图片描述

包装类

在这里插入图片描述
Java中的基本数据类型没有方法和属性,而包装类就是为了让这些拥有方法和属性,实现对象化交互。
数值型包装类都继承至Number,而字符型和布尔型继承至Object。

基本类型对应的包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

基本数据和包装类之间的转换

装箱:基本数据类型转换为包装类;
拆箱:包装类转换为基本数据类型。

//1.自动装箱
        int t1=1;
        Integer t2=t1;
        //2.手动装箱
        Integer t3=new Integer(t1);
        System.out.println("int类型t1="+t1);
        System.out.println("自动装箱,Integer类型对象t2="+t2);
        System.out.println("手动装箱,Integer类型t3="+t3);


        //1.自动拆箱
        int t4=t2;
        //2.手动拆箱
        //通过intValue()方法返回int值,还可以利用其他方法装换为其他类型
        int t5=t2.intValue();
        System.out.println("自动拆箱,int型t4="+t4);
        System.out.println("手动拆箱,int型t5="+t5);

基本数据类型和包装类的转换

通过包装类Integer.toString()将整型转换为字符串;
通过Integer.parseInt()将字符串转换为int类型;
通过valueOf()方法把字符串转换为包装类然后通过自动拆箱。

//基本数据类型转换为字符串
        int t1=12;
        String t2=Integer.toString(t1);
        System.out.println("int转换为String:"+t2);
        //字符串转换为基本数据类型
        //通过paerInt方法
        int t3=Integer.parseInt(t2);
        //通过valeOf,先把字符串转换为包装类然后通过自动拆箱
        int t4=Integer.valueOf(t2);
        System.out.println("t3:"+t3);
        System.out.println("t4:"+t4);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值