网站首页 > java教程 正文
前言:
前面一系列文章讲了Java的一些语法基础知识、Java中的数据类型和Java中的运算符,基本上都是学习Java语言的基础知识,从这一讲开始将会逐步介绍Java面向对象编程的一些高级知识。所有提到Java语言特性的文章肯定都会提到Java是面向对象的,在我的一篇文章中也说了Java语言有哪些特性,这一篇文章就给大家讲讲Java面向对象这一知识,有一个面向对象的概念,为以后学习更深层次的东西打下基础。
面向对象程序设计五个特征:
在Java编程思想中提到了面向对象程序设计的五个特征:
万物皆为对象。也就是说世界上所有的事物都能通过抽象变成一个可以实现的对象。比如动物、建筑物、服务。
程序是对象的集合,他们通过发送消息来告知彼此所有做的。程序是把要解决的问题抽象为若干的对象,这些对象之间通过消息来通知彼此做什么和传递数据。比如:动物吃食物,这个程序包含了动物、食物两种对象,通过吃这一动作来告知动物吃食物。
每个对象都有自己由其他对象构成的存储。意思是对象之间可以是包含的关系,一个对象中可以含有另外一个对象,这样就构成了一个新的对象。比如:发动机,汽车,汽车这一对象中包含发动机。
每个对象都拥有其类型。每个对象都是某个类的一个实例,这个类就是抽象出来的一类事物,这个类与其他类之间的重要区别就是行为,它能接受什么样的消息。比如:动物和食物,动物有吃的行为,移动的行为,而食物是没有的。
某一特定类型的所有对象都可以接受同样的消息。这是判断某一对象是不是某个类型的标准。比如你定义了动物的一些行为,比如移动,那么所有的动物都要相应移动这一消息,无论你是跑着移动、飞着移动,还是游着移动。
上面是面向对象程序设计的基本特征,下面介绍面向对象中用到的一些关键词。
类:
类描述了具有相同特性(数据元素)和行为(功能)的对象集合,也是一个数据类型。比如说动物,它有重量、大小的特征(数据元素),也有移动、吃的行为(功能)。
对象:
对象是具有状态、行为和标识的是上面类的一个实例。每一个对象都有内部数据(它描述该对象的状态)和方法(它产生行为),并且每一个对象都可以与其他对象区分开来,就是一个对象在内存中都有一个唯一的地址。在Java中对象都必须通过new来产生。
继承:
把某些具有相同属性和行为的事物抽象起来集中到一个类中,一个新类可以从这个类中派生,新类具有父类的所有的行为和特征,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类),在Java中是通过 ChildCalss extends FartherClass 这种方式实现的。
抽象:
抽象在编程中就是把你要解决的问题分解为一个一个的小问题,直到你不能再分解为止,然后把你分解的这些小问题用一个一个的对象描述对应起来,将问题集合分解为对象集合。实际中就是不断的问需要哪些服务,需要哪些对象才能履行它们的服务。良好的面向对象的的设计中,每个对象都可以很好的完成一项任务,但是它并不试图做更多的事。
多态:
多态指的是在继承关系中子类继承父类的行为,这种行为在子类具体实现时可以是不一样的。比如动物这一父类中有move()方法,在鸟类子类中和鱼类子类中move的实现是不一样的。在Java中多态是通过重写(override:把父类的方法重新实现)和重载(overload:通过方法参数的不同在子类中来重新创建名字相同的方法)来实现的。
总结:
面向对象这一知识点太大,包含了面向对象的分析、面向对象的设计和面向对象的编程,这三部分每一部分都是一个很大的课题,包含的知识不仅仅是编程领域,还有哲学等其他知识,我肯定达不到大师级的那种分析。上面对于面向对象编程一些基本概念的介绍是看书加上自己的理解,个人水平有限,对于面向对象的理解还不够深入,有写的不合适的地方还请留言,批评指正。
本文属原创,转载请注明出处,并标记下面内容,谢谢!
大家如果对编程感兴趣,想了解更多的编程知识,解决编程问题,我们这里有java高手,C++/C高手,windows/Linux高手,android/ios高手,请大家关注我的微信公众号:程序员互动联盟或者coder_online
猜你喜欢
- 2024-10-21 从零学java笔录-第39篇 基础第二阶段 1 面向对象思想及概述
- 2024-10-21 C/C++编程笔记:C++面向对象和Java面向对象的区别
- 2024-10-21 面向对象—java中类与对象#java基础
- 2024-10-21 Java面向对象特征(java的面向对象特征)
- 2024-10-21 Java基础语法之面向对象(java中的面向对象)
- 2024-10-21 Java面向对象概念解析(java面向对象的意思)
- 2024-10-21 java中的面向对象总结(java中的面向对象总结法是什么)
- 2024-10-21 有图有码,带你重新认识java面向对象三大特性!
- 2024-10-21 java面向对象总结(java面向对象知识点总结)
- 2024-10-21 Java基础:Java面向对象的特征(java面向对象的主要特征)
你 发表评论:
欢迎- 07-21如何将 iPhone 中的联系人导出到 Excel/CSV?
- 07-21sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 07-21在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 07-21如何把csv格式转换成Excel格式(csv格式怎么转换)
- 07-21如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 07-21使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 07-21解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 07-21使用vba将Excel 文件转成 CSV 文件
- 最近发表
-
- 如何将 iPhone 中的联系人导出到 Excel/CSV?
- sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 如何把csv格式转换成Excel格式(csv格式怎么转换)
- 如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 使用vba将Excel 文件转成 CSV 文件
- python爬虫25 | 爬取的数据怎么保存?CSV了解一下
- MySQL 导出数据(mysql 导出数据 判断成功)
- 标签列表
-
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)