美文网首页
包,包装类

包,包装类

作者: 咸鱼有梦想呀 | 来源:发表于2017-11-01 18:03 被阅读0次

    一、包(package)

    • 对类文件进行分类管理
    • 给类提供多层命名(名称)空间
    • 写在程序文件的第一行
    • 类名的全称是
      包名.类名

    1.定义包

    package 包名;

    2.包之间的访问

    包名.类名 d = new 包名.类名;

    包与包之间的类进行访问,被访问的包中的类必须是public的,被访问的包中的方法也必须是public的

    3.权限
    ————————————————>
    高……………………………………低

    分类 public protected default private
    同一类中 可以 可以 可以 可以
    同一包中 可以 可以 可以
    子类中 可以 可以
    不同包中 可以

    default不是权限名称,当前面没有写的时候,才是默认权限。
    protected只能给不同包中的子类使用的。

    4.导入指定包中的类

    import 包名.类名;

    导入包之后不需要再进行包与包之间的访问,直接用即可。

    使用一个包中的多个类——>导入包中所有

    import 包名.*;

    5.Jar

    Jar:Java的压缩包

    二、包装类

    Java_API

    基本数据类型对象包装类

    1.基本数据类型:8种——byte,short,int,long,float, double,char,boolean

    2.基本数据类型对象包装类:就是把基本数据类型值包装成对象,用于描述基本类型对象的类

    3.特点:
    a)为了方便操作基本数据类型值
    b)在对象中定义了属性和行为丰富了该数据的操作。

    ps:因为有8个基本类型,所以有8个包装类。

    数据类型及其所对应的包装类

    基本数据类型 包装类
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean

    Integer 类
    1.Integer 类:在对象中包装了一个基本类型int的值
    也就说

    int num=4;
    Integer i = new Integer(num);
    

    可以直接将一个基本数值变成对象。

    2.Integer类的方法

    • 能在int类型和String类型之间相互转换。

      • 将字符串参数作为有符号的十进制整数进行解析
        int parseInt(String s)


        栗子
    • Integer小知识点

      • Integer会自动将字符串转换成整数
    Integer小知识点
    • 在数字上比较两个Integer的值
      int compareTo(Integer anotherInteger);
    在数字上比较两个Integer的值(a=b)
    在数字上比较两个Integer的值(a>b)
    在数字上比较两个Integer的值(a<b)

    3.包装的作用

    该包装对象主要用基本类型和字符串之间的转换

    • 基本类型----->字符串
      1.基本数据类型+""
      2.用String类中的静态方法valueOf(基本类型数值)
      3.用Integer的静态方法valueOf(基本类型数值)

    • 字符串----->基本类型

      • 1.使用包装类中的静态方法
        xxx parseXxx("xxx类型的字符串")
        只有character没有,因为character封装的就是一个字符
        eg:int parseInt("intstring");
        long parselnt("longstring");
        boolean parseboolean("booleanstring");

      • 2.如果字符串被Integer进行对象的封装。
        可使用另一个非静态的方法,intValue();
        将一个Integer对象转成基本数据类型值。


        栗子

    4.进制转换
    Integer类具备不同的进制体现

    • 十进制--->其他进制
      String toBinaryString(int i);//将十进制转二进制
      String toOctalString(int i);//将十进制转八进制
      String toHexString(int i);//将十进制转十六进制
      String toString(int i,int radix);//将十进制转成任意进制
    十进制--->其他进制
    • 其他进制--->十进制
      int parseInt("string", radix);
    其他进制--->十进制

    `5.自动装箱拆箱
    自动装箱拆箱就是简化书写

    举个栗子说明

    int num = 4;
            num = num + 5;
            Integer i = 4;//自动装箱,等价于:i = new Integer(4);
            i = i + 6;//自动拆箱,等价于: i = new Integer(i.intValue()+6);
                    //也等价于:i.intValue();
    

    但是有一个弊端,就是当数值为null时,会有异常

    自动装箱和拆箱和之前写法的区别

    自动装箱和拆箱和之前写法的区别 自动装箱和拆箱和之前写法的区别

    自动装箱如果是一个字节,那么该数据会被共享,不会新开辟空间

    来个大栗子消化一下

    题目:
    对一个字符串中的数值进行从小到大的排序
    "20 78 9 -7 88 36 29"

    代码:

    import java.util.Arrays;
    /*
     * 对一个字符串中的数值进行从小到大的排序
     * "20 78 9 -7 88 36 29"
     * 
     * 思路:
     * 1.排序
     * 2.获取字符串中需要排序的数值
     * 3.用字符串的切割方法将数值取出来放进数组
     * 4.字符串--->基本类型
     * */
    public class WrapperPractise {
    
        public static void main(String[] args) {
            String num = "20 78 9 -7 88 36 29";
            System.out.println(num);//排之前
            num = sortStringNumber(num);
            System.out.println(num);//排之后
            
        }
    
        public static String sortStringNumber(String num) {
            //1.将字符串变成字符串数组
            String[] str_arr = num.split(" ");
            //2.将字符串数组变成int数组
            int[] num_arr = toIntArry(str_arr);
            //3.对int数组排序
            mySortArry(num_arr);
            //4.将排序后的int数组变成字符串
            String temp = arrayToString(num_arr);
            return temp;
        }
    
        public static String arrayToString(int[] num_arr) {
            StringBuilder sb = new StringBuilder();
            for (int x = 0; x < num_arr.length; x++) {
                if(x!=num_arr.length-1)
                    sb.append(num_arr[x]+" ");
                else
                    sb.append(num_arr[x]);
            }
            return sb.toString();
        }
    
        public static void mySortArry(int[] num_arr) {
            Arrays.sort(num_arr);
        }
    
        public static int[] toIntArry(String[] str_arr) {
            int[] arr = new int[str_arr.length];
            for (int i = 0; i < arr.length; i++) {
                arr[i] = Integer.parseInt(str_arr[i]);
            }
            return arr;
        }
    
    }
    
    
    运行结果

    相关文章

      网友评论

          本文标题:包,包装类

          本文链接:https://www.haomeiwen.com/subject/hvavpxtx.html