类的封装
- 定义:封装是面向对象编程的核心思想。封装的载体是类,且对象的属性和行为被封装在这个类中。
- 举例说明:顾客到一家餐厅去吃饭,点了一盘麻辣条,感觉很好吃,顾客就想知道厨师的名字,希望厨师再为自己多做点事。按照日常生活场景来讲,去吃饭,下单的是服务员,上菜的也是服务员,厨师被封装在餐厅这个类中,顾客无法与厨师见面,但却能吃到厨师做的菜。代码如下:
public class Restaurant {
private Cook cook = new Cook();// 餐厅封装的厨师类
public void takeOrde(String dish) { // 下单
cook.cooking(dish);//通知厨师做菜
System.out.println("您的麻辣条做好了,请慢用");
}
private String saySorry() {//拒绝顾客要求
return ("抱歉,不能提供该项服务");
}
public static void main(String[] args) {
Restaurant waiter = new Restaurant();//创建餐厅对象,为顾客提供服务
System.out.println("请上一份麻辣条,谢谢");
waiter.takeOrde("麻辣条");//服务员给顾客下单
System.out.println("请问你们厨师叫什么名字?");
System.out.println(waiter.saySorry());
}
class Cook {
private String name;// 厨师的名字
public Cook() {
this.name = "丑某人";// 给厨师的名字赋值
}
private void makeNoodles() {
System.out.println(name + "做面筋");
}
private void makeFlavour() {
System.out.println(name + "做调料");
}
void cooking(String dish) {
makeFlavour();
makeNoodles();
System.out.println(name + "开始烹饪" + dish);
}
}
}
运行结果:
- 总结:
从这个例子看出,先有顾客和服务员的交流,再由服务员和厨师的交流。在整个过程中,服务员和厨师没有交流。作为顾客,麻辣条都吃完了,但却不知道是哪个厨师,用何种方法做出来的,这种编程模式就是封装。