Anonymous–匿名
创建对象的标准格式;
类名称 对象名 = new 类名称();
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。
格式;
new 类名称();
new Test();
这就是一个匿名对象,但是,在Java一般不这么使用,因为没有意义,因为这样写完后,由于没有对该对象进行引用,所以马上就被内存回收了,所以没有实际意义。
注意事项
匿名对象只能是用唯一一次,下次再使用不得不在创建一个新对象。
使用建议; 如果确定有一个对象只需要使用为一次,就可以用匿名对象。
匿名对象作为方法的参数和
任何数类型都可以作为方法的参数和返回值,匿名对象也能做参数和返回值。
Random类的概述和基本使用;
Random类是用来产生随机数字的(不确定的数字)
三个步骤;
1.导包
import java.util.Random
2.创建
Random r = new Random();// 小括号留空后即可。
3.使用
获取一个随机的 int 数字;
int num = r.nextInt();
Random 生成指定范围的随机数
获取一个随机的int 数字(参数代表了范围,左闭右开区间)
int num = r.nextInt(3);
实际的含义是;
[ 0.3) ,也就是0 -> 2 的数字。
Random 练习一
1.题目要求:
根据int变量n的值,来获取随机数字,范围是[1 , n],可以取到1也可以取到n。
思路:
1.定义一个int变量n,随意赋值
2.要使用Random:三个步骤,导包、创建、使用
3.如果写10,那么就是09,然而想要的是110,可以发现:整体+1即可。
4.打印随机数字
package LianxiDay1217.重回学Java3;
import java.util.Random; //导包
public class Day1219Random3 {
public static void main(String[] args) {
int n = 5; //定义一个n为5的值
Random r = new Random();//创建
for (int i= 0; i<100; i++){ //for循环,循环100次
//原本范围是【0,n),整体+1之后变成了【1,n+1),也就是【1,n)
int result = r.nextInt(n) +1;//使用 : 这个+1要写在括号外面
System.out.println(result);
}
}
}
2.题目要求:
用代码模拟猜数字的小游戏。
思路:
1.首先需要产生一个随机数字,并且一旦产生不再变化。用Random的nextInt方法
2.需要键盘输八,所以用到了Scanner
3.获取键盘输入的数字,用scanner当中的nextInt方法
4.已经得到了两个数字,判断(if)一下:
如果太大了,提示大大,并且重试;
如果太小了,提示小小,并且重试;
如果猜中了,游戏结束。
5.重试就是再来一次,循环次数不确定,用while(true)。
package LianxiDay1217.重回学Java3;
import java.util.Random; //导包
import java.util.Scanner; //导包
public class Day1219Random4Game {
public static void main(String[] args) {
Random r = new Random(); //创建Random
int randomNum = r.nextInt(100) +1; //[1,100] //使用
Scanner sc = new Scanner(System.in); //创建Scanner
while(true){
System.out.println("请输入你猜的数字:");
int guessNum = sc.nextInt(); //使用Scanner,这个格式记住,
//键盘输入猜测的数字
if(guessNum > randomNum){ //如果你猜测的guessNum数字大于随机数字random
System.out.println("大大大了,重新输入");
} else if(guessNum <randomNum){//如果你猜测的guessNum数字小于随机数字random
System.out.println("小小小了,重新输入");
} else{
System.out.println("恭喜你,猜对了!");
break;//如果猜中,不再重试
}
System.out.println("游戏结束");
}
}
}
运行结果;