第十讲 Java资源结构
主要内容 Java资源库概述 java.lang包中常用的基础类 java.util包中常用的工具类 查阅文档理解Java资源的方法 |
Java资源库概述
Java提供了功能强大的资源库。
Java将功能相关的类放在同一个包中,所有的包集合构成java资源库。
面向对象的技术允许我们的程序通过继承的方式重用库中的类。
标准Java包是分层次的。所有的Java包都在Java和Javax包层次内。
import java.awt.*;
import java.awt.event.*;
基础包(核心包)
java.lang包
language,基本语言包。自动加载。
² 包含了Java程序必不可少的System类;
² 为Java语言的基本数据类型、字符串类、数组提供了基本的类描述;
² 包含了线程和异常处理类
java.util包
utility,实用工具包。
包含了Java语言中可实现特定功能的类:日期、向量、随机数和堆栈等。
java.io包
input|output,输入输出包:包含了标准输入输出和文件处理的类。可使java程序实现与操作系统相关的较底层的输入输出处理。
应用包
java.awt包
窗口工具包。包含了可用来构建图形用户界面的类。
² Graphics类,相关的低级绘图操作;
² 图形界面的组件和布局:如Label、TextField、CheckBox、LayoutManager接口等;
² 用户交互控制和事件呼应
javax.swing包
另一个窗口工具包。早期版本是java.awt.swing,后集成到了javax.swing中。
java.applet包
小程序应用类包:包中除了有一个Applet类之外,还有三个接口:AppletContext、AppletStub、AudioClip。
java.applet包提供了与支持Java的浏览器进行交互的方式的Applet类,可以在HTML网页中嵌入图像和声音等元素。
java.net包
网络应用包:提供了通过telnet、ftp、www之类的协议访问网络的类。可用于快速地开发网络应用程序。
通过丰富java.net包,java的网络功能随着版本更新而有扩充。
java.lang包中常用的基础类
java.lang包:不需要import,系统自动包含。
Object类
class TestOb{
public static void main(String[] aa){
Object o="Hello";
String s=s.getClass().toString();
System.out.println(ss);
}
}
Object类的常用方法
public boolean equals(Object obj)
public final Class<? extends Object> getClass()
public String toString()
数据类型类
每种基本的数据类型都有一个包装该类型数据的类。
主要用于数据转换,如:Integer.parseInt(s)
基本数据类型 |
对应的对象数据类型 |
boolean |
Boolean |
char |
Character |
double |
Double |
float |
Float |
int |
Integer |
long |
Long |
class TestEqual{
public static void main(String[] aa){
Integer i=new Integer(5);
Double d=new Double(5);
System.out.println(i.equals(5));
System.out.println(i.equals(d));
}
}
System类
public final class System extends Object
作用:标准输入/输出。
标准输入——从标准输入设备输入数据。(如:键盘)
标准输出——向标准输出设备输出数据。(如:显示器)
System类中的成员变量
err——标准错误输出流
public static final PrintStream err
in——标准输入流
public static final InputStream in
out——标准输出流
public static final PrintStream out
System类的常用方法
public static void arraycopy(源数组名,源数组始位置,
目标数组名,目标数组始位置,长度)
将一个数组拷贝到另一个数组(也可以本数组)
class TestSystem{
public static void main(String[] aa){
int[] a={1,2,3,4,5};
int[] b=new int[4];
System.arraycopy(a,2,b,1,3);
for(int i=0;i<b.length;i++)
System.out.print(b[i]+"\t");
}
}
public static String getProperty(String key)
获取系统属性
class SystemInfo{
public static void main(String args[]) {
System.out.println("java目录:"
+System.getProperty("java.home"));
System.out.println("java版本:"
+System.getProperty("java.version"));
System.out.println("操作系统名:"
+System.getProperty("os.name"));
}
}
Key |
说明 |
java.version |
Java 版本号 |
java.home |
Java目录 |
java.vm.version |
Java VM版本号 |
os.name |
操作系统名 |
os.arch |
操作系统体系结构 |
os.version |
操作系统版本号 |
user.name |
用户名 |
user.home |
用户主目录 |
user.dir |
用户当前工作目录 |
public static void exit(int status)
Java虚拟机退出运行状态(参数非零值表示一种反常的结束)
public static void gc()
垃圾收集清理。从所有丢弃的对象收回空间,以利于内存的重用。
Math类概述
public final class Math extends Object
² Math类中封装了常用的数学函数和常量。
² 其中的所有方法和变量都是公共静态的,可由类名直接访问。
Math中的常数
final double E:自然对数基数e(2.71828...)
final double PI:圆周率(3.1415926...)
Math中最常用数学方法
public static long round(double a)
有参数是float,返回类型int的重载版本
public static int abs(int a)
public static int max(int a,int b)
public static int min(int a,int b)
有参数和返回类型为long、float、double的重载版本
public static double sqrt(double x)
public static double random()
三角、反三角函数
public static double sin(double a)
public static double cos(double a)
public static double tan(double a)
public static double asin(double r)
public static double acos(double r)
public static double atan(double r)
public static double toRadians(double angdeg)
public static double toDegrees(double angrad)
指数和对数
public static double pow(double y,double x)
public static double exp(double x)
public static double log(double x)
public static double log10(double x)
练习:利用数组保存6个Circle对象,创建Circle对象时可传递半径,半径值由Math类的Random()方法产生(10以内,保持一位小数),分别求其面积(四舍五入,保持两位小数)
java.util包中常用的工具类
Date类
public class Date extends Object
常用构造方法
Date()
import java.text.SimpleDateFormat;
import java.util.*;
public class Today{
public static void main(String[] aa){
SimpleDateFormat sd=new SimpleDateFormat("yyyy/MM/dd-EEEE");
System.out.println(sd.format(new Date()));
}
}
练习:为mylib.tools包修改设计Today类,通过getDate()方法可返回当前的日期和星期。
Canlendar类
public abstract class Calendar extends Object
获取实例
Calendar now = Calendar.getInstance();
获取时间信息的方法
int get(int field):可具体取得年、月、日、小时、分种、秒数等
常用的静态变量(field)
public static final int
field |
意义 |
YEAR |
年份 |
MONTH_OF_YEAR |
从0到11,月份序数 |
DAY_OF_MONTH |
日期 |
DATE |
|
HOUR_OF_DAY |
小时(24小时制) |
MINUTE |
分种 |
SECOND |
秒数 |
DAY_OF_WEEK |
周日为第1天,以此类推 |
例:now.get(Calendar.YEAR)--获取日期对应的年份
now.get(Calendar.MONTH)+1--获取日期对应的月份
Random类
作用:产生随机数。
构造方法
public Random()
常用方法
public int nextInt()
public long nextLong()
public int nextInt(int n)
获取随机整数范围0——n
public float nextFloat()
获取随机单精度数0.0---1.0
public double nextDouble()
获取随机双精度数0.0---1.0
练习:
设计一个Add类,含有两个加数(产生对象时随机生成),含有返回加法算式的方法,判断结果正确与否的方法。
利用Add类,给出十个加法练习题,即时判对错。
import java.util.*;
import javax.swing.*;
class Add{
int a,b;
Add(){
}
String getAdd(){//返回算式
;
}
void showAdd(){//显示算式
;
}
void answerYesOrNo(){//回答与判断
String s=JOptionPane.showInputDialog(getAdd());
int c=Integer.parseInt(s);
System.out.print(c+"\t\t");
}
}
class Test{
public static void main(String[] aa){
}
}
}
查阅文档理解Java资源的方法