目录
1.继承:
2.点餐系统:
2.1:菜品类:
2.2设置静态变量
2.3:show方法, 横排打印每个菜品对象信息:
2.4 菜品展示使用display()函数
2.5 添加菜品使用addDish()函数
2.6 删除菜品使用deleteDish()
2.7 菜品数组扩容使用dilatation()
2.8 点餐 使用saleDish()
2.9 点赞使用 likeDish()
1.继承:
继承的关键字是extends
继承是Java中类与类之间的一种关系
使用继承的好处就是可以用父类封装所有子类的公共代码,让子类继承,实现代码复用
发生继承的类称为子类,被继承的类称为父类
一个类只能继承一个父类,但是一个父类可以有多个子类(一对多的关系)
如果一个类没有显示继承父类,则隐式继承object类
Java不支持多继承,只支持单继承,但支持多级继承
在任何一个继承体系的顶层是object类,object类称为祖先类,上帝类
在构造方法中的第一行出有一条隐式指令super()调用其父类构造方法
this和super的区别:
this是指向当前对象,super是指向当前父类对象
this和super的使用语法:
1.调用构造方法(只能在构造方法中调用,而且必须出现在第一行)
this();可以使用this()调用本类构造方法
super();可以使用super()调用父类构造方法
2. 访问成员
this.成员变量
super.成员变量
this.成员方法
super.成员方法
子类可以继承父类的非私有成员(非private修饰)成员
父类的构造方法不能被子类继承,但可以被子类调用(非私有的),且子类的无参构造方法中会默认调用父类的无参构造方法
能发生继承关系的类在逻辑上应该具有一种"is a"的关系
例如:
狗 is a 动物
猫 is a 动物
猪 is a 动物
object类是任何一个父类
1).显示继承Animal:
public class Dog extends Animal{
}
2).3没有显示继承,则隐式继承Object:
public ciass Dog{
}
3).Dog即没有显示继承Object,也没有隐式继承Object,但是间接继承Object:
piblic class Animal{
}
2.点餐系统:
2.1:菜品类:
public class Dish {
private String name; //名称
private Double price; //价格
private Integer stock; //库存数
private Integer saleNum; //售出数
private Integer likeNum; //点赞数
public void show(){
System.out.println("*****************************************");
System.out.println("名称:"+this.name);
System.out.print("t价格:"+this.price);
System.out.print("库存:"+this.stock);
System.out.print("已售:"+this.saleNum);
System.out.print("点赞:"+this.likeNum);
System.out.println("n*****************************************");
}
public void saleOut(int n){ //sale方法, 此方法用于点餐功能
//找到菜品对象的指针后, 用指针调用like方法, 实现点赞数+1
// 此处注意参数n是售出的份数, 在测试类的点餐方法中会提示用户输入, 然后把用户输入的值传过来, 累加到属性saleNum中
this.saleNum+=n; // 此处要注意, 当saleNum为null, +=的时候会报空指针异常
}
public void like(){ //like方法, 此方法用于点赞功能
//找到菜品对象的指针后, 用指针调用like方法, 实现点赞数+1
this.likeNum++; // // 此处要注意, 当likeNum为null, ++的时候会报空指针异常
}
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 Integer getStock() {
return stock;
}
public void setStock(Integer stock) {
this.stock = stock;
}
public Integer getSaleNum() {
return saleNum;
}
public void setSaleNum(Integer saleNum) {
this.saleNum = saleNum;
}
public Integer getLikeNum() {
return likeNum;
}
public void setLikeNum(Integer likeNum) {
this.likeNum = likeNum;
}
}
2.2设置静态变量
public class Dish {
private String name; //名称
private Double price; //价格
private Integer stock; //库存数
private Integer saleNum; //售出数
private Integer likeNum; //点赞数
public void show(){
System.out.println("*****************************************");
System.out.println("名称:"+this.name);
System.out.print("t价格:"+this.price);
System.out.print("库存:"+this.stock);
System.out.print("已售:"+this.saleNum);
System.out.print("点赞:"+this.likeNum);
System.out.println("n*****************************************");
}
public void saleOut(int n){ //sale方法, 此方法用于点餐功能
//找到菜品对象的指针后, 用指针调用like方法, 实现点赞数+1
// 此处注意参数n是售出的份数, 在测试类的点餐方法中会提示用户输入, 然后把用户输入的值传过来, 累加到属性saleNum中
this.saleNum+=n; // 此处要注意, 当saleNum为null, +=的时候会报空指针异常
}
public void like(){ //like方法, 此方法用于点赞功能
//找到菜品对象的指针后, 用指针调用like方法, 实现点赞数+1
this.likeNum++; // // 此处要注意, 当likeNum为null, ++的时候会报空指针异常
}
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 Integer getStock() {
return stock;
}
public void setStock(Integer stock) {
this.stock = stock;
}
public Integer getSaleNum() {
return saleNum;
}
public void setSaleNum(Integer saleNum) {
this.saleNum = saleNum;
}
public Integer getLikeNum() {
return likeNum;
}
public void setLikeNum(Integer likeNum) {
this.likeNum = likeNum;
}
}
2.2设置静态变量
2.3:show方法, 横排打印每个菜品对象信息:
public static void main(String[] args) {
int choice=0;
do{
System.out.println("*****欢迎进入点餐系统*****");
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("*****7.退出系统*****");
System.out.println("*****请选择*****");
choice= sc.nextInt();
switch (choice){
case 1:
display();
break;
case 2:
addDish();
break;
case 3:
deleteDish();
break;
case 4:
dilatation();
break;
case 5:
saleDish();
break;
case 6:
likeDish();
break;
case 7:
break;
default:
break;
}
}while (choice!=8);
}
2.4 菜品展示使用display()函数
2.5 添加菜品使用addDish()函数
判断下列函数是不是错的?如果是错的,错在哪?
正确函数:



