Java基础学习13

本文探讨了Java中Object类作为最高统一类型的使用,以及所有类默认继承Object的事实。内容涉及包装类与基本数据类型的差异,包括声明方式、存储位置、初始值和使用方式的不同。此外,还展示了子类向接口和接口向Object的转型操作,以及装箱拆箱的概念和自动装箱的特性。最后,讲解了如何将字符串转换为基本数据类型。
摘要由CSDN通过智能技术生成
Object类是java默认提供的一个类,除了这个类,其他所有的类都是存在有继承关系的。
 那么默认会继承Object父类
所以在开发之中Object类是参数的最高统一类型
所有子类构造实例化都要调用父类中的无参构造方法
  1. 包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址;基本类型不是

  2. 包装类型是引用的传递;基本类型是值的传递

  3. 声明方式不同:

    ​ 基本数据类型不需要new关键字;

    ​ 包装类型需要new在堆内存中进行new来分配内存空间

  4. 存储位置不同:

    ​ 基本数据类型直接将值保存在值栈中;

    ​ 包装类型是吧对象放在堆中,然后通过对象的引用来调用他们

  5. 初始值不同:

    ​ int的初始值为0、Boolean初始值为false

    ​ 包装类初始值为null

  6. 使用方式不同:

    ​ 基本数据类型直接赋值使用就行;

    ​ 包装类型是在集合如coolectionMap时使用

img

interface IMessage100{
}
class MessageImpl100 implements IMessage100{
    public String toSting(){//Object类的方法
            return "www.aka.vom";
    }
}
public class Test18 {
    public static void main(String[] args) {
//        //利用Object接收数组对象,都行向上转型
//        Object obj = new int[]{1,2,3};
//        //向下转型,需要强制类型
//        int data[] = (int[]) obj;
//        for (int x = 0; x < data.length ; x++) {
//            System.out.println(data[x]);
//        }
        IMessage100 msg = new MessageImpl100();//子类向父接口转型
        Object obj = msg;           //接口向Object转型
        System.out.println(obj);
        IMessage100 temp = (IMessage100) obj;
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wX1Z4RZT-1633234240908)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210924144613977.png)]

//包装类:指的就是将基本数据类型封装在一个类中
class MyInt{//MyInt实际上是int数据类型的一个包装类,利用MyInt可实现基本数据类型变为对象的需求
    private int num;
    public MyInt(int num){
        this.num = num;
    }
    public int intValue(){
        return this.num;
    }
}
public class Test19 {
    public static void main(String[] args) {
        //子类对象自动变为Object父类对象
        Object obj = new MyInt(10);
        MyInt temp = (MyInt)obj;                //取出内容需向下转型
        System.out.println(temp.intValue() * 2); //取出里面的基本数据类型操作

    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ykk6bDR5-1633234240909)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210924144722141.png)]

public class Test20 {
    public static void main(String[] args) {
        //手工装箱拆箱方法jdk1.5之后提供自动方法进行数学类计算
        Integer num = new Integer(10);//装箱
        int x = num.intValue();             //拆箱
        System.out.println(x * 2);
        //自动装箱
        Integer y = 10;
        System.out.println(++y * 2);
        System.out.println("-*******************************");
        String str = "123";         //字符串
        int num1 = Integer.parseInt(str);    //字符串变为基本类型
        System.out.println(num1 * 2);
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yxYfsQqC-1633234240910)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210924144627145.png)]

//字符串变为基本类型
System.out.println(num1 * 2);
}
}


[外链图片转存中...(img-yxYfsQqC-1633234240910)]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值