JAVA复习 面向对象高级编程Day14

12异常

12.5自定义异常

12.5.1自定义异常的步骤

定义类:自定义异常类名(程序员自己写)继承Exception或者RuntimeException
如果继承Exception,属于编译异常
如果继承RountimeException属于运行异常一般是继承它

public class exe01 {
    public static void main(String[] args) {
       int age=0;
       //要求范围在18-120之间,否则抛出一个自定义异常
        if(!(age>=18&&age<=120)){
            throw new  AgeException("年龄需要在18~120之间");
        }
        System.out.println("你的年龄范围正确");
    }
}

class AgeException extends RuntimeException{
    public AgeException(String message){
        super(message);
    }//自定义异常,一般是继承RuntimeException
    //把自定义异常做成运行时异常,好处:可以使用默认的处理机制
}

12.6throw和throws的对比

在这里插入图片描述

public class exe01 {
    public static void main(String[] args) {
       try{
           showExce();
           System.out.println("A");
       }catch (Exception e){
           System.out.println("B");
       }finally{
           System.out.println("C");
       }
       System.out.println("D");
    }
    public static void showExce() throws  Exception{
    //throws和throw的区别使用
        throw new Exception();
    }
}

13常用类

13.1包装类Wrapper

针对八种基本数据类型相应的引用类型——包装类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

装箱:基本类型->包装类型
拆箱:包装类型->基本类型
自动装箱底层调用的时valueOf方法

        int n1=100;
        Integer integer = new Integer(n1);
        Integer integer1 = Integer.valueOf(n1);
        //手动装箱,int->Integer

        int i = integer.intValue();
        //手动拆箱
        
        //jdk5以后就可以完成自动装箱和自动拆箱
        int n2=200;
        //自动拆箱
        Integer integer2 =n2;

三元运算符是一个整体,精度高优先

13.1.2包装类型和String相互转换

//包装类->String
       Integer i =100;//自动装箱

        String str1 = i+" ";

        String str2=i.toString();

        String str3=String.valueOf(i);

        //String->包装类
        String  str4="12345";
        Integer i1 = Integer.parseInt(str4);//使用到自动装箱
        Integer i2 = new Integer(str4);//构造器

13.1.3Integer和Character类的常用方法

Integer.MIN_VALUE//返回最小值
Integer.MAX_VALUE//返回最大值

Character.isDigit(‘a’)//判断是不是数字
Character.isLetter(‘a’)//判断是不是字母
Character.isUpperCase(‘a’)//判断是不是大写
Character.isLowerCase(‘a’)//判断是不是小写

13.2JAVA_String类

13.2.1基本介绍

String 对象用于保存字符串,也就是一组字符序列
字符串常量对象是用双引号括起的字符序列
String是final类,不能被其他的类继承
String有属性private final char value[ ];用于存放字符串内容
value是一个final类型,不可以修改(这里指的是地址)
字符串的字符使用Unicode字符编码,一个字符占两个字节
String类较常用构造方法
String s1=new String();
String s2=new String(String original);
String s3=new String(char[]a);
String s4=new String(char [] a,int startindex,int count)

13.2.2String类的创建方式

//方式一
String s="hspedu";
//直接在常量池里面去找,如果有直接指向,如果没有则进行创建
//方式二
String s=new String ("hspedu");
//在堆里面创建一个空间,value值为常量池里数据的地址,如果有则直接指向,如果没有则进行创建
inter方法:当常量池中包含一个等于此String对象的字符串(用equals(Object)方法确定),则返回池中的字符串,否则,将此String对象添加到常量池中,并返回String对象的引用

13.2.3字符串的特性

String 是一个final类代表不可变的字符序列
字符串是不可变的,一个字符串对象一旦被分配,其内容是不可变的

String a=“hello”;
String b=“abc”;
String c=a+b;//创建了3个对象
先创建了一个对象
将hello追加到这个里面
在将abc追加到这个对象里面去
最后将第一个对象的内容给到c
追源码看过程

String c=“hello”+"abc“;//创建了1个对象

13.2.4String常用方法

String类是保存字符串常量的,每次更新都需要重新开辟空间,效率较低。

equals:区分大小写,判断内容是否相等
equalsgnoreCase:忽略大小写的判断内容是否相等
length:获取字符的个数,字符串的长度
indexOf:获取字符在字符串中第一次出现的索引,索引从0开始,如果找不到,返回-1
lastlendexOf:获取字符在字符串中最后一次出现的索引,索引从0开始,如果找不到,返回-1
substring:截取指定范围的字串,当给一个数字x时是从x到末尾,当给两个数字x,y时从x开始,截取到索引为y-1的位置
trim:去前后空格
charAt:获取某索引处的字符,注意不能使用Str[index]这种方式
toUpperCase:把字符串全部换成大写
toLowerCase把字符串全部换成小写
concat:拼接字符串
replace:替换字符串中的字符
split:分割字符串
compareTo:比较两个字符串的大小;如果前者大返回正数,后者大返回负数,如果相等返回0;如果长度相同或者不相同,但是在进行比较时,可以区分大小,就返回字符的差值;
toCharArray:转换成字符数组
format:格式字符串,%s字符串 %c字符  %d整型  %.2f浮点型,这些%称为占位符,这些占位符由后面的变量来替换

13.2JAVA_Buffer类

Buffer代表可变的字符序列,可以对字符串内容进行增删,但是StringBuffer是可变长度的,StringBuffer是一个容器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值