Java水果封装,模拟买卖

通过封装编写水果类,模拟水果的买卖过程。要求:类具有名称、价格、数量,其中,价格不能低于0,否则显示“水果价格不符合常规,请重新输入!”,数量不能低于0,否则显示“库存不足,请选择其他水果。”;为各属性设置赋值和取值方法;编写方法detail(),在控制台中打印水果的基本信息。

public class LX_1{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int flag = 1;

    Fruit fruit = new Fruit();
    
    while(flag == 1) {
        boolean f = true;
        System.out.println("请输入水果名称:");
        fruit.setName(input.next());
        while(f) {
            System.out.println("请输入水果价格:");
            double price = input.nextDouble();
            if(price > 0) {
                fruit.setPrice(price);
                f = false;
            }
            else System.out.println("水果价格不符合常规,请重新输入");
        }
        f = true;
        while(f) {
            System.out.println("请输入水果数量:");
            int nums = input.nextInt();
            if(nums > 0) {
                fruit.setNums(nums);
                f = false;
            }
            else System.out.println("水果数量不符合常规,请重新输入");
        }
        detail();
        System.out.println("是否退出输入?是:0,否:1");
        flag = input.nextInt();
    }
}

public static void detail() {
    Fruit fruit = new Fruit();
    System.out.println("------水果信息如下------");
    System.out.println("名称:"+fruit.getName());
    System.out.println("价格:"+fruit.getPrice());
    System.out.println("数量:"+fruit.getNums());
}

}

class Fruit{
private String name;
private double price;
private int nums;
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 getNums() {
return nums;
}
public void setNums(int nums) {
this.nums = nums;
}
}


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author :Negen
 * @Date :Created in 22:36 2022/4/13
 * @Description:水果买卖demo
 * @Modified By:
 * @Version: 1.0
 * <p>
 * <p>
 * 通过封装编写水果类,模拟水果的买卖过程。
 * 要求:类具有名称、价格、数量,其中,价格不能低于0,否则显示“水果价格不符合常规,请重新输入!”,
 * 数量不能低于0,否则显示“库存不足,请选择其他水果。”;
 * 为各属性设置赋值和取值方法;编写方法detail(),在控制台中打印水果的基本信息
 */
public class FruitSale {
    List<Fruit> fruits = new ArrayList<Fruit>();
    Scanner scanner = new Scanner(System.in);


    public static void main(String[] args) {
        new FruitSale().menu();
    }


    /**
     * 新增水果
     */
    void addFruit() {
        System.out.println("请输入水果名称");
        String fruitName = scanner.next();
        System.out.println("请输入" + fruitName + "价格");
        float fruitPrice = -1;
        while (fruitPrice < 0) {
            fruitPrice = scanner.nextFloat();
            if (fruitPrice < 0) {
                System.out.println("水果价格不符合常规,请重新输入!");
            } else {
                break;
            }
        }
        System.out.println("请输入" + fruitName + "数量");
        int fruitCount = -1;
        while (fruitCount < 0) {
            fruitCount = scanner.nextInt();
            if (fruitCount < 0) {
                System.out.println("水果数量不符合常规,请重新输入!");
            } else {
                break;
            }
        }

        Fruit fruit = new Fruit(fruitName, fruitPrice, fruitCount);
        fruits.add(fruit);
        System.out.println("新增水果成功");
        menu();
    }

    /**
     * 查看水果列表
     */
    void listAllFruit() {
        System.out.println(String.format("%s\t%s\t%s", "水果名", "价格", "数量"));
        fruits.forEach(fruit -> {
            System.out.println(String.format("%s\t%s\t%s", fruit.getName(), fruit.getPrice(), fruit.getCount()));
        });
        menu();
    }

    void menu() {
        System.out.println("*********首页*********");
        System.out.println("1:新增水果");
        System.out.println("2:水果列表");
        System.out.println("请选择:");
        int choice = scanner.nextInt();
        switch (choice) {
            case 1:
                addFruit();
                break;
            case 2:
                listAllFruit();
                break;
        }
    }

}

class Fruit {
    String name;
    Float price;
    Integer count;

    public Fruit(String name, Float price, Integer count) {
        this.name = name;
        this.price = price;
        this.count = count;
    }

    public String getName() {
        return name;
    }

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

    public Float getPrice() {
        return price;
    }

    public void setPrice(Float price) {
        this.price = price;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }
}

运行结果如下

img