attribute包
Goodsinfor类
package attribute;
public class Goodsinfor{
private int num;
private String name;
private double price;
public Goodsinfor(){
}
public Goodsinfor(int num,String name){
this.num=num;
this.name=name;
}
public int getNum(){
return num;
}
public void setNum(int num){
this.num=num;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public double getPrice(){
int price=getNum();
switch (price){
case 1:price=8;
break;
case 2:price=6;
break;
case 3:price=4;
break;
case 4:price=5;
break;
default:price=2;
}
return price;
}
}
Goodsinfor1类
package attribute;
public class Goodsinfor1 extends Goodsinfor{
private int num;
private String name;
private double price;
public Goodsinfor1(){
}
public Goodsinfor1(int num,String name,double price){
this.num=num;
this.name=name;
this.price=price;
}
public int getNum(){
return num;
}
public void setNum(int num){
this.num=num;
}
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;}
}
mainclass包
Goods类
package mainclass;
import operate.*;
import attribute.Goodsinfor;
import javax.swing.*;
import java.util.Scanner;
public class Goods {
public static void main(String[] args) {
System.out.println("#################");
System.out.println("欢迎来到**超市");
System.out.println("################");
Salesperson person=new Salesperson();
person.use();
}
}
Person类
package mainclass;
import javax.swing.*;
public class Person {
public void use(){
String m;
int md=0;
while (md<=0)
{
m = JOptionPane.showInputDialog(null, "请输入密码");
switch (m)
{
case "1":
md = 1;
break;
default:
md=0;
System.out.println("密码错误,请重新输入");
}
}
}
}
接口F
package mainclass;
public interface InterF {
public void use();
}
Salseperson类
package mainclass;
import attribute.Goodsinfor;
import jdk.incubator.vector.VectorOperators;
import operate.*;
import javax.swing.*;
import java.util.Scanner;
public class Salesperson extends Person implements InterF{
public void use()
{
String m,m1,m2;
int md=0,md1=0,md2=0;
Goodsinfor g1 = new Goodsinfor(1, "可口可乐");
Goodsinfor g2 = new Goodsinfor(2, "雪碧");
Goodsinfor g3 = new Goodsinfor(3, "冰红茶");
Goodsinfor g4 = new Goodsinfor(4, "牛奶");
Goodsinfor g5 = new Goodsinfor(5, "零食");
while (md<=0)
{
m = JOptionPane.showInputDialog(null, "请输入密码");
switch (m)
{
case "1":
md = 1;
break;
default:
md=0;
System.out.println("密码错误,请重新输入");
}
}
do {
System.out.println("1.展示商品");
System.out.println("2.购买商品");
System.out.println("3.查询商品");
System.out.println("4.增加商品");
System.out.println("5.删除商品");
System.out.println("6.更改商品");
System.out.println("0.退出");
m1 = JOptionPane.showInputDialog(null, "请输入命令");
switch (m1) {
case "0":
System.exit(0);
break;
case "1":
md1 = 1;
break;
case "2":
md1 = 2;
break;
case "3":
md1=3;
break;
case "4":
md1=4;
break;
case "5":
md1=5;
break;
case "6":
md1=6;
break;
}
if (md1 == 1) {
InterShow show=(Goodsinfor g)->{
System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
};
show.show(g1);
show.show(g2);
show.show(g3);
show.show(g4);
show.show(g5);
}
if (md1 == 2) {
Buy buy = new Buy();
System.out.println("请输入编号,名称");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
String name = in.nextLine();
System.out.println("请输入数量");
int nums = in.nextInt();
Goodsinfor g = new Goodsinfor(num, name);
buy.sellMoney(g, nums);
double counmoney = buy.getMoney();
System.out.println("总价是:" + counmoney);
}
if(md1==3){
Find f=new Find();
f.find();
}
if(md1==4){
Increase in=new Increase();
in.increase();
}
if(md1==5){
Delete d=new Delete();
d.delete();
}
if(md1==6){
Change c=new Change();
c.change();
}
m2= JOptionPane.showInputDialog(null,"输入y继续,n退出");
switch (m2){
case "y":
md2=1;
break;
case "n":
md2=-1;
break;
}
}while (md2>0);
System.exit(0);
}
}
Operate包
接口A
package operate;
public interface InterA {
public void increase();
}
Increase类
package operate;
import attribute.Goodsinfor;
import attribute.Goodsinfor1;
import java.util.Scanner;
public class Increase implements InterA{
public void increase()
{
Scanner in=new Scanner(System.in);
System.out.println("请输入编号和名称");
int num=in.nextInt();
String name=in.nextLine();
System.out.println("请输入价格");
double price=in.nextInt();
Goodsinfor g=new Goodsinfor1(num,name,price);
System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
}
}
接口B
package operate;
public interface InterB {
public void delete();
}
Delete类
package operate;
import attribute.Goodsinfor;
import java.util.Scanner;
public class Delete implements InterB{
public void delete(){
Scanner in=new Scanner(System.in);
System.out.println("请输入编号");
int num=in.nextInt();
String name=null;
Goodsinfor g=new Goodsinfor(num,name);
if(g.getName()==null)
{
System.out.println("商品已删除");
}
else
{
System.out.println("Goods num=" + g.getNum() + ",name=" + g.getName() + ",price=" + g.getPrice());
}
}
}
接口C
package operate;
public interface InterC {
public void change();
}
Change类
package operate;
import attribute.Goodsinfor;
import attribute.Goodsinfor1;
import java.util.Scanner;
public class Change implements InterC{
public void change(){
Scanner in=new Scanner(System.in);
System.out.println("请输入编号及名称");
int num=in.nextInt();
String name=in.nextLine();
System.out.println("请输入价格");
double price=in.nextInt();
Goodsinfor g=new Goodsinfor1(num,name,price);
System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
}
}
接口D
package operate;
public interface InterD {
public void find();
}
Find类
package operate;
import attribute.Goodsinfor;
import java.util.Scanner;
public class Find implements InterD{
public void find() {
String a[] = {"", "可口可乐", "雪碧", "冰红茶", "牛奶", "零食"};
System.out.println("请输入编号");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
Goodsinfor g = new Goodsinfor(num, a[num]);
System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
}
}
Buy类
package operate;
import attribute.Goodsinfor;
public class Buy{
private double money=0;
public double sellMoney(Goodsinfor num, int nums){
double price=num.getPrice()*nums;
return money=money+price;
}
public double getMoney(){
return money;
}
}
接口Show
package operate;
import attribute.Goodsinfor;
@FunctionalInterface
public interface InterShow {
public void show(Goodsinfor g);
}
接口的定义与类相似,由常量定义和方法定义组成,而lambda表达式可以创建函数式接口的实现对象。