第17天学习Java的笔记

2020/12/14 23:46:06

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("游戏结束");
    }
}