关于API

来源:互联网 发布:2级钢筋弯勾 算法 编辑:程序博客网 时间:2024/06/02 04:44

在JAVA编程中,并不是每一个功能都得我们自己去编写,JAVA中有许多专门的已经封装好了的类,我们可以通过规则直接去调用他们的方法已实现我们的目的,由于这些类很多,我们不可能一一记住,于是就有了JAVA中查找类的“字典“——API.
在API中点击显示——索引,然后在搜索栏里输入你要查找的类点击回车即可,然后会显示出你要查找的这个类是抽象的还是不抽象的,继承自哪个类或者被哪个类继承,以及字段(属性)和构造方法、成员方法,你只需要找到你所要用的功能即可。
这里写图片描述
以Math类为例:
这里写图片描述
这里写图片描述
单击点开你想要调用的方法,会有其使用的一个详细说明
这里是一些常用的类:
Integer类型
构造方法:
Integer(int value)
Integer(String s)
各种成员方法:
转换为二进制:toBinaryString(int i)
转换为八进制:toOctalString(int i)
转换为十六进制:toHexString(int i)
int和String类型的相互转换:

int – String
方式1:
String s = 100 +”“;
方式2:
String.valueOf(int)
方式3:
Integer.toString(100);

String – int
方式1:
Integer.parseInt(String)

Character类
Character 类在对象中包装一个基本类型 char 的值
此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然
构造方法:
public Character(char value)

成员方法
public static boolean isUpperCase(char ch) 判断是否是大写字符
public static boolean isLowerCase(char ch) 判断是否是小写字符
public static boolean isDigit(char ch) 判断是否是数字
public static char toUpperCase(char ch) 转成大写
public static char toLowerCase(char ch) 转成小写
Math类
用于执行数学运算的类。
成员方法:
public static int abs(int a)取绝对值
public static double ceil(double a)向上取整
public static double floor(double a)向下取整
public static int max(int a,int b) 求两数中最大
public static double pow(double a,double b) a的b次方
public static double random()产生随机数
public static int round(float a)四舍五入
Object类
是所有类的根类。所有的类都直接或者间接的继承自该类

创建学生对象打印学生对象的地址值(本质上是将地址通过哈希算法算出的哈希值)
同一个对象的哈希值肯定是一样的。
哈希值相同的对象的地址值未必一样。
新华字典,zhu – 456(哈希值) – 猪(第三个),朱(第5个),珠(第9个)

为什么重写toString()方法
默认情况下,打印的是对象的字符串表示,意义不大。
包名…类名+@+该对象的哈希值的十六进制
所以,我们建议,所有子类重写该方法。
至于如何重写,你就不要问了,自动生成即可。
表示该对象的数据:
[类名 成员变量1=数据值1,成员变量2=数据值2,…]

equals():
默认情况下,比较的是地址值。没有意义。
所以,建议子类重写该方法。
至于如何重写,你就不要问了,自动生成即可。
这个生成的方法作用是比较对象的成员变量值是否相同。
Scanner类
帮助我们从键盘获取数据。
构造方法:
Scanner(InputStream source)

Scanner sc = new Scanner(System.in);

System.in in是System类下面的一个静态的成员变量。
现在我们并不知道in这个成员变量的数据类型。
请看一下伪代码:
Scanner {
public Scanner(InputStream in){}
}

System {
public static final InputStream in;
}
InputStream System.in

成员方法:
int nextInt():获取int类型的数据
String nextLine():获取String类型的数据

InputMismatchException:输入的数据和最终的结果类型不匹配。
建议:要什么类型,你就输入什么类型。反正将来也不用。

当为同一个Scanner对象,数据的输入顺序问题:
String,String
String,int
int,int
int,String

出现的问题:
先int再String就出现了问题。

解决:
A:我把所有的数据都按照String来拿。
String s1
String s2
String s3
将来你要什么,我就把String的数据转换为什么类型。(明天就可以实现)
B:重新创建一个新的对象。
Random类
用于产生随机数的类。和种子相关(种子其实可以把它看成一个产生随机数的定义的规则)。

