P119 匿名对象的使用
什么是匿名对象?
new 类名称();
没有左边的名字和=
//匿名对象
new Person();
2个new 2个对象 ==》调用showName时不会显示赵又廷!
什么时候使用好呢?
该对象只需要使用唯一的一次,就可以用匿名对象
下次想再用,必须创建一个新对象
P120 匿名对象作为方法的参数/返回值
new对象和调用方法直接一起用
形参处直接写(Scanner sc)
如何做返回值呢?
不再需要scanner sc=new…return…
return后面带上new scanner就行
主函数中就得写:
1、调用方法,会接收scanner作为返回值
2、声明变量,用返回值为其赋值
P121 random的概述和基本使用
用来产生随机数的
使用起来也是三个步骤(引用类型?)
- 导包
import java.util.Random; - 创建(new一个对象r
Random r=new Random();//random的构造方法中有留空的情况 - 使用(如何获取?
int num=r.nextInt();对对象r调用方法nextInt
==》获取一个随机的int数字,正负所有范围
P122 已<(^-^)√
P123 生成1-n之间的随机数
int n=5;
Random r=new Random();//一个新对象r,r是随机数random类型
int result=r.nextInt(n);//对r的调用【nextInt】方法,参数n为最大范围
nextInt(n),使随机数范围为[0,n)
若想要[1,n]:整体+1
int result=r.nextInt(n)+1;
nextInt(n),使随机数范围为[1,n]
P124 猜数字小游戏
while(true):死循环
循环次数不确定时
P125 对象数组
背景:任何数据类型都可以做数组元素
e.g.类对象也可以当做数据元素
//创建两个person类型的对象
Person one=new Person();
Person two=new Person();
//创建长度为2 的数组,存放person类型的对象
Person[]array=new Person[2];
//将one/two对象的地址值赋值给数组的0号元素位置
array[0]=one;//one存放地址,赋给[0]后,[0]也放地址~
array[1]=two;
name=array[1].getName();//通过地址值调用person类成员方法
数组缺点:一旦创建,运行期间长度不可发生改变
👇改进
ArrayList集合!长度可以随意变化!
P126 ArrayList集合
ArrayList实际是一个类
在java.util包下
是泛型的意思
泛型:指处集合中的元素都是统一的什么类型?
泛型只能是引用类型,不能是基本类型
使用方法
导包(可以自动生成的,创建arraylist就行)
//右侧的尖括号内部可以不写内容,但是符号<>要写
ArrayList<String>list=new ArrayList<>();//写了左边的string右边可以不写了
System.out.println(list);//[]
输出:
—》所以:
直接打印不输出地址,输出内容
若调用add()方法:
👇
逗号分开
P127 ArrayList的常用方法
add
public boolean add(E e);//返回值代表添加是否成功,对于arraylist集合,add一定成功
public E get(int index);//返回值是index对应的元素
public E remove(int index);//返回值是被删除的元素
public int size();//集合的尺寸长度(元素个数)
index从0开始
长度是size,数组长度是length
P128 如何存储基本数据类型
是不行的
需要借助基本类型对应的包装类
基本类型 包装类(引用类型,包装类都位于java.lang包下)
ArrayList<Integer>list=new ArrayList<>();//<>下写int对应的包integer
list.add(100);
int num=list.get(1);//用基本类型int接收interger包下的list集合元素
自动装箱:int-》interger
自动拆箱:interger-》int
产生随机数,需要用到random
循环内调用r.nextInt(int n)
想要一个装6个随机数的集合:
- random生成随机数
- for循环内,每生成一次随机数,就放进add方法中
P130 存储自定义对象
用自定义的类作为集合元素类型
ArrayList<Student>list=new ArrayList<>();//student类是自定义类,这里表明list对象都是student类型
👇
创建对象
👇
将对象add进list中
list.add(one);//传入one的地址,one对象放进了list中
P131 按指定格式输出
想把某个元素单独拎出来:
String name=list.get(i);
P132 筛选集合元素
- 返回值类型:ArrayList
- 方法名:getSmallList
- 形参:ArrayListbigList
写集合时,不仅要写biglist名字,还要在前面加上格式Array…