学习记录7

@学习记录

开始学习Java

遵从同学的指导,从Java se开始学习

黑马的JavaSE零基础入门

day07-02 Scanner使用与练习

package day07;

/*
Scanner类的功能,可以实现键盘输入数据到程序中

引用类型的一般使用步骤:
1.导包
import 包路径.类名称;
如果需要使用的目标类和当前类位于同一个包下,则可以省略不写
只有java.long包下的内容不需要导包,其他的包都需要import语句

2.创建
类名称 对象名 = new 类名称();

3.使用
对象名.成员方法();

获取键盘输入的一个int数字,int num = sc.nextInt();
获取键盘输入的一个Sting字符串,String str = sc.next();

 */

// 1.导包
import java.util.Scanner;

public class Demo01 {
    
    
    public static void main(String[] args) {
    
    
        // 2.创建
        // System.in代表从键盘进行输入
        Scanner sc = new Scanner(System.in);

        // 3.使用
        // 获取键盘输入的int数字
        int num = sc.nextInt();
        System.out.println("输入的int数字是:" + num);

        // 获取键盘输入的字符串
        String str = sc.next();
        System.out.println("输入的字符串是:" + str);
        System.out.println("==========================");

        // 练习,键盘输入两个int数字,求出和值
        Scanner sc1 = new Scanner(System.in);

        System.out.println("请输入第一个数字:");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数字:");
        int num2 = sc.nextInt();

        int result = num1 + num2;
        System.out.println("结果是:" + result);
        System.out.println("==========================");


        // 练习,键盘输入三个数字,求最大值
        Scanner sc2 = new Scanner(System.in);
        System.out.println("请输入第一个数字:");
        int num3 = sc.nextInt();
        System.out.println("请输入第二个数字:");
        int num4 = sc.nextInt();
        System.out.println("请输入第三个数字:");
        int num5 = sc.nextInt();

        // 首先得到前两个数字的最大值
        int temp = num3 > num4 ? num3 : num4;
        int max = temp > num5 ? temp : num5;
        System.out.println("最大值是:" + max);
    }
}


day07-06 匿名对象

package day07;

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

匿名对象只能使用唯一的一次。
使用建议:如果确定有一个对象只需要使用唯一的一次,可以使用匿名对象
 */


import java.util.Scanner;

public class Anonymous {
    
    
    public static void main(String[] args) {
    
    
        // 左边的one就是对象的名字
        Person one = new Person();
        one.name = "胡歌";
        one.showName();
        System.out.println("===================");

        // 匿名对象
        new Person().name = "阿泽";
        System.out.println("===================");
        String str = new Scanner(System.in).next();
        System.out.println("我是" + str);
        System.out.println("===================");

        // 匿名对象
        int num = new Scanner(System.in).nextInt();
        System.out.println("输入的是:" + num);

        // 使用匿名对象作为方法的参数
        method(new Scanner(System.in));

        // 使用匿名对象作为方法的返回值
        Scanner sc = method1();
        int num1 = sc.nextInt();
        System.out.println("输入的是:" + num1);
    }

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

    // 匿名对象作为方法的返回值
    public static Scanner method1(){
    
    
        return new Scanner(System.in);
    }
}


day07-08 Random的使用和练习

package day07;

/*
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)

 */

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

