第17天学习Java的笔记(匿名对象,随机数,猜数字小游戏)

33天!

匿名对象

package Demo1701;

public class Person {
    String name;

    public void showName() {
        System.out.println("我的名字是" + name);
    }

}

package Demo1701;

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

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

注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象
使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
* */

public class Demo01Anonymous {
    public static void main(String[] args) {
        //左边的one就是对象的名字
        Person one = new Person();
        one.name = "hh";
        one.showName();

        System.out.println("=====匿名类的使用===");

        //匿名对象
        new Person().name = "xx";
        new Person().showName();//null
    }
}

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

package Demo1701;

import java.util.Scanner;

public class Demo02Anonymous {
    public static void main(String[] args) {
        //普通使用方式
        //Scanner scanner = new Scanner(System.in);
        //int num = scanner.nextInt();

        //匿名对象的方式
        //int num = new Scanner(System.in).nextInt();
        //System.out.println(num);

        //使用一般写法传入参数
        //Scanner scanner = new Scanner(System.in);
        //methodParam(scanner);

        //使用匿名对象来进行传参
        //methodParam(new Scanner(System.in));

        int num = methodReturn().nextInt();
        System.out.println(num);
    }

    //匿名对象作为方法的参数
    public static void methodParam(Scanner scanner){
        int num = scanner.nextInt();
        System.out.println("输入的是:" + num);

    }

    //匿名对象作为方法的返回值
    public static Scanner methodReturn(){
        System.out.println("匿名对象作为方法的返回值:");
        //Scanner scanner = new Scanner(System.in);
        //return scanner;
        return new Scanner(System.in);
    }
}

Random基本使用

package Demo1702;

/*
 * Random是产生一个随机的数
 *
 * 使用过程:
 * 1.导包
 * import java.util.Random
 *
 * 2.创建
 * Random r = new Random();//小括号当中留空即可
 *
 * 3.使用
 * 获取一个随机的int数字(范围是int所有范围,有正负两种):int num = r.nextInt();
 * 获取一个随机的int数字(参数代表了范围,左闭右开区间):int num = r.nextInt(3)
 * 实际上代表的含义是[0,3),0,1,2
 * */

import java.util.Random;

public class Demo01Random {
    public static void main(String[] args) {

        Random r = new Random();
        int num1 = r.nextInt();
        System.out.println(num1);
        for (int i = 0; i < 100; i++) {
            int num2 = r.nextInt(10);
            System.out.println(num2);
        }
        //int num2 = r.nextInt(10);
        //System.out.println(num2);

    }
}

生成1-n之间的随机数,要求1,n都可以取到

package Demo1702;

import java.util.Random;
import java.util.Scanner;

/*
 * 题目要求:
 * 根据int变量n的值,来获取随机数字,范围为[1,n]
 *
 * 思路:
 * 1.定义一个int变量n,随意赋值
 * 2.要使用Random三个步骤,导包、创建、使用
 * 3.如果写10,那么就是0-9,然鹅想要1-10,可以发现,整体+1即可。[0,10)--[1,11)  [1,10]
 * 4。打印随机数字
 * */
public class Demo03Random {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();

        Random random = new Random();
        for (int i = 0; i < 10; i++) {
            int num = random.nextInt(n);
            System.out.println(num + 1);
        }

    }
}

猜数字游戏(这时猜测次数不限)

package Demo1702;

import java.util.Random;
import java.util.Scanner;

/*
 * 思路:
 * 1.首先需要产生一个随机数字,并且一旦产生不再发生变化。用Random的nextInt()方法
 * 2.需要键盘输入,所以用到了Scanner
 * 3.获取键盘输入的数字,用Scanner中的nextInt方法
 * 4。如果得到了两个数字,判断(if)一下:
 *   如果太大了,提示太大,并且重试;
 *   如果太小,提示太小,并且重试;
 *   如果猜中了,游戏结束
 * 5.重试就是再来一次,循环次数不确定,用while(true),break
 * */

public class Demo04RandomGame {
    public static void main(String[] args) {

        //1.产生一个随机数
        Random random = new Random();
        int randomNum = random.nextInt(10) + 1;//【1,10】
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("请输入你猜测的数字:");
            int guessNum = scanner.nextInt();
            if (guessNum == randomNum) {
                System.out.println("你猜对了");
                break;
            } else if (guessNum > randomNum) {
                System.out.println("你猜的数字太大了,请重试");
            } else {
                System.out.println("你猜的数字太小了,请重试");
            }
        }
        System.out.println("正确数字为:" + randomNum);

    }
}

猜数字增强版游戏(这时猜测次数有限制)

package Demo1702;

/*
* 猜数字升级版,只有五次机会,这种确定次数的用for,不用while
* */

import java.util.Random;
import java.util.Scanner;

public class Demo05RandomPlus {
    public static void main(String[] args) {
        Random random = new Random();
        int randomNum = random.nextInt(50) + 1;
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < 5; i++) {
            System.out.println("请输入你要猜测的数字:");
            int guessNum = scanner.nextInt();
            if (guessNum > randomNum){
                System.out.println("你的数字大了,请重试");
            }else if(guessNum < randomNum) {
                System.out.println("你的数字小了,请重试");
            }else {
                System.out.println("恭喜你答对了");
                break;
            }
            if (i == 4){
                System.out.println("游戏次数已用完");
            }
        }
        System.out.println("游戏结束");
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值