常用系统类
object 是所有java类的最终祖先 如果一个类在声明时没有包含extends继承 关键字 那么这个类直接继承Object
system 是一个抽象类 所有字段和方法都是静态的 其中包含一些有用的类字段和方法 不能被实例化
在System类提供的设施中 有三个静态的变量int、out、err fen分别对应标准输入、输出和错误的输出流
eg:
public class Test {
public static void main(String[] args) {
System.out.println("普通输出");
System.err.println("错误输出");
}
}
Random 提供了一系列用于生成随机数的方法eg:
public class Test {
public static void main(String[] args) {
Random r=new Random();
System.out.println(r.nextInt());//生成随机整数(正数,负数)
System.out.println(r.nextInt(10));//生成随机整数(0-9)
System.out.println(r.nextInt(10)+1);//生成随机整数(1-10)
System.out.println(r.nextDouble());//生成随机小数(0.0-1.0)
System.out.println(-r.nextInt(10));//生成随机整数(-9-0)
//生成随机整数(-9-9)
int i=r.nextInt();
int y=i%10;//取余数
System.out.println(y);
}
}
Math 包含用于执行基本数学运算的方法 是final类型的 因此不能有子类 构造方法是private类型的 因此Math类不能够被实例化
eg:
public class Test {
public static void main(String[] args) {
System.out.println(Math.PI);//圆周率
System.out.println(Math.E);//自然数
System.out.println(Math.abs(-5));//绝对值
System.out.println(Math.ceil(2.45));//向上取整
System.out.println(Math.floor(2.45));//向下取整
System.out.println(Math.round(3.49));//四舍五入
}
}
Scanner 用于从键盘接受用户输入的参数Date 表示日期和时间 该类所表示的时间是精确到毫秒的
eg:
public class Test {
public static void main(String[] args) {
//使用Date回去系统当前时间
Date d=new Date();
System.out.println(d);
System.out.println(d.toLocaleString());//按当地习惯显示时间
}
}
DateFormat 抽象类 用于定制日期的格式 有一个具体子类 java.text.SimpleDateFormat
eg:
public class Test {
public static void main(String[] args) {
DateFormat df1=DateFormat.getDateInstance();
String date=df1.format(new Date());
System.out.println(date);
DateFormat df2=DateFormat.getTimeInstance();
Date d=new Date();
String time=df2.format(d);
System.out.println(time);
}
}
SimpleDateFormat 是DateFormat的子类 在日期处理中使用最多eg:
public class Test {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String date=sdf.format(new Date());
System.out.println(date);
}
}
包类似于文件夹
包的作用
统一组织和管理代码 允许将类文件组织起来 便于查找和使用合适的类 不仅包含类和接口 还包含其他包 从而形成有层次的包空间
有助于避免命名冲突 当使用很多类时确保类和 方法名称的唯一性是非常困难的 能够形成层次命名空间 缩小了名称冲突的范围 方便管理名称
导入包
java类中如果使用到其他类 如果不在同一个包中 则需要导包
导入整个包(整个包中所有类都可以使用)
import java.util.*;
导入单个类(只能使用单个导入的类)
import java.util.Date;
不导包
java.util.Date d=new java.util.Date();