11、实用类

实用类(一)

1. 掌握枚举的使用

枚举:

引用数据类型:数组、类(String)、接口、枚举

switch支持int String 枚举(enum)

public class Student{
    private String name;
    private int age;
    private String gender;
    
    public void setAge(int age){
        if(age < 0 || age > 100){
            syso("年龄非法!.....");
            this.age = 60;
        }else{
         	this.age = age;   
        }
    }
    
    public void setGender(String gender){
        if(gender.equals("男") || gender.equals("女")){
            this.gender = gender;
        }else{
            syso(xxxx);
        }
    }
}

public class Test{
    main(){
        Student stu = new Student();
        // stu.age = -1000;(采用封装解决)  为了解决不合理赋值
        stu.gender = "呵呵"; // 男 女 xx    String类型  ->  性别类型呢?
         
    }
}

枚举的使用

public enum Color {
	// 定义枚举
     RED, GREEN, BLANK, YELLOW 
}
// 使用枚举
public class B {
    public static void main(String[] args) {
        showColor( Color.RED );
    }
 
    static void showColor(Color color){
        switch ( color ) {
        case BLANK:
            System.out.println( color );
            break;
        case RED :
            System.out.println( color );
            break;
        default:
            System.out.println( color );
            break;
        }  
    }
}

2. 掌握包装类的使用

  1. 基本数据类型没有函数,所以在当你需要对基本数据类型进行函数操作时,那么可以使用对应的包装类型。
  2. 集合泛型要求数据类型必须是包装类型。

包装类都是在java.lang包中。

在这里插入图片描述

byte   Byte
short  Short
long Long
float Float
double Double
boolean Boolean

int  Integer
char  Character

包装类型的常用API

  1. 包装类型的创建( JDK10 作废)

    // 给构造传输一个对应的基本数据类型值
    Integer integer = new Integer(10);
    // 给构造传输一个字符串类型的值  但是字符串中的内容必须能够转换为对应的包装类
    Integer integer2 = new Integer("10");
    System.out.println(integer);
    System.out.println(integer2);
    
  2. 包装类型的转换(直接利用函数将基本数据类型值 转换为 包装类型)

    // 可以通过静态函数  valueOf 将基本数据类型值转换为包装类型
    Integer valueOf = Integer.valueOf(10);
    Character valueOf2 = Character.valueOf('h');
    
  3. 包装类型转换 -> 基本数据类型

    Integer integer = Integer.valueOf(10);
    // 利用xxxValue() 可以将包装类型转换为对应的基本数据类型
    int intValue = integer.intValue();
    
  4. 字符串 -> 基本数据类型/包装类型 (我们在网络数据传输中,你的数据表层会转换为字符串,服务器在接收时就是一些字符串而已,但是你也知道字符串对于有些数据的操控并不是太方便,所以需要进行转换)

    // [记忆]
    String value = "10";
    // 可以将字符串转换为对应的基本数据类型
    int parseInt = Integer.parseInt(value); // 【常用】
    // 可以将字符串转换为对应的包装类型
    Integer valueOf = Integer.valueOf(value); // 【常用】
    
  5. 基本/包装类型 -> 字符串

    int a = 10;
    // 凡是与字符串用+号拼接的都成为了字符串
    String b = a +"";
    // 将基本数据类型转换为字符串
    String string = Integer.toString(a);
    
    // 将包装类型转换为字符串
    Integer c = Integer.valueOf(a);
    String string2 = c.toString();  // 【常用】
    

拆箱和装箱

“拆箱”:包装类型转换为基本数据类型

“装箱”:基本数据类型转换为包装类型

JDK5之后,Java支持了自动拆箱和装箱。

Integer a = 10; // 装箱
int b = a; // 拆箱

包装类和基本数据类型的使用注意事项

  1. 包装类是引用数据类型 所以它可以接收null值,而基本数据类型不可以。

    public class Student{
        // private Integer id;
        private Long id;
    }
    
  2. 包装类型不是用来替代基本数据类型的,而是用来弥补基本数据类型无法使用函数的问题。

    基本数据类型可以用==比较值内容。
    
    包装类型默认值为null,而基本数据类型默认值为0 false等等。
    
    
  3. 但是在数据参数传递时,大多数情况基本和包装可以混淆使用。

3. Math和Random类

Math数学类

// 圆周率  自然底数
// 求两者中的最小值
int min = Math.min(10, 9);
System.out.println(min); // 9