public class Demo02 {
    
    
    public static void main(String[] args) {
    
    
        Random r = new Random();
        int num = r.nextInt();
        System.out.println("随机数字是:" + num);
        System.out.println("==========================");

        Random r1 = new Random();
        for (int i = 0; i < 10; i++) {
    
    
            int num1 = r1.nextInt(10); // 范围实际上是0~9
            System.out.println(num1);
        }
        System.out.println("==========================");

        Random r2 = new Random();
        int num1 = r2.nextInt(3);
        System.out.println("随机数字是:" + num1);
        System.out.println("==========================");


        // 练习,Randon生成1~n的随机数字
        // 整体加一即可
        int num2 = new Scanner(System.in).nextInt();
        Random r3 = new Random();
        int num3 = r3.nextInt(num2);
        System.out.println("随机数字是:" + (num3 + 1));
        System.out.println("==========================");
        
        // 练习,猜数字
        int r4 = new Random().nextInt(100) + 1;
        while (true) {
    
     // 如果限定猜测的次数,应使用for循环
            System.out.println("请输入你猜测的数字:");
            int sc = new Scanner(System.in).nextInt();
            if (r4 > sc) {
    
    
                System.out.println("太小了,请重试!");
            } else if (r4 < sc) {
    
    
                System.out.println("太大了,请重试!");
            } else {
    
    
                System.out.println("恭喜猜中!");
                break; // 如果猜中,不再重试
            }
        }
        System.out.println("游戏结束!");

		// 限定猜测次数
        int r5 = new Random().nextInt(100) + 1;
        for (int i = 10; i > 0; i--) {
    
    
            System.out.println("请输入你猜测的数字:");
            int sc1 = new Scanner(System.in).nextInt();
            if (sc1 > r5) {
    
    
                System.out.println("太大了,请重试!");
                if (i != 1) {
    
    
                    System.out.println("你还有" + (i - 1) + "次机会");
                } else {
    
    
                    System.out.println("很遗憾,你的次数已经用完,请进行下一轮!");
                }
            } else if (sc1 < r5) {
    
    
                System.out.println("太小了,请重试!");
                if (i != 1) {
    
    
                    System.out.println("你还有" + (i - 1) + "次机会");
                } else {
    
    
                    System.out.println("很遗憾,你的次数已经用完,请进行下一轮!");
                }
            } else {
    
    
                System.out.println("恭喜猜中!");
                break;
            }
        }
    }
}


day07-13 ArrayList的使用和练习

package day07;

import java.util.ArrayList;
import java.util.Random;

/*
数组的长度不可以发生改变,但是ArrayList长度可以改变

对于ArrayList来说,有一个尖括号<E>代表泛型
泛型,也就是装在集合当中的所有元素,全都是统一的什么类型
注意,泛型只能是引用类型,不能是基本类型。(不能是int,char,byte等类型)

注意事项:
对于ArrayList集合来说,直接打印都得到的不是地址值,而是内容。
如果内容是空,得到的是空的中括号[]

ArrayList当中的常用方法有:

public boolean add(E e):向集合中添加元素,参数的类型和泛型一致,返回值代表添加是否成功
备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用
-但是对于其他集合(今后学习)来说,add添加动作不一定成功。
public E get(int index):从集合中获取元素,参数是索引编号,返回值就是对应位置的元素
public E remove(int index):从集合中删除元素,参数是索引编号,返回值就是被删除的元素
public int size():获取集合的尺寸长度,返回值是集合中包含的元素的个数

如果希望向集合ArrayList中存储基本类型,必须使用基本类型对应的”包装类“。

基本类型    包装类(引用类型,包装类都位于java.Lang包下)
byte        Byte
short       Short
int         Integer         【特殊】
long        Long
float       Float
double      Double
char        Character       【特殊】
boolean     Boolean

自动装箱:基本类型 --> 包装类型
自动拆箱:包装类型 --> 基本类型
 */
public class Demo03 {
    
    
    public static void main(String[] args) {
    
    
        // 创建了一个ArrayList集合,集合的名称是list,里面装的都是String字符串类型的数据
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);

        // 向集合中添加一些数据,需要用到add方法
        list.add("胡歌");
        System.out.println(list);
        list.add("七哥");
        System.out.println(list);
        list.add("阿泽");
        System.out.println(list);
        System.out.println("======================");

        // 从集合中获取元素,get。索引值从0开始
        String name = list.get(1);
        System.out.println("第1号索引位置为:" + name);

        // 从集合中删除元素,remove。索引值从0开始
        String whoRemoved = list.remove(0);
        System.out.println("被删除的人是:" + whoRemoved);
        System.out.println(list);

        // 获取集合的尺寸长度
        int size = list.size();
        System.out.println("集合的长度是:" + size);
        System.out.println("========================");

