实现类

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

枚举

枚举指由一组固定的常量组成的类型

enum 定义枚举的关键字

特点:

类型安全

易于输入

代码清晰

student.sex = Genders.女; // 只能通过枚举点出来。

学会查Java Platform

包装类

harmonyos 实体类定义_包装类

包装类把基本类型数据转换为对象

包装类和基本类型对应

提供了一系列方法

集合存放基本数据类型时,要先进行包装

除Character类外,包装类构造方法可以存放字符串,但该字符串必须能转成对应的数据类型。

Boolean类构造方法参数为String类型时,不是true(不管大小写)的字符串,全为false

枚举的使用

public enum Course {
    // 保存在枚举的值是一个对象
	L1("大数据开发工程师",0),
	L2("大数据挖掘工程师",1),
	L3("大数据架构师",2);
	private String name;
	private int id;
	
	private Course() {
		
	}
    // 对象初始化
	private Course(String name, int id) {
		this.name = name;
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
}

包装类的使用

集合泛型要求数据类型必须是包装类型。

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

包装类都是在java.long包下面.

包装类型的常用API

  1. 包装类型的常见方法( JDK10 作废)
  2. 包装类型的转换(直接利用函数将基本数据类型值转换为包装类型)

包装类的常用方法

harmonyos 实体类定义_Math类_02

Integer和Character特殊

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

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

xxxValue();包装类转换成基本类型

// 包装类--》基本类型
Integer i = new Integer(9);
int j = i.intValue();
System.out.println(j);
// boolean
Boolean b = new Boolean(true);
boolean b1 = b.booleanValue();
System.out.println(b1);
// Double
Double double1 = new Double(9.9);
double d = double1;
System.out.println(d);

toString();以字符串形式返回包装对象表示的基本类型数据

int num = 9;
String strNum = Integer.toString(num);
String strNum2 = num+"";

parsexxx(); 把字符串转换为相应的基本数据类型数据(Character除外)

String s = "89";
int num2 = Integer.parseInt(s);

valueOf();基本类型–》包装类–》基本类型

Integer iNum = Integer.valueOf(89);
Character cNum = Character.valueOf('z');
Boolean bNum1 = Boolean.valueOf(true);

Integer iNum2 = Integer.valueOf("89");
//		Character cNum2 = Character.valueOf("z"); Character除外
Boolean bNum12 = Boolean.valueOf("true");
包装类和基本数据类型的使用注意事项
  1. 包装类是引用数据类型,所以它可以接收null值,而基本数据类型不可以。
public class Student{
    // private Integer id;
    private Long id;
}
  1. 包装类型不是用来替代基本数据类型的,而是用来弥补基本数据类型无法使用函数的问题。
基本数据类型可以用==比较值内容。

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

装箱和拆箱

装箱:基本类型转换为包装类

拆箱:包装类转换为基本类型

基本类型和包装类的自动转换

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

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

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类

Random random = new Random(种子);// 时间的毫秒数
    for (int i = 0; i < 10; i++) {
        System.out.println(random.nextInt(10));
            }

Randonm random = new Random();
random.nextInt(); // 获取随机整数
random.nextDouble(); // 获取随机小数[0.0,1.0)

不同的种子生成的随机数不同,相同的种子随机数相同。

String类

length()方法

字符串常用方法:length(); 确定字符串长度

注意与数组length的区别

equals()方法

比较两个字符串是否一致

面试题equals与==

String重写了equals()变成了比较字符串内容

==是比较两个字符串是否为同一对象

字符串池(常量池)

String常用方法

equalsIgnoreCase();忽略大小写

toLowerCase();将一个字符串变成小写

toUpperCase();讲一个字符串变成大写

trim();去两端空格

字符串连接

+或concat();

字符串的提取方法

harmonyos 实体类定义_harmonyos 实体类定义_03

public static void main(String[] args) {
		String s = "hello,my name is chenxuan!ok";
		System.out.println(s.indexOf("o"));
		System.out.println(s.lastIndexOf("o"));
		
		System.out.println(s.substring(4));
		System.out.println(s.substring(4,6));
		
	}

s.indexOf(“o”); 从前往后查找字符位置(从0开始)

s.lastIndexOf(“o”);从后往前查找字符位置

s.substring(4); 截取字符串,从索引4开始,包含4的元素,一直到末尾。

s.substring(4,6); 包含起始位,不包含结束位置。

public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("********欢迎提交作业********");
		System.out.println("请输入作业名:");
		String name = input.next();
		System.out.println("请输入邮箱:");
		String email = input.next();
		
		boolean nameFlag = false;
		// 判断.的位置
		int index = name.indexOf(".");
		// 判断文件名是否有.和.的位置是否在开头且是.java的文件
		if(index != -1 && index != 0 && name.substring(index).equals(".java")) {
			nameFlag = true;
		}else {
			System.out.println("文件名无效!");
		}
		
		boolean emailFlag = false;
		// 找到@的位置
		int index1 = email.indexOf("@");
		// 找到.的位置
		int index2 = email.indexOf(".");
		// @和.存在且.要在@前面
		if(index1 != -1 && index2 != -1 && index1 > index2) {
		emailFlag = true;
		}else {
			System.out.println("邮箱名无效!");
			
		}
		// 两个都为true-》作业提交成功
		if (nameFlag && emailFlag) {
			System.out.println("作业提交成功!");
			
		}else {
			System.out.println("作业提交失败了!");
		}
	}
字符串拆分

xxx.split(" ");

public static void main(String[] args) {
		String words = "长亭外 古道边 芳草碧莲天 晚风 拂柳 笛声残";
		String[] printWords = new String[100];
		
		System.out.println("原歌词:");
		System.out.println(words);
		printWords = words.split(" ");
		System.out.println("拆分后:");
		for (String info : printWords) {
			System.out.println(info);
			
		}
	}
转义字符

转义输出\

StringBuffer类

append(“world!”); 拼接字符串

insert(1, “,”); 在指定位置插入字符串

Scanner input = new Scanner(System.in);
		System.out.println("请输入一串数字:");
		String number = input.next();
		StringBuffer snumber = new StringBuffer(number);
		for (int i = snumber.length()-3; i > 0; i=i-3) {
			snumber.insert(i, ",");
		}
		System.out.println(snumber);

操作日期时间

java.util.Data类:表示日期和时间

提供操作日期和时间各组成部分的方法

java.text.SimpleDateFormat类:

用于定制日期时间的格式

public static void main(String[] args) {
		// 当前日期和时间
		Date date = new Date();
		System.out.println(date);
		// 将日期和时间的格式变为我们要求的格式"年-月-日"
		SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String sdate = formater.format(date);
		System.out.println(sdate);
	}

Calendar t = Calendar.getInstance();创建Calendar对象

t.get(Calendar.xxx);

t.get(Calendar.MONTH)+1 中式月

t.get(Calendar.DAY_OF_WEEK)-1 中式周