Java入门(六)之常用的类

Java入门之常用的类

我们在使用Java的时候,有很多时候需要用到一些Java自带的类库,学会怎么使用,了解其提供的功能对我们开发很有帮助。

1. Math类

/*
	Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
	Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。	
	static 是Java的一个关键字,可以用在方法名和属性名上面,表示静态。
	静态的方法和属性即使在没有创建类的情况下也可以调用。
	一般的属性调用是:new Example().num;
	而静态的属性可以这样调用:Example.num;
*/
		System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));  
        System.out.println("0度的余弦值:" + Math.cos(0));  
        System.out.println("60度的正切值:" + Math.tan(Math.PI/3));  
        System.out.println("1的反正切值: " + Math.atan(1));  
        System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));  
        System.out.println(Math.PI);  

/*
	random() 方法用于返回一个随机数,随机数范围为 0.0 =< Math.random < 1.0。 
	我们可以使用这个方法做一个抽奖
*/
	int num = (int)Math.random()*100;//获取一个0-100的随机整数
	int num2 = (int)Math.random()*100+200;//获取一个100-200的随机整数

/*
	Math类还有许多的用法,基本的数学运算都有,如果本文没有提及,可以自行百度,资料非常多。
*/

2. Number类

  • 我们在使用数字时,会使用byte,int,double,float等基本数据类型。但是我们无法像操作类一样去操作他们,而String是一个对象,我们可以操作String,调用它的一些方法。那么,这些基本数据类型能不能做到像String一样调用一些实用的方法呢。

  • 当然是有的,Java 语言为每一个内置数据类型提供了对应的包装类。

    所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。

    /*
    	首先,包装类可以像基本数据类型一样定义,一样运算。
    */
    	 Integer x = 5;
         x =  x + 10;
         System.out.println(x);
    /*
    	我们也可以进行一些转换操作。
    */
    	String str = "10";
    	int num = Integer.parseInt(str);
    	num = num + 10;
    	System.out.println(num);
            
    

3. String类

/*
	String类比较特殊的是,可以通过"内容"来创建对象。
	因为它是字符串,所以我们也可以定义一个字符数组,然后传入它的构造方法。
*/
	char[] helloArray = { 'h', 'e', 'l', 'l', 'o'};
    String helloString = new String(helloArray);  
    System.out.println( helloString );
	//获得字符长度
	System.out.println( helloString.length());
	//链接两个字符
	helloString.concat(" world!");
	//切割字符串
	String longstr = "小明 小红 小绿 小白";
	String [] names = longstr.split(" ");
//以上用法只是部分,还有很多的方法可以使用,当你需要一些功能的时候,不如百度一下是不是有相关的方法可以直接使用。
/*
	格式化字符。
	跟printf一样,String可以格式化字符
*/
	String fs;
	fs = String.format("浮点型变量的值为 " +
                   "%f, 整型变量的值为 " +
                   " %d, 字符串变量的值为 " +
                   " %s", floatVar, intVar, stringVar);

4. StringBuffer 和 StringBuilder

/*
	String字符串在拼接、替换等修改操作时,都是需要先新建一个String对象,替换到之前的对象。
	而当我们需要复杂的修改时,使用String会影响我们的运行速度。
	这时我们可以使用StringBuffer 和StringBuilder 来代替。
	和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 
    StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。 
    由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。 
*/
	StringBuilder sb = new StringBuilder("hello");
	sb.append(" ").append("world").append("!");
	System.out.println(sb);

5. 数组

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java 语言中提供的数组是用来存储固定大小的同类型元素。

/*
	首选方法
*/
	数据类型[] 变量名;
/*
	也可以这样写
*/
	数据类型 变量名[];
/*
	实例:
*/
	int[] array;
/*
	创建数组对象
*/
	array = new int[10];
/*
	也可以这样
*/
	array = {1,2,3};
/*
	为数组赋值
*/
	array[1] = 1;
/*
	多维数组
*/
	double[][] rect = new double[3][4];

6. Arrays类

Arrays类可以用来操作数组对象,它的方法都是静态的。

/*
	为数组赋值,使用fill方法可以为数组对象的所有元素赋上同一个值
*/
	Arrays.fill(数组对象,值);
/*
	sort方法可以为数组排序,顺序是升序
*/
	Arrays.sort(数组对象);
/*
	二分查找,使用前需要先排序
	如果查找成功会返回索引,如果查找失败返回-1
*/
	Arrays.binarySearch(数组对象,搜索的元素);
/*
	比较,两个数组对象如果内容相同,并且顺序相同,那么就认为这两个数组是相同的。
*/
	Arrays.equals(数组对象1,数组对象2)

7. 日期时间

1. Date类

/*
	创建日期时间对象
*/
	new Date();
//时间戳转日期时间
	new Date(时间戳);
/*
	默认的打印结果:
	Thu Jan 16 16:11:34 CST 2020
*/
/*
	比较时间有三种方法
	使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
	使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 :
	new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
	使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
*/

2. SimpleDateFormat

/*
	使用SimpleDateFormat可以格式化日期
*/
	Date now = new Date( );
    SimpleDateFormat sf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
 
    System.out.println("当前时间为: " + sf.format(now));
/*
	可以字符串转为时间
*/
	String time_str = "2020-01-16 16:16:16";
	Date date = sf.parse(time_str);
	System.out.println("字符串转化为时间: " + date);

8. Scanner类

我们可以使用这个类来获取用户的输入。

//定义
Scanner scan = new Scanner(System.in);
//接收键盘输入
System.out.print("请输入:");
String next = scan.next();//输入字符串
String next_int = scan.nextInt();//输入数字
...

练习:

使用本章知识,制作一个简易的课表。功能有:

  1. 查看本周课表,并可以选择上一周,下一周。
  2. 课表内容包括 课程名称,上课时间,第几周,星期几
  3. 输入时间查看当天课程。
posted @ 2020-01-16 16:50  Jennyism丶  阅读(256)  评论(0编辑  收藏  举报