Java面向对象与类(二):Scanner类,Random类,ArrayList类

1.API概述和使用

  • API(Application Programming Interface),应用程序编程接口
  • Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底层的代码实现封装了起来
  • API使用步骤
  • 1. 打开帮助文档。
  • 2. 点击显示,找到索引,看到输入框。
  • 3. 你要找谁?在输入框里输入,然后回车。
  • 4. 看包。java.lang下的类不需要导包,其他需要。
  • 5. 看类的解释和说明。
  • 6. 学习构造方法。
  • 7. 使用成员方法。

2.Scanner类

  • 一个可以解析基本类型和字符串的简单文本扫描器。
  • 通过键盘输入数据.System.in 系统输入指的是通过键盘录入数据。
  • 从System.in 中读取一个数:
Scanner sc = new Scanner(System.in); int i = sc.nextInt();
  • 引用类型使用步骤
  • 导包 : 使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,只有java.lang包下的所有类无需导入,其他包需要import语句导入。
  • 格 式:
import 包名.类名;

java.util.Scanner;
  • 创建对象 : 使用该类的构造方法,创建一个该类的对象。 格式:
数据类型 变量名 = new 数据类型(参数列表);
||
类名称 对象名 = new 类名称();

Scanner sc = new Scanner(System.in);
  • 调用方法 : 调用该类的成员方法,完成指定功能。 格式:
变量名.方法名();

对象名.成员方法名();

int i = sc.nextInt(); // 接收一个键盘录入的整数
  • Scanner使用步骤
  • 查看类 : java.util.Scanner :该类需要import导入后使用。
  • 查看构造方法 : public Scanner(InputStream source) : 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。
  • 查看成员方法 : public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。
  • 使用Scanner类,完成接收键盘录入数据的操作,代码如下:
//1. 导包 
import java.util.Scanner; 
public class Demo01_Scanner { 
	public static void main(String[] args) { 
	//2. 创建键盘录入数据的对象 
	Scanner sc = new Scanner(System.in); 
	//3. 接收数据 
	System.out.println("请录入一个整数:"); 
	int i = sc.nextInt(); 

	//4. 输出数据 
	System.out.println("i:"+i); 
	} 
}
  • 求和
import java.util.Scanner; 
public class Test01Scanner { 
	public static void main(String[] args) { 
	// 创建对象 
	Scanner sc = new Scanner(System.in); 
	// 接收数据 
	System.out.println("请输入第一个数据:"); 
	int a = sc.nextInt(); 
	System.out.println("请输入第二个数据:"); 
	int b = sc.nextInt(); 
	// 对数据进行求和 
	int sum = a + b;

	System.out.println("sum:" + sum); 
	} 
}

3.匿名对象

  • 创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用 场景非常有限。
  • 匿名对象 :没有变量名的对象。
  • 格式:
new 类名(参数列表);

new Scanner(System.in);
  • 应用场景
  • 创建匿名对象直接调用方法,没有变量名
new Scanner(System.in).nextInt();
  • 一旦调用两次方法,就是创建了两个对象,造成浪费
  • 匿名对象只能使用唯一的一次,下次使用不得不创建一个新的对象
  • 确定一个对象只需要使用唯一一次,就可以使用匿名对象
new Scanner(System.in).nextInt(); 
new Scanner(System.in).nextInt();
  • 匿名对象可以作为方法的参数和返回值
  • 作为参数
//一般写法传入参数
Scanner sc = new Scanner(System.in);
methodParam(sc);

//使用匿名对象传入参数
methodParam(new Scanner(System.in));

public static void methodParam(Scanner sc){
        int num = sc.nextInt();
        System.out.println(num);
    }
  • 作为返回值
public static void main(String[] args) {
		Scanner sc = methodReturn();
        int num = sc.nextInt();
        System.out.println(num);
}
public static Scanner methodReturn(){
        return new Scanner(System.in);//直接返回匿名对象
}

4.Random类

  • 使用步骤
  • 查看类 : java.util.Random :该类需要 import导入使后使用。
  • 查看构造方法 : public Random() :创建一个新的随机数生成器。
  • 查看成员方法 : public int nextInt(int n) :返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的 int 值。
  • 使用
  • 导包
