权限、内部类、Scanner、Random、ArrayList随即名单和final
目录
一、权限和内部类
1. 访问权限
2.内部类与外部类
3.内部类的特点
4.内部类与外部类之间的访问
二、Scanner类
1.解析:Scanner类是一个文本扫描器类,对字符串文本进行扫描操作。
2.Scanner类next()、nextLine() 区别
3.创建对象
4.如何使用Scanner类?
三、Random类
1.Random认识
2.两种构造方法
3.常用方法
4.Random类的简单使用
四、ArrayList类
1.格式:
2.构造方法:
3.常用方法:
4.注意事项:
五、随机不重复名单代码
六、final类
一、权限和内部类
1. 访问权限
private:类内部可见。
default:类内部、包内部可见;无论是方法,还是属性,不写修饰符,就是这个权限。
protected:类内部、包内部、子类可见。
public:类内部、包内部、子类内部、外部包可见;全可见。
2.内部类与外部类
1)将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。
2)根据内部类在外部类中定义的位置不同,分为 成员内部类,和局部内部类
3)成员内部类: 定义在外部类的成员位置(定义在类中方法外的类)。
4)局部内部类: 定义在外部类的局部位置,也就是外部类中的方法内部。
格式:
class B { //B是外部类class A { //A是成员内部类}public void show() {class C { //C是局部内部类}}}
3.内部类的特点
- 内部类可以直接访问外部类的成员(成员变量和成员方法),包括私有成员。
- 外部类要访问内部类的成员,必须要建立内部类的对象。
- 如果外部类与内部类的成员有重名的话 ,可以这样拿到外部类的成员:外部类名.this.变量名
4.内部类与外部类之间的访问
在测试类中调用成员内部类中的方法:
创建内部类对象格式:
外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
外部类访问成员内部类中的成员:
需要先创建成员内部类的对象:
内部类名 对象名 =new 内部类名();
注:内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的 .class文件,但是前面冠以外部类的类名和$符号 。
二、Scanner类
1.解析:Scanner类是一个文本扫描器类,对字符串文本进行扫描操作。

2.Scanner类next()、nextLine() 区别
1)next() 获取输入的字符串;不仅接受键盘输入的内容,还进行分割;默认的分隔符为空格,以回车Enter为结束符,回车enter后的内容则放入缓冲区。
2)nextLine() 获取输入的字符串;可以加空格,以回车Enter为结束符;可以获得空白。
3.创建对象
例:
Scanner scanner = new Scanner(System.in);
package com;import java.util.Scanner;public class Scanner1 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in); //调用Scanner类方法System.out.println("使用next方法接收: ");//如果有输入就进行下面程序if (scanner.hasNext()) { //判断是否有输入String str = scanner.next(); //将输入的值赋值给strSystem.out.println("输出的内容为: " + str);}scanner.close(); //执行完结束程序,避免占用资源}}
4.如何使用Scanner类?
1)先导入java.util.Scanner包;
2)创建Scanner类的对象(基本语法)
3)创建一个变量用于接收输入的数据,通过调用Scanner类的对象scanner来调用Scanner类中的next方法(控制台将等待用户输入数据)
4)关闭Scanner类
三、Random类
1.Random认识
用于生成随机数
2.两种构造方法
1)无参构造方法,用于创建一个新的随机数生成器
Random();
2)有参构造方法,用于使用单个 long 种子创建一个新随机数生成器
Random(long seed);
如果用相同的种子创建两个Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列
3.常用方法
1)protected int next(int bits):生成下一个伪随机数。
2)boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。
3)void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的 byte 数组中。
4)double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的 double值。
5)float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布float值。
6)double nextGaussian():返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0。
7)int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
8)int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值。
9)long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
4.Random类的简单使用
package cn.itcast.demo1;import java.util.Random;//使用时需要先导包
import java.util.Scanner;public class RAndom {public static void main(String[] args) {Random r = new Random();//以系统自身时间为种子数int i = r.nextInt();System.out.println("i"+i);Scanner sc =new Scanner(System.in);int j = sc.nextInt();Random r2 = new Random(j);//自定义种子数Random r3 = new Random(j);//为了验证上方的注意事项:Random类是伪随机,相同种子数相同次数产生的随机数相同int num = r2.nextInt();int num2 = r3.nextInt();System.out.println("n"+n);System.out.println("num"+num);}
}
四、ArrayList类
ArrayList是大小可变的数组的实现,存储在内的数据称为元素。
1.格式:
ArrayList list = new ArrayList(); 表示一种指定的数据类型,叫做泛型。
2.构造方法:
public ArrayList() :构造一个内容为空的集合
3.常用方法:
add(参数):添加;
remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
get(int index):返回此集合中指定位置上的元素。返回获取的元素。
set(int 索引,修改元素):将指定元素修改。
size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界
indexof():元素检索在集合中第几位,如果没有返回-1。
contains():在指定的集合中存在指定的某个元素
toArray():将集合转换数组。
clear():清空
4.注意事项:
1)ArrayList集合它的元素可以删除,数组不行。
2)ArrayList结合与数组一致它的索引都是从0开始的。
3)数组是获取最大的元素的长度(固定不变)集合获取的就是当前存储元素的大小(在运行中可变的)
4)集合和数组区别:数组使用length计算器的长度;ArrayList集合使用size计算元素的大小
import java.util.ArrayList; // 引入 ArrayList 类ArrayList objectName =new ArrayList<>(); // 初始化
五、随机不重复名单代码
package Test;import java.util.*;public class ArrayListTest {public static void main(String[] args) {//可以使用Arrays的asList实现序列化一个集合List list= Arrays.asList("哈哈","嘿嘿","啦啦","噢噢","一一","嘻嘻");//把list作为参数重新构建一个新的ArrayList集合ArrayList names=new ArrayList<>(list);//使用Scanner、Random、ArrayList 完成一个不重复点名操作Random random = new Random();Scanner scanner = new Scanner(System.in);while (true){if (names.size()==0){System.out.println("已经完成所有的抽查");break;}System.out.println("确认点名请输入a");String input=scanner.next();if (input.equals("a")||input.equals("a")){//int index=random.nextInt(names.size());System.out.println("本次抽到:"+names.get(index));names.remove(index);}else {System.out.println("本次抽查已结束!");break;}}}
}
六、final类
用于修饰类、属性和方法;
1.被final修饰的类不可以被继承
2.被final修饰的方法不可以被重写
3.被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
