java 核心技术pad_面向对象核心技术(java)

c7c5ad07a4eed8b0cf2a51dd1e9da5d0.png

一、类的封装详解

在“面向对象编程基础(java)”的时候讲过,封装是面向对象编程的核心思想。同时我们也知道类是载体,只不过我们把对象的属性和行为封装在载体中。

现我们用封装的方式来实现,一个顾客去一家餐饮吃饭,点了一份西红柿炒蛋。

分析:

顾客去餐馆,要跟餐馆服务员点菜

餐馆服务员拿菜单去通知后厨的厨师

厨师拿到菜单,开始准备工作和烹饪

注意:顾客是把想吃的菜告诉了餐馆服务员,那么顾客是可以跟餐馆服务员进行接触的,同时服务员还要记录顾客想吃的菜品。因为要把这个菜品转达给后厨厨师。所以后厨厨师是一直在后面没有跟顾客接触。

//定义餐馆类,为顾客提供服务

public classRestaurant{//每一个餐馆都有厨师

private Cook cook = newCook();public static voidmain(String[] args){//实例化餐馆,提供服务

Restaurant rest = newRestaurant();

System.out.println("我想吃西红柿炒蛋,帮我来一份");

rest.takeOrder("西红柿炒蛋");

}//有为顾客下单行为

public voidtakeOrder(String dish){

cook.cooking(dish);

System.out.println(dish + "已经炒好了,请慢慢享用");

}

}

​//定义厨师类

classCook{//厨师名字

privateString name;publicCook(){this.name = "托尼";

}//洗菜行为

privateWashDishes(){

System.out.println(this.name + "洗菜");

}//炸花生米行为

private voidRice(){

System.out.println(this.name + "炸花生米");

}//炒菜行为

public voidCooking(String dish){

WashDishes();

Rice();

System.out.println(name + "开始炒" +dish);

}

}

在简述封装时,就提到过手机类,关于手机当中的功能用户只要负责使用,内部怎么实现不要管。那么关于餐馆,顾客是跟服务员进行沟通而餐馆的厨师并没有和顾客沟通。也就是说,顾客只负责吃自己下单的菜,关于厨师是谁并不知道,所以关于这个过程我们就可以称之为封装。

延伸:请分别以餐馆类、用户类、服务员类、厨师类来完成这个工作。

//餐馆类

public classRestaurant3

{//餐饮名字

public static String name = "三无真味私厨";public static voidmain(String[] args){

Restaurant3 rest= newRestaurant3();

User user= newUser();

Waiter waiter= newWaiter();

System.out.println("欢迎光临"+name+","+user.name+",我是"+waiter.name+"为您服务");

System.out.println("请问你要吃一点什么?");

System.out.println("给我来一份"+user.SayLive());

waiter.TakeOrder(user.SayLive());//顾客吃完去结账

waiter.Cash(user);

System.out.println(user.name + "慢走");

System.out.println("你多大了,长得很漂亮哦!");

waiter.Que();

}

}

​//用户类

classUser

{publicString name;publicUser(){this.name = "老板";

}

​//说出自己喜欢吃的菜

publicString SayLive(){return "西红柿炒蛋";

}

​//付钱

public void Pay(doublemoney){

System.out.println("我已经支付了" + money + ",确认一下。");

}

}

​//服务员类

classWaiter

{publicString name;private int age = 19;private Cook cook = newCook();

​pu

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值