2017.11.29_实验8_java基本类库


(一) 使用数学函数类

Math 是一个最终类,含有基本数学运算函数,如指数运算、对数运算、求平方根、三角函数、随机数等,可以直接在程序中加 Math.前缀调用。
1.使用Math中random()方法产生随机数的 Math 类。

package work03;

public class TestMath {
	public static void main(String args[]) {
		int i1 = (int) (Math.random() * 100); // 产生大于等于 0 小于 100 的随机数
		double i2 = Math.random() * 100; // 产生大于等于 0.0 小于 1.0 的随机数
		double d1 = Math.sin(Math.toRadians(60.0));// 弧度值
		double d2 = Math.log(Math.E);// E 的对数值
		double d3 = Math.pow(2.0, 4.0);
		int r = Math.round(43.6F);
		System.out.println("i1 的随机数为 " + i1);
		System.out.println("d1 的随机数为 " + i2);
		System.out.println("60 弧度的正弦值:Math.sin(Math.toRadians(60.0))= " + d1);// 0.8660254037844386
		System.out.println("E 的对数值:Math.log(Math.E)= " + d2);// 1.0
		System.out.println("2 的 4 次方:Math.pow(2.0, 4.0)= " + d3);// 16.0
		System.out.println("43.6F 四舍五入:Math.round(43.6F)= " + r);// 44
	}

}


2. 使用Random类产生随机数的Math 类。


package work03;

import java.util.Random;

public class TestMath {
	public static void main(String args[]) {
		Random r1 = new Random(1234567890L);
		Random r2 = new Random(1234567890L);
		boolean b = r1.nextBoolean(); // 随机数不为 0 时取真值
		int i1 = r1.nextInt(100); // 产生大于等于 0 小于 100 的随机数
		double i2 = r1.nextDouble(); // 产生大于等于 0.0 小于 1.0 的随机数
		double d1 = Math.sin(Math.toRadians(60.0));
		double d2 = Math.log(Math.E);
		double d3 = Math.pow(2.0, 4.0);
		int r = Math.round(43.6F);
		System.out.println("b 的随机数不为 0 时 " + b);
		System.out.println("i1 的随机数为 " + i1);
		System.out.println("d1 的随机数为 " + i2);
		System.out.println("60 弧度的正弦值:Math.sin(Math.toRadians(60.0))= " + d1);
		System.out.println("E 的对数值:Math.log(Math.E)= " + d2);
		System.out.println("2 的 4 次方:Math.pow(2.0, 4.0)= " + d3);
		System.out.println("43.6F 四舍五入:Math.round(43.6F)= " + r);
	}
}


(二) 使用日期类

Java 提供了 3 个日期类:Date、Calendar 和 DateFormat。其中,Date 类主要用于创建日期对象并获取日期,Calendar 类可获取和设置日期,DateFormat 类用来设置日期的格式。
Java 语言规定的基准日期为 1970.1.1 00:00:00 格林威治(GMT)标准时间,当前日期是由基准日期开始所经历的毫秒数转换出来的。
1.使用日期类的 Applet 应用程序

package work03;

import java.applet.Applet;
import java.awt.Graphics;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class TestDateCalendar extends Applet {
	private static final long serialVersionUID = 1L;

	public void paint(Graphics g) {
		Date today;
		Calendar now;
		DateFormat f1, f2;
		String s1, s2;
		today = new Date(); // 获取系统当前日期
		g.drawString("字符串格式:" + today.toString(), 20, 20);
		f1 = DateFormat.getInstance(); // 以默认格式生成格式化器
		s1 = f1.format(today); // 将日期转换为字符串
		g.drawString("系统格式:" + s1, 20, 40);
		// 生成长格式的中国日期格式化器
		f1 = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);
		// 生成长格式的中国时间格式化器
		f2 = DateFormat.getTimeInstance(DateFormat.LONG, Locale.CHINA);
		s1 = f1.format(today); // 将日期转换为日期字符串
		s2 = f2.format(today); // 将日期转换为时间字符串
		g.drawString("中国格式:" + s1 + " " + s2, 20, 60);
		now = Calendar.getInstance(); // 获取系统时间
		s1 = now.get(now.HOUR) + "时" + now.get(now.MINUTE) + "分"
				+ now.get(now.SECOND) + "秒";
		g.drawString("调整前时间:" + s1, 20, 80);
		now.set(2004, 8, 15, 9, 9, 9);
		today = now.getTime();
		g.drawString("调整后时间:" + today.toString(), 20, 100);
	}
}
2017.11.29_实验8_java基本类库_第1张图片


2. 在独立运行的应用程序中使用日期函数。

package work03;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TestDateCalendar {
	public static void main(String args[]) {
		Date today = new Date(); // 当前日期和时间
		SimpleDateFormat sdf;
		sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 hh 时 mm 分 ss 秒 a EEEEE");
		System.out.println("当前日期和时间: " + sdf.format(today));
		long hms = System.currentTimeMillis();// 当前时间的毫秒数
		System.out.println("当前时间的毫秒数=" + hms);
		Date tomorrow = new Date(hms + 24 * 60 * 60 * 1000);
		System.out.println("明天是" + sdf.format(tomorrow));
		Calendar now = Calendar.getInstance();
		int year = now.get(Calendar.YEAR);// 年份
		int month = now.get(Calendar.MONTH) + 1;// 月份
		int day = now.get(Calendar.DATE);// 日期
		System.out.print("今天是" + year + "年" + month + "月" + day + "日");
		int week = now.get(Calendar.DAY_OF_WEEK); // 星期
		switch (week) {
		case 1:
			System.out.println("	星期日");
			break;
		case 2:
			System.out.println("	星期一");
			break;
		case 3:
			System.out.println("	星期二");
			break;
		case 4:
			System.out.println("	星期三");
			break;
		case 5:
			System.out.println("	星期四");
			break;
		case 6:
			System.out.println("	星期五");
			break;
		case 7:
			System.out.println("	星期六");
			break;
		}
	}
}
/*
当前日期和时间: 2017 年 11 月 29 日 08 时 30 分 10 秒 下午 星期三
当前时间的毫秒数=1511958610903
明天是2017 年 11 月 30 日 08 时 30 分 10 秒 下午 星期四
今天是2017年11月29日	星期三
*/


