当前位置:首页 > JAVA教程 > JAVA基础

09API应用程序编程接口

1.概述

现成可直接使用的类

2.Scanner

【1】功能:使用户能从System.in中读取一个数
【2】步骤:
(1)导包:

import 包名.类名import java.util.Scanner; 
  • 1
  • 2

若需要使用的目标类和当前类在同一个包下,则不用import
只有java.lang下的包不需要import
(2)创建(构造方法)

类名称 对象名 = new 类名称(); Scanner sc = new Scanner(System.in); //System.in代表从键盘输入 
  • 1
  • 2
  • 3

(3)使用

对象名.成员方法名()//从键盘获取一个int int num = sc.nextInt(); //从键盘获取一个string String sc = sc.next(); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.匿名对象

【1】创建对象的标准格式

类名称 对象名 = new 类名称; 
  • 1

【2】匿名对象只有右边的对象,没有左边的名字和赋值运算符

new 类名称; 
  • 1

TIPS:
匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象

new Person().name = a; new Person().showName(); //结果:null 
  • 1
  • 2

【3】匿名对象作为方法的参数和返回值

//匿名对象来进行传参  methodParam(new Scanner(System.in)); public static void methodParam(Scannner sc){   int num = sc.nextInt(); } //匿名参数作为方法的返回值 public static Scanner(){   return new Scanner(System.in);  } Scanner sc = methodReturn(); int num = sc.nextInt(); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4.Random

【1】功能:用来生成随机数字
【2】步骤:
(1)导包:

import java.util.Random; 
  • 1

(2)创建

Random r = new Random(); //小括号中留空即可 
  • 1
  • 2

(3)使用

对象名.成员方法名()//获取一个随机的int数字(范围所有int,有正负) int num = r.nextInt(); //获取一个随机的int数字(参数代表范围,左闭右开区间)[0,3)=0~2  int num = r.nextInt(3); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

5.对象数组

【1】用来存储对象的数组
【2】储存的是对象的地址值
【3】缺点:一旦创建,长度不能改变

6.ArrayList集合

【1】区别:长度可以随意变化
【2】Class ArrayList
< E >:范型:装在集合中的所有元素都是统一的什么类型
范型只能是引用类型,不能是基本类型
【3】格式:

ArrayList<String> list=new ArrayList<>(); 
  • 1

右侧 <> 中可以不写类型
【4】打印:

System.out.println(list); //[] 
  • 1

直接打印的不是地址值,而是内容[ ]
【5】常用方法

//添加数据,参数类型为范型,返回值为添加是否成功 //对Arraylist来说,一定成功,但对其他集合不一定 public boolean add(E e); //获取元素,参数是索引编号,返回值是对应元素,索引值从0开始 public E get(int index); //删除元素,参数是索引编号,返回值是删掉的元素,索引值从0开始 public E remove(int index)//获取尺寸长度,返回值是元素的个数 public int size(); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

【6】遍历集合
使用for循环
【7】储存基本数据类型
如果希望储存基本类型,必须使用基本类型使用的包装类

基本类型 包装类(引用类型,在java.lang中)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

自动装箱,自动拆箱:基本类型和引用类型中的自动转换

7.字符串

【1】程序中所有双引号字符串,都是String类的对象(就算没有new,也是)
【2】特点:字符串是常量,一旦创建后永不可变【重点】
【3】因为不可改变,所以可以共享使用
【4】字符串效果上相当于char[]型字符数组,但是底层原理是byte[]字节数组
【5】创建字符串的常见3+1种方式
三种构造方法:

// 创建空白字符串,不含有任何内容 public String(); // 根据字符数组的内容,来创建对应的字符串 public String(char[] array); char[] charArray = {'A','B','C'} String str = new String(charArray); //ABC // 根据字节数组的内容,来创建对应的字符串 public String(byte[] array); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

一种直接创建:

String str = "Hello"; 
  • 1

【6】字符串的常量池
只有用双引号直接创建就在字符串常量池中

= =对基本类型是数值的比较
= =对引用类型是【地址值】的比较

String str1 = "abc"; String str2 = "abc"; char[] charArray = {'a','b','c'}; String str3 = new String(charArray); str1 == str2; //true str1 == str3; //false str2 == str3; //false 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8


【7】常用方法
(1)比较

