@学习记录
开始学习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;
}
}