int max = Math.max(10, 9);
System.out.println(max); // 10

// 求绝对值
int abs = Math.abs(-10);
System.out.println(abs); // 10

// 求幂运算  2的3次方
double pow = Math.pow(2, 3);
System.out.println(pow); // 8

// 四舍五入
long round = Math.round(10.5);
System.out.println(round); // 11

// 向上取整
double ceil = Math.ceil(10.2);
System.out.println(ceil); // 11
// 向下取整
double floor = Math.floor(10.8);
System.out.println(floor); // 10

// 开平方
double sqrt = Math.sqrt(4);
System.out.println(sqrt); // 2

// 求随机数 [0.0,1.0)
double random = Math.random();
// 求范围内的随机整数[min,max)
// (int)(Math.random() * (max - min)) + min

Random随机数类

// [0,100) 的随机整数
Random rand =new Random();
int i;
i=rand.nextInt(100);

实用类(二)

1. 掌握字符串的常用API

System.out.println(“xxx”);

Scanner next();

1. 获取字符串的长度:int  length();
2. 判断字符串内容是否相同:boolean equals(Object obj)
3. 不区分大小写的字符串内容比较:boolean equalsIgnoreCase(String str);
4. 将字母全部转换为大写/小写:String toUpperCase(); / String toLowerCase();
5. 字符串拼接:String concat(String anotherString);
6. 查找指定字符串第一次出现的位置:int indexOf(String subStr);
7. 从指定位置(包含)开始,查找指定字符串出现的位置:int indexOf(String subStr,int fromIndex);
8. 查找指定字符串最后一次出现的位置:int lastIndexOf(String subStr);
9. 从指定位置开始截取子字符串:String  substring(int startIndex);
10. 从指定位置开始截取到指定位置结束的子字符串:String substring(int startIndex,int endIndex); [startIndex,endIndex)
11. 获取指定索引的字符:char charAt(int index);
12. 去除字符串两端空格:String trim();
13. 替换字符串:String replace(String oldStr,String newStr);
14. 拆分字符串:String[] split(String 正则表达式);
15. 将字符串转换为字符数组:char[] toCharArray();

2. 掌握StringBuffer的基本使用(常用)

String字符串 Buffer缓冲区

字符串String 引用数据类型,那么每一次使用字符串都需要创建对象(在方法区中存在一个字符串常量池,所以有些时候,它不会创建对象),字符串拼接的时候,每一次都在创建新的字符串对象,效率特别低!

循环中不要使用+号来拼接字符串,因为底层是使用StringBuffer/StringBuilder实现的。

循环外面,不推荐使用+号,虽然它不会转换为StringBuffer/StringBuilder但是会产生新的字符串对象。

构造方法:

StringBuffer();

StringBuffer(String str);

常用方法:

append(任意类型数据);  追加字符串

insert(int index,任意类型数据); 在指定位置插入任意数据  原有数据后移

reverse(); 字符串反转

toString(); 转换为字符串

掌握StringBuffer和String的区别

在这里插入图片描述

3. 掌握时间类型Date

java.util.Date

Date(); 会获取当前的系统时间进行赋值。

掌握时间格式转换SimpleDateFormat

SimpleDateFormat函数语法:

// 规范日期格式的语句
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日,HH:mm:ss");
// 获取本地时间
Date date = new Date;
sdf.format(date);
/* y 年
   M 月
   d 日
   h 时 在上午或下午 (1~12)
   H 时 在一天中 (0~23)
   m 分
   s 秒
   S 毫秒
   E 星期 */

掌握日期类型的使用Calendar

 // 基本用法,获取年月日时分秒星期
 // 获取年
 int year = calendar.get(Calendar.YEAR);
 // 获取月,这里需要需要月份的范围为0~11,因此获取月份的时候需要+1才是当前月份值
 int month = calendar.get(Calendar.MONTH) + 1;
 // 获取日
 int day = calendar.get(Calendar.DAY_OF_MONTH);
 // 获取时
 int hour = calendar.get(Calendar.HOUR);
 // int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24小时表示
 // 获取分
 int minute = calendar.get(Calendar.MINUTE);
 // 获取秒
 int second = calendar.get(Calendar.SECOND);
 // 星期,英语国家星期从星期日开始计算
 int weekday = calendar.get(Calendar.DAY_OF_WEEK);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值