Java之API的学习,Scanner类,Random类,匿名对象,ArrayList集合,包装类(引用类型),对象数组

API

概述:API(Application Programming Interface),应用程序编程接口。Java API 是一本程序员的字典,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不用关心这些类是如何实现的,只需要学习这些类如何使用。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它。

API使用步骤:

  1. 打开帮助文档。
  2. 点击显示,找到索引,看到输入框。
  3. 你要找谁?在输入框里输入,然后回车。
  4. 看包。java.lang下的类不需要导包(导包,指的是使用import+包路径),其他需要。
  5. 看类的解释和说明。
  6. 学习构造方法。
  7. 使用成员函数。

引用类型(除了基本数据类型)的一般使用步骤:

  1. 导包。import 包路径.类名称;  如果需要使用的目标类,和当前位于同一个包下,则可以省略导包语句不写。只有java.lang包下的内容不需要导包,其他的包都需要import语句。
  2. 创建。类名称 对象名 = new 类名称();
  3. 使用。对象名.成员方法名()

目录

Scanner类

匿名对象

Random类

对象数组

ArrayList集合

1.ArrayList集合中的常用方法和集合的遍历

2.包装类-----ArrayList集合存储基本数据类型。


Scanner类

 Scanner的三个步骤:导包,创建,使用。

package demo3;

import java.util.Scanner;

//import java.util.Scanner; // 1.导包。
public class Demo01Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // 2.创建。  System.in代表从键盘进行输入
        /*3.使用
            获取键盘输入的一个int数字使用Scanner中的nextInt()方法
            获取键盘输入的一个字符串使用Scanner中的next()方法
         */
        System.out.println("请输入数字:");
        int num = sc.nextInt();
        System.out.println("请输入字符串:");
        String str = sc.next();
        System.out.println("输入的数字是:"+num+" 输入的字符串是:"+str);
    }
}

匿名对象

新创建的对象没有名字,那么这个对象就是匿名对象。

创建对象的标准格式:类名称 对象名 = new 类名称();

匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。即    new 类名称()

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

使用建议:如果确定有一个对象只需要使用唯一的一次,就可以使用匿名对象。

匿名对象作为方法的参数和返回值。

package demo3;

import java.util.Scanner;

public class Anonymous {
    public static void main(String[] args) {
        Person one = new Person();
        one.name = "高圆圆";
        one.showName(); // 你好,高圆圆
        new Person().name = "赵又廷"; // 匿名对象
        new Person().showName(); // 你好,null  重新创建了一个新的对象
        //普通方式
//        Scanner sc = new Scanner(System.in);
//        int num = sc.nextInt();
        // 匿名对象的方式
//        int num = new Scanner(System.in).nextInt();
//        System.out.println("输入的是:"+num);
        // 使用一般写法传入参数
//        Scanner sc = new Scanner(System.in);
//        methodParam(sc);
        // 使用匿名对象传入参数
//        methodParam(new Scanner(System.in));
        // 使用匿名对象作为返回值
        Scanner sc = methodReturn();
        int num = sc.nextInt();
        System.out.printf("输入的是:"+num);
    }
    public static void methodParam(Scanner sc){
        int num = sc.nextInt();
        System.out.println("输入的是:"+num);
    }
    public static Scanner methodReturn(){
        // 一般写法
//        Scanner sc = new Scanner(System.in);
//        return sc;
        // 使用匿名对象作为返回值
        return new Scanner(System.in);
    }
}

Random类

Random类用来生成随机数字。使用起来也是三个步骤。

  1. 导包。 import java.util.Random;
  2. 创建。Random r = new Random();
  3. 使用。例如获取一个随机的int数字(范围是int所有范围,有正负两种):int num = r.nextInt()

获取一个随机的int数字(范围是int所有范围,有正负两种):int num = r.nextInt();

获取一个随机的int数据(参数代表了范围,左闭右开区间):int num = r.nextInt(3);实际上的含义代表的意思是[0,3),也就也是0、1、2.

package demo3;

import java.util.Random;

public class DemoRandom {
    public static void main(String[] args) {
        Random r = new Random();
        // 随机范围在int了类型的范围内
        int num =r.nextInt();
        System.out.println("随机数是:"+num);
        // 左闭右开区间:[0,3)实际上取值错落在0、1、2之间。
        int one = r.nextInt(3);
        int two = r.nextInt(pice+1);
        System.out.println("one的随机数是:"+one+",two的随技数是"+two);
    }
}

对象数组

定义一个数组,用来存储3个Person对象。

任何的数据类型都可以作为数组的数据类型,但是存在一个缺点,一旦创建,程序运行期间长度不可以发生改变。
package demo3;

public class Array {
    public static void main(String[] args) {
        // 首先创建一个长度为3的数组,用来存储三个对象。
        Person[] array = new Person[3];
        Person one = new Person("迪丽热巴",18);
        Person two = new Person("古力娜扎",20);
        Person three = new Person("佟丽娅",38);
        //将one中的地址值赋值到数组的0号元素位置
        array[0]=one;
        array[1]=two;
        array[2]=three;
        // 得到三个地址值
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
        // 任何的数据类型都可以作为数组的数据类型,但是存在一个缺点,一旦创建,程序运行期间长度不可以发生改变。
        System.out.println(array[0].getName());
    }
}

ArrayList集合

背景:到目前为止,我们想存储对象数据,选择的容器,只有对象数组。而数组的长度是固定的,无法适应数据变化的需求。为了解决这个问题,Java提供了另一个容器java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据。

定义:java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长。

