5.1 Java基础类库 5.2 Object类 5.3 System类 5.4 Math类 5.5 基本数据类型包装类 5.6 字符串
JFC 5.1 Java基础类库 Java提供了丰富的标准类来帮助程序设计者更方便快捷地编写程序,这些标准类以包的方式组织而成,主要有: java.lang、java.awt、java.applet、javax.swing、java.io、java.net、java.util 除了java.lang之外,其余类包都不是java语言所必须的。
JDK的常用子包 (1)java.lang包:是Java语言平台中最核心的包,提供了一些Java程序设计中最基础的类,在编程时,该包不需使用import语句导入,包中的所有类由系统自动加载。 (2)java.util包:主要包含大量的实用工具类,如Date、Calendar、Random等。 (3)java.io包:主要包含与输入输出相关的类与接口。
JDK的常用子包 (4)java.awt包:用于开发图形用户界面的早期版本。 (5)java.net包:主要包含用于网络编程的相关的类与接口。 (6)java.sql包:主要包含用于数据库连接与处理的相关的类与接口。
(1)java.lang Object类:java中最原始、最重要的类,每个java类都是它的子类,它实现了每个类都必须具有的基本方法。 基本类型包装器:Boolean, Character, Double, Float, Integer, Long…。 String类与StringBuffer类:字符串类。 Math类:数学函数的集合。 异常和错误:类Exception, Error, 接口Throwable。
(1)java.lang System类:提供程序访问系统资源的方法,System不能派生子类。 Runtime类:封装了运行时环境,可以访问Java虚拟机的运行状态,并对其实现相应操作。 Thread类:线程类提供了一系列用于线程管理和操作的类和界面,实现Java的多线程处理。
• Random类 • Properties类 (2)java.util java.util包提供了一些实用工具类,包括对日期处理的Date类、处理变长数组的Vector类、产生随机数的Random类、用于串标记的StringToKenizer类等等。Java.util包中主要的类如下: • Date类 • Dictionary类 • Random类 • Properties类 • Vector 类 •Hashable类 • Stack 类
(3)java.io java.io包提供了Java语言的标准输入/输出功能,支持在不同的输入/输出设备上进行数据的读写操作。
(4) java.awt 和 javax.swing 本类包是用来创建图形用户界面的工具包,其中的类使得创建诸如窗口、菜单、滚动条、文本区、按钮以及复选框等图形用户界面(GUI)的元素变得非常容易。
(5) java.awt.event包 该包可以使程序处理不同类型的事件,使每个图形界面元素都可以拥有处理本身发生的事件的能力。 如:可为Button类的按钮对象添加事件监听功能(ActionListener类)和实现相应事件处理方法(ActionPerformed方法),当按钮按下时,执行相应的处理。
(6) java.net 用来完成与网络相关的功能:URL、WWW连接以及更为通用的Socket网络通信。
(7)java.applet 提供运行于Internet浏览器中的Java小应用程序编写所需要的类和界面。 java.applet包中有一个Applet类、AppletContext、AppletStub 和 AudioClip 三个接口。其中Applet类是书写Java小应用程序所必须的,实现Java小应用程序必须继承Applet类。
(8) java.sql包和javax.sql包 java.sql包实现了JDBC(Java database connection)功能,提供了访问和处理数据源(主要是关系型数据库)的应用程序接口。 javax.sql包是对java.sql包功能的补充,它提供了对服务器端数据源访问和处理的API。
Java类库的使用方式 import java.util.*; 继承类库中的类。用户自定义的类为系统类的子类,可以继承系统类中的所有成员方法和变量。 直接使用系统类中的成员。当系统类中的域和方法是静态成员时,应用程序可以直接使用它们。 直接使用系统类的对象。 实现类库中的接口,在用户自定义的类中实现类库中的接口。
5.2 Object类 Object类是所有类的直接或间接超类,包括Java类库中的所有类和用户程序中自定义的所有类。 主要方法: Object clone()方法 生成当前对象的副本,并为这个对象分配新的内存。 boolean equals(Object obj)方法 比较两个对象是否相同,如果相同,返回布尔值true,反之,返回false 。
5.2 Object类 final Class getClass()方法 String toString()方法 返回当前对象所属的类信息。 String toString()方法 用来获取一个对象本身的相关信息,这些信息按字符串方式返回。 int hashCode()方法 用于获取一个对象的哈希码。
5.3 System类 System类是final类,不能派生子类,内部的所有成员都是静态的,所以可以直接通过类名调用其成员。 public final class System extends Object
5.3 System类 三个域 常用形式 in out err Scanner a=new Scanner(System.in); System.out.println(“hello” );
5.3 System类 主要方法 方法描述 public long currentTimeMillis() 获取自1970年1月1日零时至当前系统时刻的毫秒数,通常用来比较两事件发生的先后时间差。 public void gc() 调用Java虚拟机的垃圾回收功能。 public exit(int status) 强制java虚拟机退出运行状态,并把状态信息status返回给虚拟机的操作系统。 void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); 进行数组复制。
5.4 Math类 Math 类也称为数学类,它封装了许多静态的数学方法,如sin、cos、exp、abs等。 Math类有两个静态属性:E和PI。E代表数学中的e 2.7182818,而PI代表派pi 3.1415926。可以直接使用类名引用,如:Math.E 和 Math.PI Math类的使用方式是直接使用类名调用成员。
5.4 Math类 Math类的主要方法: public static double abs(double a); //绝对值 public static double exp(double a); //e的a幂 public static double floor(double a); //不大于a的最大整数 public static double log(double a); //自然对数,底数为e
5.4 Math类 public static double sqrt(double a); //开平方 public static double random(); //产生[0,1)之间的随机小数 public static double pow(double a, double b ); //乘方 public static double rint(double a); //四舍五入取整 public static double IEEEremainder(double a, double b); // 求余数 (取模运算) public static float min(float a, float b); //求最小值 public static double max(double a, double b); //求最大值
5.5 基本数据类型包装类 在Java语言中,只有属于基本数据类型的变量不需要使用类定义实现,它们不能完成与数据类型有关的操作。 5.5 基本数据类型包装类 在Java语言中,只有属于基本数据类型的变量不需要使用类定义实现,它们不能完成与数据类型有关的操作。 Java类库专门提供了基本数据类型包装类,将一个数据类型转变成一个类,从而能够实现相应的方法。
数据类型包装类 基本数据类型 Byte byte Short short Integer int Long long Float float Double double Character char Boolean boolean
5.5 基本数据类型包装类 除了Character类,其它所有的类型包装类都拥有两个构造方法,两个方法不同之处在于参数类型不同:一个是基本数据类型,另一个是String类型。 以Integer类为例,包装类的两个构造方法 Integer (int i) Integer (String s)
5.5 基本数据类型包装类 基本数据类与String类之间的转换 P123 5.5 基本数据类型包装类 基本数据类与String类之间的转换 • public static byte parseByte(String s) //Byte类的方法 • public static double parseDouble(String s) //Double类的方法 • public static short parseShort(String s) //Short类的方法 • public static int parseInt(String s) //Integer类的方法 • public static float parseFloat(String s) //Float类的方法 • public static long parseLong(String s) //Long类的方法 P123
5.6 字符串 Java中为字符串的处理提供了两个类:java.lang.String 不能变的字符串 5.6 字符串 Java中为字符串的处理提供了两个类:java.lang.String 不能变的字符串 java.lang.StringBuffer 可以改变的字符串 字符串的表示: “Hello”.length( ) String s1=“abc”; String s2=new String(“abc”); char[] data={‘a’,’b’,’c’}; String s3=new String(data); String 常量池
5.6 字符串 字符串赋值 s1=“Chinese people”; s2=s1; s3="a lot of"+s2; 5.6 字符串 字符串赋值 可以为字符串变量赋一个字符串常量,也可以将一个字符串变量或表达式的值赋给字符串变量。 s1=“Chinese people”; s2=s1; s3="a lot of"+s2;
String类中的方法 1.基本方法: s1="abcdef",s2="123456" 常用操作 实例 功能 字符串比较 s1.equals(s2) 将s1与s2进行是否相等的比较,区分字母大小写,结果为false。 求字符串长度 s1.length( ) 求字符串s1的字符个数,结果为6。 求指定位置的字符 s1.charAt(3) 返回字符串s1的第4个字符,结果为d。 求字符串中某字符(串)位置 s1.indexOf("a") 返回字符串s1中首次出现"a"的位置,结果为0。 求子字符串 s1.subString(2) 返回字符串s1中从第3个字符开始的子字符串,结果为cdef。 类型转换 String.valueOf(123) 将123转为字符串,结果为"123"。 Integer.parseInt("123") 将字符串"123"转为int类型,结果为123。 int compareTo( String anotherString )若当前字符串与参数字符串完全相同/大于/小于时,则返回0/1/-1。
= =和equals的比较 ==是关系运算符,用于判断两个数据之间的相等关系,返回逻辑值true或false。
5.6 字符串 2.字符串的连接操作 public String concat( String str ) 5.6 字符串 2.字符串的连接操作 public String concat( String str ) String s1="You are "; String s2="good boy!"; String ss=s1.concat(s2); //ss?
5.6 字符串 3.字符串的类型转换 • public static String valueOf( boolean b ) 5.6 字符串 3.字符串的类型转换 • public static String valueOf( boolean b ) • public static String valueOf( char c ) • public static String valueOf( int i ) • public static String valueOf( long l ) • public static String valueOf( float f ) • public static String valueOf( double d )
字符串的应用: public class StringApp { public static void main(String[] args) { String text = "Get the latest Java how Java provides a better"; System.out.println("字符串内容为: "); for(int i = 0; i < text.length(); i++) System.out.print(text.charAt(i)); System.out.println(); System.out.println("第一个Java的位置: "+text.indexOf("Java")); System.out.println("最后一个Java的位置: "+text.lastIndexOf("Java")); char[] charArr = text.toCharArray(); System.out.println("字符Array内容: "); for(int i = 0; i < charArr.length; i++) System.out.print(charArr[i]); } }
StringBuffer类 String类对象是不可变的字符串,StringBuffer类对象是可变的字符串,其常用方法如下: append(char c):在字符串的最后追加一个字符。 insert(int index , substring):在字符串某位置插入子串。 void setCharAt(int index, char c):将字符串指定位置处的字符置换成指定字符。