java实用类(枚举、包装类)

一、什么是枚举

        就是把某个类型的对象,全部一一列举出来。

        枚举是一种特殊的数据类型,它允许我们定义一个有限的集合值。

二、为什么要用枚举

        因为可以限制赋值。将有可能的值都列举出来,赋值时只能赋列举出的值。

三、怎么用

        语法:新建一个Enum ,在里面将可能出现的值列出来,使用的时候使用枚举类点的方法调出属性。

 例:我们先创建一个Student类,并给它一个属性sex。

public class Student {
    private Gender sex;

    public Gender getSex() {
        return sex;
    }

    public void setSex(Gender sex) {
        this.sex = sex;
    }

    public Student() {
    }

    public Student(Gender sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Student{" +
                "sex='" + sex + '\'' +
                '}';
    }
}

然后我们创建一个枚举类stu,因为性别的话要么是男要么是女(我们排除特殊情况)。

public enum Stu {
    男,女;
}

 再然后,我们创建一个测试类

public class TestStudent {
    public static void main(String[] args) {
        Student student = new Student();
        student.setSex(Stu.女);
        System.out.println(student.toString());
    }
}

四、包装类

4.1 什么是包装类

        要想知道什么事包装类,我们首先得知道什么是基本数据类型。那什么是基本数据类型呢?基本数据类型包括整型:byte、short、int、long;浮点型:float、double;字符型:char;布尔型:boolean,共8种。

        那么包装类又是什么呢?为了使用方便和解决不面向对象的问题

4.2 为什么使用它

        ①在使用泛型的时候可以使用

        ②首先是个类,就会有属性和方法给我们使用

4.3 基本数据类型和包装类的对应

        除了Character类是只有对应的基本数据类型作为参数之外,其他的包装类都是有其对应的基本数据类型作为参数和String类型作为参数。

        Boolean类型的包装类的参数是String类型的时候,不区别大小写只要是true结果就是true,其他情况都是false。

        当包装类中传入的参数是null的时候,编译没有问题,运行的时候出现NullPointerException异常。

4.4 包装类的特点

        所有包装类都是final类型,不能创建它们的子类
        JDK1.5后,允许基本数据类型和包装类型进行混合数学运算
        包装类并不是用来取代基本数据类型的:在基本数据类型需要对象时使用

4.5 包装类的作用

        包装类把基本数据类性转换为对象(每个基本类型在java.lang包中都有一个相应的包装类)
        提供了一系列的实用方法
        集合不允许存放基本数据类型数据,存放数字时,要用包装类型

4.6 常用方法

xxValue():将一个包装类 转换为对应的基本数据类型

valueOf:将其对应的基本数据类型转换为对应的包装类

parseInt()将字符串转换为基本数据类型

//xxValue() 将包装类转换为基本数据类型的值
   Integer intValue=new Integer(12);
   int intValue2 = intValue.intValue();
   System.out.println(intValue2);
//XXX.valueOf()将基本数据类型转换成包装类
  Integer intValue=Integer.valueOf(12);
  Boolean bool=Boolean.valueOf(false);
  System.out.println(intValue+" "+bool);

基本类型和包装类的转换:装箱和拆箱

public class Demo2 {
    public static void main(String[] args) {
        Integer i1 = new Integer(123); //包装类新建对象
        Integer i = i1.intValue();

        Double d = new Double(12.5);
        double v = d.doubleValue();
        int n = 12;

        Character c = new Character('a');
        Character v1 = Character.valueOf('v');

        //将字符串转换为基本数据类型
        int j = Integer.parseInt("1231654");
        //异常 数字格式异常NumberFormatException
        //int abc = Integer.parseInt("abc");

        System.out.println(i);
        System.out.println(v);
        System.out.println(v1);
        System.out.println(j);
        //System.out.println(abc);

        //包装类
        Integer i3=12;
        //拆箱
        int i4=i3;
        int n1=20;
        //装箱
        Integer n2=n1;
    }
}

.equalsIgnoreCase()  忽略大小比较是否相同

.toUpperCase()  转换为大写

.toLowerCase()  转换为小写

public class Demo3 {
    public static void main(String[] args) {
        String s1="abcdE";
        String s2="ABCDe";
        String s3="ABCDe";

        String str1 = new String("tom");
        String str2 = new String("tom");

        //String 类中重写了equals()方法比较的是内容
        System.out.println(str1.equals(str2));
        /*忽略大小比较是否相同*/
        System.out.println(s1.equalsIgnoreCase(s2));
        //转换为大写
        System.out.println(s1.toUpperCase());
        //转换为小写
        System.out.println(s1.toLowerCase());
    }
}

public int indexOf(int ch)   第一次出现的位置下标,如果查找的内容不存在则返回-1
public int indexOf(String value)
public int lastIndexOf(int ch)
public int lastIndexOf(String value)  查找最后一个位置的内容
public String substring(int index)    截取当前位置到最后的内容
public String substring(int beginindex, int endindex)   截取制定区间的内容
public String trim()   截取前后空格内容

public class Demo4 {
    public static void main(String[] args) {
        String str="abcdefgabc";
        System.out.println(str.indexOf("k"));
        System.out.println(str.lastIndexOf("a"));
        System.out.println(str.substring(3));
        System.out.println(str.substring(3,7));
        System.out.println(str.trim());

    }
}

.append() 在字符串后面追加某个内容 

.insert() 在字符后加

public class Demo6 {
    public static void main(String[] args) {
        String str="abcdefg";
        StringBuffer sb = new StringBuffer(str);
        String s = sb.toString();
        System.out.println(s);
        System.out.println("----------------");
        //在字符串后面追加某个内容
        sb.append("ttttt");
        System.out.println(sb);
        System.out.println("-----------------");
        //在第一个字符后加逗号
        sb.insert(1,",");
        System.out.println(sb);
        //从后向前每隔3个字符插入一个逗号
        System.out.println("------------------");
        for (int i = sb.length()-3; i >0 ; i-=3) {
            sb.insert(i,",");
        }
        System.out.println(sb);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值