数组长度不可以发生改变,但是ArrayList集合的长度可以随意变化的
对于ArrayList来说,有一个尖括号<E>代表泛型。
泛型:也就是装在集合中的所有元素,全都是统一的什么类型。
从JDK1.7开始,右侧的尖括号可以不写内容,但是<>本身还是要写的。
注意:泛型只能是引用类型不能是基本类型。

注意:对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。如果内容为空,那么得到的是空的中括号[]

向集合中添加一些数据,需要使用add方法。

package demo4;
import java.util.ArrayList;
/*
数组长度不可以发生改变,但是ArrayList集合的长度可以随意变化的
对于ArrayList来说,有一个尖括号<E>代表泛型。
泛型:也就是装在集合中的所有元素,全都是统一的什么类型。
注意:泛型只能是引用类型不能是基本类型。
 */
public class DemoArrayList {
    public static void main(String[] args) {
        // 创建了一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的的数据。
        // 备注:从JDK1.7开始,右侧的尖括号可以不写内容,但是<>本身还是要写的。
//        ArrayList<String> list = new ArrayList<String>();
        ArrayList<String> list = new ArrayList<>();
        // 向集合中添加数据,需要使用add方法
        list.add("古力娜扎");
        list.add("迪丽热巴");
        list.add("佟丽娅");
        System.out.println(list);
    }
}

1.ArrayList集合中的常用方法和集合的遍历

(1)public boolean add(E,e):向集合中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。

注意:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。但是对于其他集合(今后学习)来说,add添加动作不一定成功,那么返回值就有用了。

(2)public E get(int index):从集合中获取元素,参数就是索引编号,返回值就是对应位置元素。

(3)public E remove(int index):从集合中删除元素,参数是索引编号,返回值就是被删除的元素。

(4)public int size():获取集合的尺寸长度,返回值就是集合中的元素个数。

循环遍历的简便写法:list.fori  回车

package demo4;
import java.util.ArrayList;
public class ArrayListMethods {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        // 添加元素
        list.add("古力娜扎");
        list.add("赵丽颖");
        list.add("刘诗诗");
        list.add("迪丽热巴");
        list.add("李小璐");
        System.out.println(list); // [古力娜扎, 赵丽颖, 刘诗诗, 迪丽热巴, 李小璐]
        // 删除元素
        list.remove(4);
        System.out.println(list); // [古力娜扎, 赵丽颖, 刘诗诗, 迪丽热巴]
        System.out.println(list.get(0)); // 古力娜扎
        System.out.println(list.size());  // 4
        // 循环遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

2.包装类-----ArrayList集合存储基本数据类型。

由于泛型只能是引用数据类型不能是基本基本数据类型。如果希望向集合中存储基本数据类型,必须使用基本数据类型对应的“包装类”。

对应关系:

基本类型    包装类(引用类型,包装类都位于java.lang包下,意味着不用import导包语句)
byte        Byte
short       Short
int         Integer  【特殊】
long        Long
float       Float
double      Double
char        Character  【特殊】
boolean     Boolean

从JDK1.5+开始,支持自动装箱、自动拆箱。

自动装箱:基本类型自动变成了引用类型(即包装类型)

自动拆箱:包装类型自动变成了基本类型

package demo4;

import java.util.ArrayList;

public class ArrayListBasic {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>(); // E为包装类
        list.add(2);  // 自动装箱
        list.add(200); // 自动装箱
        list.add(800); // 自动装箱
        int num = list.get(2);// 自动拆箱
        System.out.println("拿到的额元素是:"+num); // 800
    }
}

 练习题:

package demo4;

import demo3.Array;
import demo3.Person;

import java.util.ArrayList;
import java.util.Random;

/*
练习1.数值添加到集合:生成6个1~33之间的随机整数,添加到集合,并遍历
练习2.对象添加到集合:自定义4个学生对象,添加到集合,并遍历
练习3.打印集合方法:定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起集合,使用@分隔每个元素。格式参照 {元素@元素@元素}。
System.out.println(list);   输出的是[元素,元素,元素]
System.out.println(list);   要求输出的是{元素@元素@元素}
 */
public class Practice {
    public static void main(String[] args) {
        // -----------------练习题1:添加包装类类型--------------------------------
        Random random = new Random();
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < 6; i++) {
            int r= random.nextInt(33)+1;
            list.add(r);
        }
        for (int i = 0; i < list.size(); i++) {
            int b = list.get(i);
            System.out.println(b);
        }
        // -----------------练习题2:添加自定义对象类型--------------------------------
        Person one = new Person("迪丽热巴",18);
        Person two = new Person("古力娜扎",20);
        Person three = new Person("赵丽颖",28);
        Person four = new Person("杨颖",38);
        ArrayList<Person> stu = new ArrayList<>();
        stu.add(one);
        stu.add(two);
        stu.add(three);
        stu.add(four);
        for (int i = 0; i < stu.size(); i++) {
            Person a = stu.get(i);
            System.out.println("姓名:"+a.getName()+",年龄:"+a.getAge());
        }
        // -----------------练习题3:打印集合方法--------------------------------
        ArrayList<String> lista = new ArrayList<>();
        lista.add("王语嫣");
        lista.add("木婉清");
        lista.add("钟灵");
        lista.add("黄蓉");
        printArrayList(lista); // {王语嫣@木婉清@钟灵@黄蓉}
    }
    // 方法定义方法的三要素:(1)返回值类型:只是打印而已,没有运算,没有结果,所以使用void。(2)方法名称:printArrayList.(3)参数列表:ArrayList。
    public static void printArrayList(ArrayList<String> list){
        // {元素@元素@元素}
        System.out.print("{"); // 不要换行,去掉ln
        for (int i = 0; i < list.size(); i++) {
            String name = list.get(i);
            if (i==list.size()-1){
                System.out.print(name+"}");
            }else{
                System.out.print(name+"@");
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值