Java学习总结:16

匿名内部类

匿名内部类指的是没有名字的内部类,其必须在抽象类或接口基础上才可以定义。
例:采用匿名内部类简化类的定义

interface Message{	//定义接口
    public void print();
}
public class Test1_1_4_9 {
    public static void main(String args[]){
        fun(new Message(){	//直接实例化接口对象
            public void print(){	//匿名内部类中覆写print()方法
                System.out.println("Hello World");
            }
        });		//传递匿名内部类实例化
    }
    public static void fun(Message msg){	//接收接口对象
        msg.print();
    }
}
//结果
//Hello World

基本数据类型的包装类

Java为基本数据类型提供了对应的类,这些类称作包装类。
对象包装类(Object直接子类):Character、Boolean。
数值型包装类(Number直接子类):Byte、Short、Integer、Long、Float、Double。
关于Number类的定义:
Number是一个抽象类,里面一共定义了6个操作方法:intValue()、doubleValue()、floatValue()、byteValue()、shortValue()、longValue()。

装箱与拆箱操作

装箱操作:将基本数据类型变为包装类的形式;
每个包装类的构造方法都可以接收各自数据类型的变量;
拆箱操作:从包装中取出被包装的数据;
利用从Number类中继承而来的一系列xxxValue()方法完成。

例:使用int和Integer

public class Test1_1_5_11 {
    public static void main(String args[]){
        Integer obj=new Integer(10);	//将基本数据类型装箱(构造方法实例化)
        int temp=obj.intValue();	//将基本数据类型拆箱
        System.out.println(temp*2);	//数学计算
    }
}
//结果
//20

例:使用double和Double

public class Test1_1_5_11 {
    public static void main(String args[]){
        Double obj=new Double(10.2);	//装箱
        double temp=obj.doubleValue();	//拆箱
        System.out.println(temp*2);
    }
}
//结果
//20.4

例:自动装箱与自动拆箱

public class Test1_1_5_11 {
    public static void main(String args[]){
        Integer obj=10;		//自动装箱(直接装箱实例化)
        int temp=obj;		//自动拆箱
        obj++;
        System.out.println(temp*obj);
    }
}
//结果
//110

如果使用直接装箱实例化的方式,会使用同一块堆内存空间,而使用了构造方法实例化的包装对象,会开辟新的堆内存空间。故在进行包装类数据相等比较时,最可靠的方法是equals()。

利用Object类可以接收全部数据类型

流程:
1.基本数据类型
2.自动装箱(成为对象)
3.向上转型为Object

例:利用Object接收数据类型

public class Test1_1_5_11 {
    public static void main(String args[]){
       Object obj=10;	//先自动装箱后再向上转型,此时不能进行科学计算
       //Object不可能直接向下转型
       //所以要取出基本数据类型必须首先向下转型为指定的包装类
       int temp=(Integer)obj;	//向下变为Integer后自动拆箱
       System.out.println(temp*2);
    }
}
//结果
//20

数据类型转换

常用的将String数据类型变为基本数据类型的方法
Integer类:public static int parseInt(String s);
Double类:public static double parseDouble(String s);
Boolean类:public static boolean parseBoolean(String s);

例:将字符串变为int型数据

扫描二维码关注公众号,回复: 10995181 查看本文章
public class Test1_1_5_1 {
    public static void main(String args[]){
        String str="123";	//字符串
        int temp=Integer.parseInt(str);	//将字符串转换为int型数据
        System.out.println(temp*2);
    }
}
//结果
//246

注意:如果要将一个字符串数据变为数字,就必须保证字符串中定义的字符都是数字,如果出现了非数字的字符,那么转换就会出现异常。

例:将基本数据类型转换为String型数据

public class Test1_1_5_1 {
    public static void main(String args[]){
        int num=100;
        String str=String.valueOf(num);	//变为String型
        System.out.println(str.replaceAll("0","9"));
    }
}
//结果
//199
发布了49 篇原创文章 · 获赞 25 · 访问量 1532

猜你喜欢

转载自blog.csdn.net/weixin_45784666/article/details/104362021