构造方法:
Random():没有指定种子,采用的是默认种子。
Random(long seed):可以指定种子。种子相同,产生的随机数就相同。

成员方法:
public int nextInt():返回int范围内的数据
public int nextInt(int n):返回[0,n)之间的数据

得到1-100之间的随机数:
new Random().nextInt(100) + 1
System类
System 类包含一些有用的类字段和方法。它不能被实例化。

成员方法:
public static void exit(int status):终止当前正在运行的 Java 虚拟机。根据惯例,非 0 的状态码表示异常终止。
public static long currentTimeMillis():获取当前时间的毫秒值。
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):复制数组
参数一:要复制的源数组
参数二:从源数组那个索引开始复制
参数三:需要复制到哪个数组中
参数四:从哪个索引开始进行覆盖
参数五:需要覆盖几个元素
Date类
Date:类 Date 表示特定的瞬间,精确到毫秒。

构造方法:
Date():默认获取的是当前的日期时间
Date(long date):把当前日期按照指定的毫秒值进行设定

成员方法:
public long getTime():获取日期对象的毫秒值
public void setTime(long time):设置日期对象的毫秒值

DateFormat类(格式化和解析日期对象)

格式化:
Date – String
2015年9月27日 15:14:23
String format(Date d)

解析:
String – Date
“2015-12-12”

Date parse(String s)

构造:
SimpleDateFormat()用默认的模式格式化日期对象
SimpleDateFormat(String pattern):用给定的模式格式化日期对象
例如:
yyyy年MM月dd日 HH:mm:ss

yyyy-MM-dd HH:mm:ss

成员方法:
public final String format(Date date)将一个 Date 格式化为日期/时间字符串
public Date parse(String source)throws ParseException从给定字符串的开始解析文本,以生成一个日期对象

Calendar类
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法

Calendar(日历类) – 获取年,获取月,获取日,获取时,获取分,获取秒。
public int get(int field):返回给定日历字段的值

public void add(int field,int amount):根据amount修改field的值
public void set(int year,int month,int date):设置当前日历的年月日

代码演示:

package com.thz_01;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;//需求:手动输入出生日期,计算出生多少天public class BrithDays {    public static void main(String[] args) throws ParseException {        Scanner sc = new Scanner(System.in);        System.out.println("请输入您的出生日期,如20170425");        String brith = sc.nextLine();        //获取出生日期的毫秒值        /*         *要将一个日期字符串转化为毫秒,需要先创建         *一个SimpleDateFormat(String pattern):用给定的模式格式化日期对象         *先创建一个对应格式的日期格式化对象,然后调用那个格式化对象的parse方法返回一个Date值         */        //按照指定模式格式化对象        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");        //将输入的字符串调用SilmpleDateFormat的parse方法转化为Date        Date d = sdf.parse(brith);        //获取出生日期毫秒值        d.getTime();        //获取当前毫秒值        Date now = new Date();        now.getTime();        System.out.println("您已经来到世界大约"+(now.getTime()-d.getTime())/1000/60/60/24+"天了!");    }}
package com.thz_01;import java.util.Calendar;import java.util.Scanner;//需求;键盘录入年份,获取该年的二月有多少天public class Exercise {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        System.out.println("请输入您要查询的年份");        int year = sc.nextInt();        //根据获得的年份设置时间(运用Calendar的set方法,由于此方法非静态,Calendar是抽象类,        //所以运用Calendar的getInstance静态方法,可以返回一个新的Calendar)        Calendar ca = Calendar.getInstance();        //调用getTime方法        ca.set(year, 2, 1);        //调用add方法        ca.add(Calendar.DATE, -1);        //显示那天的日期        System.out.println(year+"年的二月有"+ca.get(Calendar.DATE)+"天!");    }}
0 0