首页 / JAVA / 浅析Java的封装思想
浅析Java的封装思想
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了浅析Java的封装思想,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2745字,纯文字阅读大概需要4分钟。
内容图文
我们都知道Java是面向对象的编程语言,面向对象的编程有3大基本特征:封装、继承和多态。本期就来聊聊类的封装。
著名作家钱钟书说过,“假如你吃了个鸡蛋觉得不错,何必要认识那个下蛋的母鸡呢?”
这就是封装的思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏实现细节。
--------------封装的优点:
*良好的封装能够减少耦合
*类内部的结构可以自由修改
*可以对成员变量进行更精确的控制
*隐藏信息,实现细节
其实,我刚开始比较疑惑的是,大多数网上看到的资料和我在书上看到的不太一样!那大家也和我一起看下吧
首先网上的资料大多数都是get()set()方法来封装类的属性,步骤如下:
1.修改属性的可见性来限制对属性的访问(一般限制为private)
2.为每个属性创建一对赋值和取值方法(常见为get、set),用于对这些属性的访问
3.在赋值和取值方法中,加入对属性的存取限制。
下面截图给出菜鸟教程上的例子
说白了,这只是一个对类的属性进行了封装,接下来,我们聊聊我在书上看到的例子,如下:
package demo;
public class Restaurant {
private Cook cook = new Cook();
public void takeorder(String dish) {
cook.cooking(dish);
System.out.println("您的菜好了,请慢用");
}
public String saySorry() {
return "抱歉,餐厅不提供此项服务。";
}
public static void main(String[] args) {
Restaurant waiter = new Restaurant();
System.out.println("**请让厨师为我做一份香辣肉丝。**");
waiter.takeorder("香辣肉丝");
System.out.println("**你们的厨师叫什么名字?***");
System.out.println(waiter.saySorry());
System.out.println("**请让厨师给我切一点葱花**");
System.out.println(waiter.saySorry());
}
class Cook{
private String name;
public Cook() { this.name = "Tom Cruise"; }
private void cutOnion() {
System.out.println(name + "切葱花");
}
private void washVegetavles() {
System.out.println(name + "洗蔬菜");
}
void cooking(String dish) {
washVegetavles();
cutOnion();
System.out.println(name + "开始烹饪" + dish);
}
}
}
运行结果如下:
上面的这个例子,之前就看过,但并没有get到精髓,其实这里面有很多封装。
首先这段程序涉及到服务员,顾客和厨师,顾客点了一份香辣肉丝,下单的是服务员,上菜的也是服务员,厨师(class Cook)被封装在餐馆中,顾客无法正面接触厨师。Cook类其实属于Restaurant类的内部类,而在Resturant类中封装的Cook类的内部是什么样子的?不仅厨师名字用Private修饰(也就是属性的封装),而且cutOnion和washVegetavles 两个方法也被private修饰(方法的封装),当然后面有Cooking方法相当于把这两个封装的方法调用出来了。
然后我们再来看下怎样跑的,首先在主方法处,顾客要香辣肉丝,然后,对象服务员调用takeOrder方法,接着takeOrder方法里是调用了封装了的厨师类的cooking方法,接着cooking方法里面调用了封装的厨师name属性和cutOnion和washVegetavles方法,最后这段香辣肉丝的代码跑完。从中,我们看到了这种“一环套一环”式的封装,我们也看到了Java的这种封装思想的优雅、面向对象的对象思维,不经意间为我们提供了一种新的思考方式和快乐。
内容总结
以上是互联网集市为您收集整理的浅析Java的封装思想全部内容,希望文章能够帮你解决浅析Java的封装思想所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。