import java.util.Random;
  • 创建对象
Random r = new Random();
  • 使用–获取随机int数字
//int 所有范围,包括正负数
int num = r.nextInt();

//获取一个随机数,参数代表了范围,左闭右开区间
int num = r.nextInt(30);
  • 获取随机数
//导包
import java.util.Random;
...
public static void main(String[] args) {
        //创建对象
        Random r = new Random();
        //获取随机数
        int num = r.nextInt();
        //输出随机数
        System.out.println("随机数为:"+num);
    }

5.ArrayList类

  • 对象数组
public class Person {

    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

...
/*定义一个数组,存储3个person对象
* 一旦运行,程序运行期间长度不能改变
* */
public static void main(String[] args) {
        //创建一个长度为3的数组,里面用来存放person类型对象
        Person[] array = new Person[3];

        Person one = new Person("迪丽热巴",18);
        Person two = new Person("古力拉扎",28);
        Person three=new Person("马尔扎哈",38);
        //将地址值赋值给数组
        array[0]=one;
        array[1]=two;
        array[2]=three;
        //打印输出
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);

        Person person = array[1];
        System.out.println(array[1].getName());
    }
  • ArrayList类
  • java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。
  • 此类提供一些方法来操作内部存储 的元素。 ArrayList 中可不断添加元素,其大小也自动增长。
  • 对ArrayList集合,直接打印输出的是内容,不是地址值,内容为空时,得到空的中括号…[]
  • 使用步骤
  • 查看类 : 查看类java.util.ArrayList <E> :该类需要 import导入使后使用。 <E> ,表示一种指定的数据类型,叫做泛型。就是装在集合的所有元素,全都是统一的类型,泛型只是引用类型,不是基本类型.在出现 E 的地方,我们使 用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:
ArrayList<String>,ArrayList<Student>
  • 查看构造方法 ;public ArrayList() :构造一个内容为空的集合。 基本格式:
ArrayList<String> list = new ArrayList<String>()

在JDK 7,右侧泛型的尖括号之内可以留空,但是<>仍然要写
ArrayList<String> list = new ArrayList<>();
  • 查看成员方法 : public boolean add(E e) : 将指定的元素添加到此集合的尾部。 参数 E e ,在构造ArrayList对象时, 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据 类型的对象。
  • ArrayList集合的常用方法
//向集合当中添加元素,参数类型和泛型一致
public boolean add(E e);

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

//从集合中删除元素,参数是索引编号,返回值为被删除的元素
pubic E remove(int index);

//获取集合的尺寸长度
public int size();
  • 数组遍历
import java.util.ArrayList;
...
public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //add
        list.add("赵丽颖");
        list.add("迪丽热巴");
        list.add("古力拉扎");
        list.add("玛卡巴卡");
        System.out.println(list);

        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }
  • 存储基本数据类型
  • 必须使用基本类型对应的"包装类"
  • 基本类型 包装类(引用类型,包装类位于java.lang包下)
基本类型byteshortintlongfloatdoublecharboolean
包装类ByteShortIntegerLongFloatDoubleCharacterBoolean
  • JDK1.5+,支持自动装箱,自动拆箱
  • 自动装箱 : 基本类型 --> 包装类型
  • 自动拆箱 : 包装类型 --> 基本类型
  • 获取集合方法
import java.util.ArrayList;
import java.util.Random;
...
public static void main(String[] args) {
        //创建Random对象
        Random random = new Random();
        //创建ArrayList对象
        ArrayList<Integer> list = new ArrayList<>();
        //添加随机数到集合
        for(int i=0;i<20;i++){
            int r = random.nextInt(1000)+1;
            list.add(r);
        }
        //调用偶数集合方法
        ArrayList<Integer> arrayList = getArrayList(list);
        System.out.println(arrayList);
    }

    public static ArrayList<Integer> getArrayList(ArrayList<Integer> list){
        //小集合保存偶数
        ArrayList<Integer> smallList = new ArrayList<>();
        //遍历list
        for(int i=0;i<list.size();i++){
             Integer num = list.get(i);
             if(num%2==0){
                 smallList.add(num);
            }
        }
        //返回小集合
        return smallList;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Siri_only

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值