
- package com.luo.demo02;
-
-
- public class GoodsTest {
- public static void main(String[] ags) {
- // 1,创建一个数组
- Goods[] arr = new Goods[3];
- // 2,创建三个商品对象
- Goods g1 = new Goods("001","华为p40P",5999,100);
- Goods g2 = new Goods("002","保温杯",227,50);
- Goods g3 = new Goods("003","枸杞",12.7,70);
- //3,把商品添加到对象中
- arr[0] = g1;
- arr[1] = g2;
- arr[2] = g3;
- // 4,遍历
- for (int i = 0; i < arr.length; i++) {
- System.out.println(arr[i].getId() +"," + arr[i].getName()
- + "," +arr[i].getPrice() + "," +arr[i].getCount());
- }
- }
- }
-
-
-
- package com.luo.demo02;
-
- public class Goods {
- private String id;
- private String name;
- private double price;
- private int count;
- public Goods() {
- }
- public Goods(String id,String name,double price,int count) {
- this.id = id;
- this.name = name;
- this.price = price;
- this.count = count;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public double getPrice() {
- return price;
- }
-
- public void setPrice(double price) {
- this.price = price;
- }
-
- public int getCount() {
- return count;
- }
-
- public void setCount(int count) {
- this.count = count;
- }
- }
-
- package com.luo.demo03;
-
- import java.util.Scanner;
-
- public class Test {
- public static void main(String[] args) {
- /*
- 键盘录入
- 第一套体系
- nextInt(),接收整数
- nextDouble(),接收小数
- next(),接收字符串
- 遇到空格,制表符,回车就停止接受,这些符号后面的数据就不会接受了
- 如果录入:123 321 后面如果还有等待接收键盘录入的
- 程序也会自动把空格后面的 321 给后面等待接收键盘录入的
- 第二套体系
- nextLine(),接收字符串
- 可以接受空格,制表符,遇到回车才停止接受数据
- 键盘录入的两套体系不能混用
- 原因:先用 nextInt,再用 nextLine 可能会导致后面的 nextLine 接收不到数据
- */
- Scanner scanner = new Scanner(System.in);
- System.out.println("请输入一个整数");
- int num = scanner.nextInt();
- System.out.println(num);
- System.out.println("请输入一个字符串");
- String line = scanner.nextLine();
- System.out.println(line);
- }
- }


键盘录入的两套体系不能混用
原因:先用 nextInt,再用 nextLine 可能会导致后面的 nextLine 接收不到数据 如:输入 123 321,123 被 nextInt 接收了,后面的 空格+321 自动被 nextLine 接收,如果输入的是 123 其实我们输入的是 123+回车,nextInt 只接收了 123,回车还在内存里面,然后回车就会被nextLine 接收了,这种情况下 nextLine 就接收不到数据了

- package com.luo.demo03;
-
- import java.util.Scanner;
-
- public class CarTest {
- public static void main(String[] args) {
- // 1,创建一个数组用来存三个对象
- Car[] car = new Car[3];
- // 2,创建对象时,数据来自录入
- Scanner scanner = new Scanner(System.in);
- for (int i = 0; i < car.length; i++) {
- System.out.println("请输入第" + (i+1) + "辆汽车的品牌");
- String brand = scanner.next();
- System.out.println("请输入第" + (i+1) + "辆汽车的价格");
- int price = scanner.nextInt();
- System.out.println("请输入第" + (i+1) + "辆汽车的颜色");
- String color = scanner.next();
- Car c = new Car(brand,price,color);
- car[i] = c;
- // 对象c 给数组传递的也是地址,
- // 这个循环一共创建了3 个对象c,分别传递了不同的地址给了数组中的元素
- }
- // 遍历
- for (int i = 0; i < car.length; i++) {
- System.out.println(car[i].getBrand() + ","
- + car[i].getPrice() + "," + car[i].getColor());
- }
- }
- }
-
-
-
- package com.luo.demo03;
-
- public class Car {
- private String brand; // 品牌
- private int price; // 价格
- private String color; // 颜色
-
- public Car() {
- }
-
- public Car(String brand, int price, String color) {
- this.brand = brand;
- this.price = price;
- this.color = color;
- }
-
- public String getBrand() {
- return brand;
- }
-
- public void setBrand(String brand) {
- this.brand = brand;
- }
-
- public int getPrice() {
- return price;
- }
-
- public void setPrice(int price) {
- this.price = price;
- }
-
- public String getColor() {
- return color;
- }
-
- public void setColor(String color) {
- this.color = color;
- }
- }

- package com.luo.demo04;
-
- import org.jetbrains.annotations.NotNull;
-
- public class Test {
- public static void main(String[] args) {
- // 创建数组用来储存学生类
- Student[] arr = new Student[3];
- // 创建学生对象添加到数组中
- Student student1 = new Student(1,"罗",18);
- Student student2 = new Student(2,"惠",19);
- Student student3 = new Student(3,"祥",20);
- // 把学生对象添加到数组中
- arr[0] = student1;
- arr[1] = student2;
- arr[2] = student3;
- // 要求1,再次添加一个学生对象,并在添加的时候进行学号的判断是否唯一
- Student student4 = new Student(4,"张三",21);
- // 唯一性判断
- boolean flag = contains(arr, student4.getId());
- if (flag) {
- // 已经存在了,不需要添加
- System.out.println("当前id重复,请修改id");
- }else if(getCount(arr) == arr.length){
- // 数组已经存满了
- // 只能创建一个新数组,新数组长度等于老数组长度加一
- Student[] newArr = creatNewArr(arr);
- newArr[getCount(arr)] = student4;
- printArr(newArr);
- }else {
- // 数组没有存满,我们也创建一个新数组
- arr[getCount(arr)] = student4;
- printArr(arr);
- }
- System.out.println("==================");
- // 要求3,通过id删除学生信息
- delete(arr,2);
- // 遍历学生信息
- printArr(arr);
- System.out.println("==================");
- // 要求4,通过id给学生年龄+1
- modifyAge(arr,3);
- // 遍历学生信息
- printArr(arr);
- }
- // id进行唯一性判断的方法
- public static boolean contains(Student[] arr, int id) {
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] != null) {
- // 如果arr[i]的null,null不能直接使用,所以前面还需要加个判断
- if (arr[i].getId() == id) {
- return true;
- }
- }
- }
- return false;
- }
- // 求数组中存在了几个元素的方法,
- // 同时求从数组中第几个元素开始没有赋值的方法
- public static int getCount(Student[] arr) {
- int count = 0;
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] != null) {
- count++;
- }
- }
- return count;
- }
- // 创建一个新数组,把老数组存入到新数组中
- public static Student[] creatNewArr(Student[] arr) {
- Student[] newArr = new Student[arr.length + 1];
- for (int i = 0; i < getCount(arr); i++) {
- newArr[i] = arr[i];
- }
- return newArr;
- }
- // 遍历数组的方法
- public static void printArr(Student[] students) {
- for (int i = 0; i < students.length; i++) {
- Student student = students[i];
- if (student != null) {
- System.out.println(students[i].getId() + ","
- + students[i].getName() + "," + students[i].getAge());
- }
- }
- }
- //通过id查找学生的方法
- public static int getId(Student[] arr,int id) {
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] != null) {
- if (arr[i].getId() == id) {
- return i;
- }
- }
- }
- System.out.println("没有此id");
- return -1;
- }
- // 通过id删除学生信息
- public static void delete(Student[] arr,int id) {
- if (getId(arr,id) == -1) {
- }else {
- arr[getId(arr,id)] = null;
- }
- }
- // 通过id将学生的年龄+1
- public static void modifyAge(Student[] arr,int id) {
- if (getId(arr,id) == -1) {
- }else {
- arr[getId(arr,id)].setAge(arr[getId(arr, id)].getAge() + 1);
- }
- }
- }
-
-
-
- package com.luo.demo04;
-
- public class Student {
- private int id;
- private String name;
- private int age;
-
- public Student() {
- }
-
- public Student(int id, String name, int age) {
- this.id = id;
- this.name = name;
- this.age = age;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- 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;
- }
- }