Java实用类(9个)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huanhuanq1209/article/details/80887106

1、实用类:

9个实用类:

1.1 枚举什么时候会用到?

枚举是一个类型;

public enum 枚举名{//定义枚举类

}

定义枚举可以new一个文件;也可以定义在实用枚举的类里面,

如:

package com.example.test;

import com.example.test.Student1.Xingbie;

public class TestStu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student1 stu=new Student1();
		stu.sex=Xingbie.女;
		System.out.println(stu.sex);
	}
}
package com.example.test;

public class Student1 {
	public enum Xingbie{
		男,
		女
	}
	public Xingbie sex;
}

运行结果为:

package com.example.test;

//import com.example.test.Student1.Xingbie;

public class TestStu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student1 stu=new Student1();
		stu.sex=Genders.女;
		System.out.println(stu.sex);
	}

}
package com.example.test;

public enum Genders {
	男,
	女
}
package com.example.test;

public class Student1 {
//	public enum Xingbie{
//		男,
//		女
//	}
	public Genders sex;
}

枚举类定义在实用的类里面和new一个新的文件的区别:

枚举类作用域不一样;枚举类定义在实用的类里面,只能依附的类用,其他类用得import;new一个新的文件,别的类都可以用。

枚举类型优点:类型安全;易于输入;代码清晰;

需求,修改,用枚举:

解:

package com.example.test;

public class WeekDemo {
	public void doWhat(WeekEnum day) {//枚举约束掉值的范围了。
		switch(day) {
		case MON:
		case TUE:
		case WED:
		case THU:
		case FRI:
			System.out.println("工作日,努力写代码!");
			break;
		case SAT:
			System.out.println("星期六,休息!看电影!");
			break;
		case SUN:
			System.out.println("星期日,休息!看电影!");
		}
	}
	public static void main(String[] args) {
		WeekDemo wd=new WeekDemo();
		wd.doWhat(WeekEnum.SUN);
	}
}

面试题:写出你都用过那些异常

写出你用过那些包那些类

1.2、java.lang.Math类

Math.random()生成0.0<=值<1.0的随机数

package com.example.orient;

public class LuckyDog {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//会员卡号 百位=随机数 <==中奖规则
		int custNo=9876;
		int baiWei= custNo/100%10;
		int suiJi=(int)(Math.random()*10);
		System.out.println(suiJi);
		if(baiWei==suiJi) {
			System.out.println("I'm a lucky dog!");
		}
		else {
			System.out.println("未中奖");
		}
	}

}

1.3、java.util.Random

是一个类,通过一个种子,某一个算法生成随机数。

两步使用:Random random=new Random();

random.nextInt(maxNum);//不可能超过maxNum

情况一:

package com.example.orient;

import java.util.Random;

public class RandomDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Random  random = new Random();
		for(int i=1;i<=10;i++) {
			int a=random.nextInt(10);
			System.out.println("第"+i+"个随机数:"+a);
		}
	}

}

情况二:

代码验证如下:

package com.example.orient;

import java.util.Random;

public class RandomDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*Random  random = new Random();
		for(int i=1;i<=10;i++) {
			int a=random.nextInt(10);
			System.out.println("第"+i+"个随机数:"+a);
		}*/
		//两个种子生成器生成随机数
		Random random1=new Random(9);
		Random random2=new Random(9);
		//随机生成一个整数
		System.out.println(random1.nextInt());
		System.out.println(random2.nextInt());
	}

}

运行结果:

总结:用种子构造器生成随机数,种子相同的两个随机对象,生成的随机数一定相同。

情况三:

package com.example.orient;

import java.util.Random;

public class RandomDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*Random  random = new Random();
		for(int i=1;i<=10;i++) {
			int a=random.nextInt(10);
			System.out.println("第"+i+"个随机数:"+a);
		}*/
		//两个种子生成器生成随机数
		Random random1=new Random();
		Random random2=new Random();
		//随机生成一个整数
		System.out.println(random1.nextInt());
		System.out.println(random2.nextInt());
	}

}

运行结果为:

总结:若不写种子,则默认是有一个种子的,可能以当前时间的毫秒数来作为种子传进去的。所以种子是时时刻刻是变化的,所以说没运行一次两个随机数都不一样,各自变化也不一样。

问题:

如果你想随机数越随机,则种子变化越大随机数越随机。种子越随机生成的随机数越随机!尽量使用变化比较大的种子(时间的毫秒)

1.4、包装类:

基本数据类型:int  double  float  char  boolean  byte

引用数据类型:(有方法有属性的)

比如包装类:Integer Double  Float  Character  Boolean Byte

即:Boolean  Number Character

集合:List list=new ArrayList();

list.add();//添加元素,只能add是object值;

集合只能装Object类型的,为了能装基本数据类型,java都给其包装成引用类型;

包装类的装箱:基本数据类型转换为包装类的对象;

拆箱:包装类对象转换为基本类型的值;

package com.example.orient;

public class Demo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i=9;
		Integer i1=8;//装箱操作
		//i=i1;//拆箱操作
		
		Integer i2=new Integer(i);//包装类的构造方法
		System.out.println(i2);
		
		boolean b=false;
		Boolean b1=new Boolean(b);
		System.out.println(b1);
		
		char c='a';
		Character ch=new Character(c);
		System.out.println(ch);
		
		int t=8;
		Integer t1=new Integer("123");
		System.out.println(t1);
		
		//Number类型,传参必须能正确转换为相应数值,否则会NumberFormatException
		/*Integer t2=new Integer("北京");//编译没错,但运行就会有错
		System.out.println(t2);*/
		
		//Boolean 类型,传参只要不是true(包括大小写),全部都是false
		Boolean bt3=new Boolean("TRUE");
		Boolean bt=new Boolean("True");
		Boolean bt1=new Boolean("false");
		Boolean bt2=new Boolean("1");
		System.out.println(bt);
		System.out.println(bt1);
		System.out.println(bt2);
		System.out.println(bt3);
		
		
		/*//Character没有String 做参数的构造方法。
		Character ch1=new Character("ng");
		System.out.println(ch1);*/
		
		//参数不能为null
		/*Integer ad=new Integer(null);
		System.out.println(ad);*/
		
	}

}

运行结果:

1.5、字符串操作相关的类(String StringBuffer)

1.6、日期操作相关的类(Date   SimpleDateFormat)记住:

1.7、文件File 输入流和输出流的作用:

二、IO操作:

 

猜你喜欢

转载自blog.csdn.net/huanhuanq1209/article/details/80887106
今日推荐