        // 遍历集合
        for (int i = 0; i < list.size(); i++) {
    
    
            System.out.println(list.get(i));
        }
        System.out.println("========================");


        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(100);
        list1.add(200);
        System.out.println(list1);
        int num = list1.get(1);
        System.out.println("第1号元素是:" + num);
        System.out.println("========================");

        // 练习:存储随机数字
        // 生成6个1-33之间的随机整数,添加到集合,并遍历集合
        ArrayList<Integer> list2 = new ArrayList<>();
        for (int i = 0; i < 6; i++) {
    
    
            list2.add(new Random().nextInt(33) + 1);
        }
        for (int i = 0; i < list2.size(); i++) {
    
    
            int num1 = list2.get(i);
            System.out.println("第" + (i + 1) + "个数字为:" + num1);
        }
        System.out.println("========================");


        // 练习:存储自定义对象
        // 自定义四个学生对象,添加到集合,并遍历
        ArrayList<Student> list3 = new ArrayList<>();

        // 四个对象直接赋值
        Student stu1 = new Student("胡歌", 30);
        Student stu2 = new Student("七哥", 20);
        Student stu3 = new Student("阿泽", 18);
        Student stu4 = new Student("生番", 32);

        list3.add(stu1);
        list3.add(stu2);
        list3.add(stu3);
        list3.add(stu4);
        list3.add(new Student("僵尸", 31));

        for (int i = 0; i < list3.size(); i++) {
    
    
            Student stu = list3.get(i);
            System.out.println("第" + (i + 1) + "个学生是:" + stu.getName() + ",年龄是:" + stu.getAge());
        }
        System.out.println("========================");


        // 练习:按指定格式遍历集合字符串
        // 使用{}括起集合,使用@分隔每个元素
        ArrayList<String> list4 = new ArrayList<>();
        list4.add("胡歌");
        list4.add("七哥");
        list4.add("生番");
        list4.add("僵尸");

        for (int i = 0; i < list4.size(); i++) {
    
    
            if (i == 0) {
    
    
                System.out.print("{" + list4.get(i));
            } else if (i < list4.size() - 1) {
    
    
                System.out.print("@" + list4.get(i));
            } else {
    
    
                System.out.println("@" + list4.get(i) + "}");
            }
        }
        System.out.println("========================");

        // 没有读完全部的要求,sorry
        // 定义以指定格式打印集合的方法(ArrayList类型作为参数),其他要求同上
        print(list4);
        System.out.println("========================");

        // 筛选集合中的随机数
        // 用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中
        // 要求使用自定义的方法来实现筛选
        ArrayList<Integer> list5 = new ArrayList<>();
        for (int i = 0; i < 20; i++) {
    
    
            list5.add(new Random().nextInt(100));
        }
        System.out.println("原始大集合是:" + list5);
        ArrayList<Integer> list6 = screen(list5);
        System.out.println("偶数元素的集合是:" + list6);


    }
    public static void print (ArrayList<String> list) {
    
    
        for (int i = 0; i < list.size(); i++) {
    
    
            if (i == 0) {
    
    
                System.out.print("{" + list.get(i));
            } else if (i < list.size() - 1) {
    
    
                System.out.print("@" + list.get(i));
            } else {
    
    
                System.out.println("@" + list.get(i) + "}");
            }
        }
    }

    public static ArrayList<Integer> screen(ArrayList<Integer> list) {
    
    
        ArrayList<Integer> list1 = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
    
    
            if (list.get(i) % 2 == 0) {
    
    
                list1.add(list.get(i));
            }
        }
        return list1;
    }

}

package day07;

/*
复习一下,类的四个部分:
1.所有的成员变量都要使用private关键字修饰
2.为每一个成员变量编写一对Setter/Getter方法
3.编写一个无参数的构造方法
4.编写一个全参数的构造方法
 */

public class Student {
    
    
    private String name;
    private int age;

    public Student() {
    
    
    }

    public Student(String name, int age) {
    
    
        this.name = name;
        this.age = age;
    }

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public int getAge() {
    
    
        return age;
    }

    public void setAge(int age) {
    
    
        this.age = age;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42690266/article/details/110340946
今日推荐