网站首页 > java教程 正文
写在前面:
小编一直想写一篇介绍面向对象的文章,奈何面向对象对于初学者来说,不好理解。小编设计了一个把大象装进冰箱的程序,先看代码,再和大家聊聊面向对象。
如何把大象装进冰箱?小品中是这样的:
(人或机器)把冰箱门打开
(人或机器)把大象装进去
(人或机器)把冰箱门关上
但小编觉得可以懒一点,
冰箱门自己打开
大象自己走进冰箱
冰箱门自己关上
所以,咱的程序可以这样设计了:
冰箱是一个对象,大象也是一个对象,所以写两个类;
冰箱有门和放东西的空间,这是冰箱的属性;不需要用到大象的属性;
冰箱有开门和关门这两种行为;大象有走进冰箱这一种行为;
先写冰箱类:
再写大象类:
最后是main()方法:
运行结果:
在这里先简单说一下面向对象的三大特征,然后再说说代码中的体现。
封装:属性可以用来描述同一类事物的特征,行为可描述一类事物可做的操作,而封装就是把属于同一类事物的共性(包括属性和行为)归到一个类中,以方便使用。
继承:由于封装,使得有共同特征的一类事物的所有描述信息都被归于一个类之中,但有些事物虽然有共性,但还是存在区别的。比如把冰箱这个类的品牌、容量、制冷等共性封装起来,但有的冰箱还能智能控温。智能控温冰箱有普通冰箱一样的有共性,但我们不能把智能控温这一行为也封装到冰箱类里面去,智能控温是智能控温冰箱的特征行为之一。为了省事地封装智能控温冰箱(代码的复用,这也是继承存在的原因之一),可以让智能控温冰箱取继承冰箱类:
智能控温冰箱 extends 冰箱{
智能控温()
}
多态:能站在抽象的角度去描述一件事,而针对这件抽象的事, 对于每个个体(具体)又能找到其自身的行为去执行, 这就是多态.比如说冰箱按用途可分为冷藏箱、冷藏冰冻箱、冰冻箱。冷藏箱至少有一个冷藏室,但没有冰冻室;冷藏冰冻箱至少有一间冷藏室、一间冰冻室;冰冻箱至少有一间冰冻室,可有冷冻食品储藏室。它们都同属冰箱类,都有各自的行为去收纳物品。
分析代码中的面向对象思想的体现:
封装:通过访问修饰符private把冰箱里的东西、门的打开和关闭状态封装起来变为冰箱类的私有属性,外部只能通过公共的方法去访问这些属性。
继承:假如要把大象关进海尔冰箱,只需要写一个海尔冰箱类去继承冰箱类(冰箱类的所有属性和行为都会被海尔冰箱类继承过来),然后让大象走进海尔冰箱即可。
多态:大象有很多品种,每个品种进冰箱的方式也不一样。比如让亚洲象走进去、赶非洲草原象进去、把非洲森林象抬进去等。
学编程没有捷径的,只有多敲代码。把想要做的事用代码实现一遍,就会越来越熟练!
猜你喜欢
- 2024-12-15 java面向对象中多态容易走人的误区
- 2024-12-15 面向对象编程的基本概念(二)【Java编程基础第2篇】
- 2024-12-15 面向对象和面向过程的区别 面向对象和面向过程的区别在于
- 2024-12-15 Android应用编程基础第18篇:Java面向对象技术点补
- 2024-12-15 Java 面向对象——测试题,笔试,快进来考考你自己
- 2024-12-15 Java面向对象之接口——interface
- 2024-12-15 从零开始学JAVA-04.JAVA面向对象入门第一季
- 2024-12-15 Java 学习之面向对象思想、类、对象
- 2024-12-15 Java学习之面向对象——Java基础篇
- 2024-12-15 面向对象设计的工作步骤一 面向对象设计的五大原则
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)