3.编写程序,首先声明使用的包名jacky,然后创建 YMD 类,该类具有两个成员方法,功能分别为计算今年的年份以及输出一个带有年月日的字符串。

package work03;

import java.util.Calendar;

public class YMD {

	private int year, month, day;

	public YMD(int year, int month, int day) {
		super();
		this.year = year;
		this.month = month;
		this.day = day;
	}

	public static int thisyear() {
		return Calendar.getInstance().get(Calendar.YEAR);
	}

	public String toString() {
		return year + "-" + month + "-" + day;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		YMD yy = new YMD(2017, 1, 1);
		System.out.println(thisyear());
		System.out.println(yy);
	}

}
/*
2017
2017-1-1
*/

4.编写使用包jacky中YMD 类的程序,LX.java 程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用 YMD 的计算年份的方法来计算年龄。

package work03;

import java.util.Calendar;

public class YMD {

	private int year, month, day;

	public YMD(int year, int month, int day) {
		super();
		this.year = year;
		this.month = month;
		this.day = day;
	}
	public int year() {
		// TODO Auto-generated method stub
		return year;
	}

	public static int thisyear() {
		return Calendar.getInstance().get(Calendar.YEAR);
	}

	public String toString() {
		return year + "-" + month + "-" + day;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		YMD yy = new YMD(2019, 1, 1);
		System.out.println(thisyear());
		System.out.println(yy);
	}
	
}

package work03;

public class LX {
	
	private String name;
	private YMD birth;

	public LX(String name, YMD birth) {
		super();
		this.name = name;
		this.birth = birth;
	}
	public LX(String name,int year,int month,int day){
		this(name,new YMD(year,month,day));
	}

	public int age(){
		return YMD.thisyear()-birth.year();
	}
	public String toString(){
		return  name+" "+birth+" "+age();
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		LX aa=new LX("小怡",1998,7,20);
		System.out.println(aa);
		
	}

}
/*小怡 1998-7-20 19*/


(三) 使用向量类 Vector

大多数编程语言中的数组是固定长度的,即数组一经建立就不能在使用过程中改变其长度。Java 引入 Vector 类来创建可以改变长度的变量。Vector 被设计成一个能不断增长的序列,它类似于可变长数组,但功能更加强大,因为任何类型的对象都可以放入 Vector 类的对象中。通过调用 Vector 封装的方法,可以随时添加或删除向量元素,以及增加或缩短向量序列的长度。
1.创建使用 Vector 向量类的应用程序

(四) 使用基本类型包装类

1.掌握包装类的使用方法

package work03;

public class Demo02 {

	public static void main(String[] args) {
		//int n = 10;
		Integer in = new Integer(100);
		//Integer in1 = new Integer(n);
		int m = in.intValue();
		System.out.println(in.toString());//100
		System.out.println("m=" + m);//100
		Integer in2 = Integer.valueOf(20);
		System.out.println(in2.toString());//20
		String s = "123";
		int k = Integer.parseInt(s);
		System.out.println("k=" + k);//123
		// 测试其它数值类型.......

		char c = 'x';
		Character ch = new Character(c);
		System.out.println(ch.toString());//x
		char c1 = ch.charValue();
		System.out.println(c1);//x
		System.out.println(Character.isDigit('6'));//true
		System.out.println(Character.isLetter('a'));//true
		System.out.println(Character.isLetterOrDigit('6'));//true
		System.out.println(Character.isLowerCase('a'));//true
		System.out.println(Character.isUpperCase('A'));//true
		System.out.println(Character.toUpperCase('a'));//A
		System.out.println(Character.toLowerCase('A'));//a

		boolean b = true;
		Boolean bo = new Boolean(b);
		System.out.println(bo.toString());//true
		boolean b1 = bo.booleanValue();
		System.out.println(b1);//true
	}

}

2.编程完成从键盘输入10个整形数,计算出平均值

①键盘输入字符串并取得整形数的操作如下:

BufferedReader keyin = new BufferedReader(new InputStreamReader(System.in));

int  k;

String str;

str = keyin.readLine();//取得一行从键盘输入的字符串。

k= Integer.parseInt(str);//转化为整形

②键盘输入取得整形数也可以采用如下操作:

import java.util.Scanner;

Scanner input=new Scnner(System.in);

int x;

x=input.nextInt();//取得从键盘输入的整形数。

package work03;

import java.util.Scanner;

public class Demo02 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in );
		int x;
		int sum=0;
		for(int i=0;i<10;i++){
			x=sc.nextInt();
			sum+=x;
		}
		System.out.println((double)(sum/10));
	}

}


你可能感兴趣的:(JAVA,java,基本类库)