//==对象的地址值比较,参数可以是任何对象 //任何对象都可以用Object接收 // 只有参数是字符串并且内容相同才会返回true,否则返回false // 不是比较地址值!!! //如果双发一个常量一个变量,推荐把常量字符串写在前面 //原因:会出现空指针异常 public boolean equals(Object obj); //忽略大小写 public boolean equalsIgnoreCase(Object obj); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

(2)获取

//获取字符串长度(含有字符个数) public int length(); //将当前字符串和参数字符串拼接成为返回值的新字符串 public String concat(String str); //获取索引位置的单个字符(索引从0开始) public char charAt(int index); //查找参数字符串在本字符串中首次出现的索引位置,如果没有返回-1 public int indexOf(String str); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

(3)截取

//从参数位置一直截取到字符串末尾,返回新字符串 public String substring(int index); //从begin开始,一直到end结束,中间的字符串 //[begin,end)只包含左边,不包含右边 public String substring(int begin, int end); //下面的写法字符串内容仍然没变: //下面有两个字符串:"Hello","Java" //str中保存的是地址值,地址值发生了改变 String str = "Hello"; String str = "Java"; 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

(4)转换

//将当前字符串拆分为字符数组作为返回值 public char[] toCharArray(); //获得当前字符串底层的字符数组 public byte[] getBytes(); //将所有出现的老字符串替换成新的字符串,返回替换后的字符串 //CharSequence可以接收字符串类型 public String replace(CharSequence oldString, CharSequence newString) String str = "How do you do?" String str2 = str.replace("o","*") //H*w d* you d*? 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

(5)分割

//按照参数的规则,将字符串切分成若干部分 //参数其实是一个正则表达式。如果按照“.”进行区别,必须写"\." public String[] split(String regex); 
  • 1
  • 2
  • 3

8.static关键字

【1】背景:

  • 对于姓名,年龄,学号,每个对象都有自己独立的数据
  • 但对于所在教室,这应该是多个对象共享的同一份数据
    【2】实现:
    一旦用了static关键字,那么这样的内容不再属于对象自己,而是属于类的。所以凡是本类的对象,都共享同一份
    【3】修饰成员变量
//student类中 static String room; 类名称.静态变量; Student one = new Student(); Student two = new Student(); one.room = "1教室" //two.room也变成“1教室” 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

【4】修饰成员方法(静态方法)
(1)静态方法不属于对象,是属于类的
(2)如果没有static,必须先创建对象再使用
(3)对于静态方法,可以通过对象名调用,也可以直接通过类名称调用

//Myclass是类名称 类名称.静态方法
Myclass.methodstatic(); //对于本类当中的静态方法,可以省略类名称 
  • 1
  • 2
  • 3
  • 4
  • 5

TIPS:
【1】静态不能访问非静态,只能访问静态
原因:内存中现有静态内容,后有的非静态内容
【2】静态方法中不能用this
原因:this代表当前对象,通过谁调用的方法,谁就是当前对象。但是静态和对象无关系

【5】静态的内存

【6】静态代码块
(1)格式:

public class 类名称 {   static {      //静态代码块内容   } } 
  • 1
  • 2
  • 3
  • 4
  • 5

(2)特点:当第一次用到本类时,静态代码执行唯一的一次
(3)静态内容总是优先于非静态,所以静态代码块比构造方法先执行
(4)典型用途:用来一次性地对静态变量进行赋值

9.Arrays

【1】与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作
【2】转换

//将参数数组变成字符串(按照默认格式:[元素1,元素2,...]) public static String toString(数组); int []intArray = {10,20,30}; String intStr=Arrays.toString(intArray); //[10,20,30] 
  • 1
  • 2
  • 3
  • 4
  • 5

【3】排序

//按照默认升序(从小到大)对数组的元素进行排序 //如果是数组,sort默认按照升序(从小到大) //如果是字符串,sort默认按照字母升序 //如果是自定义的类型,那么这个自定义类需要有Comparatable或者Comparator接口的支持 public static void sort(数组); 
  • 1
  • 2
  • 3
  • 4
  • 5

10.Math

【1】数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作
【2】常用方法:

//获取绝对值 public static double abs(double num); //向上取整 public static double ceil(double num); //向下取整 public static double floor(double num); //四舍五入取整 public static double round(double num); //Math.PI 是近似圆周率常量

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!