3类与对象——重拾Java
面向对象编程的3个特性
1 封装性
面向对象编程核心思想之一就是将数据和对数据的操作封装在一起。通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念。
在实际生活中,我们每时每刻都在与具体的实物打交道,例如我们用的钢笔,骑的自行车,乘坐的公共汽车等。我们经常见到的卡车、公共汽车、轿车等都会涉及到以下几个重要的物理量:可承载人数、运行速度、发动机的功率,耗油量、自重和轮子数目等。另外,还有几个重要的功能:加速、减速、刹车和转弯等。可以把这些功能称作是它们具有的方法,而物理量是它们的状态描述,仅仅用物理量或功能不能很好地描述它们。在现实生活中,用这些共有的属性和功能给出一个概念——机动车类。也就是说,人们经常谈到的机动车类就是从具体的实例中抽取共同的属性和功能形成的一个概念,那么一个具体的轿车就是机动车的一个实例,即对象。一个对象将自己的数据和对这些数据的操作合理有效地封装在一起,例如每辆轿车调用“减速”改变的都是自己的运行速度。
2 继承
继承体现了一中先进的编程模式。子类可以继承父类的属性和功能,即继承了父类所具有的数据和数据上的操作,同时又可以增添子类独有的数据和数据上的操作。比如“人类”自然继承了“哺乳类”的属性和功能,同时又增添了人类独有的属性和功能。
3 多态
多态是面向对象编程的又一个重要特征。有两种意义的多态,一种是操作名称的多态,即有多个操作具有相同的名字,但是这些操作所接受的消息类型必须不同。例如,让一个人执行“求面积”操作时,他可能会问你求什么面积。所谓操作名称的多态性,是指可以向操作传递不同消息,一边让对象根据相应的消息来产生一定的行为。另一种多态是和继承有关的多态,是指同一个操作被不同类型对象调用时产生不同的行为。例如,狗和猫都具有哺乳类的功能——“喊叫”。但是,狗操作“喊叫”产生的声音是“汪汪....”,而猫操作“喊叫”产生的声音是“喵喵....”
3类与对象——重拾Java的更多相关文章
- 【Java】 重拾Java入门
[概论与基本语法] 取这个标题,还是感觉有些大言不惭.之前大三的时候自学过一些基本的java知识,大概到了能独立写一个GUI出来的水平把,不过后来随着有了其他目标,就把这块放下了.之后常年没有用,早就 ...
- 重拾Java Web应用的基础体系结构
目录 一.背景 二.Web应用 2.1 HTML 2.2 HTTP 2.3 URL 2.4 Servlet 2.4.1 编写第一个Servlet程序 2.5 JSP 2.6 容器 2.7 URL映射到 ...
- 重拾java系列一java基础(2)
1.分支流程控制 if(布尔表达式/分支条件){ //语句块} if(布尔表达式/分支条件){ //语句块1}else{ //语句块2} if(条件1){ //语句块1}else if(条件2 ...
- 1Java语言概述——重拾Java
1.1 Java 语言诞生 Java 是1995 年 由 Sun公司开发的革命性编程语言. 1.2 Java 的特点 序号 主题 描述 1 简单 比C++简单 2 面向对象 基于对象的编程更符合人的思 ...
- 重拾java系列一java基础(4)
本章主要回顾一些类的相关知识: (1)static: static 静态的: 属于类的资源, 使用类名访问. 静态属性: 只有一份的变量 静态方法: 是属于类方法, 可以使用类名直接访问. 静态方 ...
- 重拾java系列一java基础(1)
前言,不知不觉,从接触java到工作至今已有两年的时间,突然感觉自己的基础知识还很薄弱,有些知识虽然知道,但是停留在表面上,没有深挖,或者实践过,感觉掌握的很肤浅,而且时间一长,就觉得忘记了,我觉得这 ...
- 重拾java之路之webservice
Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性.你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web servi ...
- 重拾java系列一java基础(3)
这一章主要复习下以前所接触的算法, (1)选择排序法:在要排序的一组数中,选出最小的一个数与第一个位置的数交换:然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较 ...
- 重拾java中的 i++ 和 ++i
java中的 i++ 和 ++i 首先记着要点: 1.i++是先取值再运算. 2.++i是先运算后取值. 举个栗子: int y,x=3;y=(++x)+(++x); 则y=? 分析:先运算后取值,先 ...
随机推荐
- jmeter—打开jmx报com.thoughtworks.xstream.converters.ConversionException
打开出错的jmx文件,查看出错行 由于缺少PerfMon Metrics Collector插件,所以报这个错误 下载地址(https://jmeter-plugins.org/downloads/a ...
- golang fmt用法举例
下标与参数的对应 例子如下: package main import ( "fmt" ) func main() { num := 10 fmt.Printf("num: ...
- html 子元素和父元素都监听了 click 事件,点击子元素时为何先触发的是父元素的 click 事件?
先上一段代码,点击子元素时先触发的是父元素的 click 事件 <html> <head> <script type="text/javascript" ...
- java 关于Java中静态代码块以及构造函数的执行先后顺序
先转个链接 http://blog.csdn.net/wangbaokangfei/article/details/7757320 另外补充一下.静态方法,只执行一次就自动在内存中存在,再次实例化此 ...
- svn权限设置
原文:http://swjr.blog.com.cn/archives/2006/TheRoadToSubversion1authz.shtml http://www.dayuer.com/freeb ...
- Android中measure过程、WRAP_CONTENT详解以及 xml布局文件解析流程浅析
转自:http://www.uml.org.cn/mobiledev/201211221.asp 今天,我着重讲解下如下三个内容: measure过程 WRAP_CONTENT.MATCH_PAREN ...
- 第5章 pandas入门
pandas是专门为处理表格和混杂数据设计的,NumPy更适合处理统一的数值数组数据. pandas的数据结构: Series:Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据 ...
- 去除adb传输中的^M
学习sed过程中,在文本中每行追加内容,发现使用adb会在行末追加一个看不到^M. 场景一:adb保存到文件 adb shell ps|head -n 10 > text.txt,使用sed进行 ...
- mysql 不同事务隔离级别
repeatable read 在同一事务中,同一查询多次进行时候,由于其他插入操作(insert)的事务提交,导致每次返回不同的结果集. 标准的repeatable read是允许幻读的,因为这一级 ...
- php printf() 输出格式化的字符串
php printf() 函数用于输出格式化的字符串,本文章向码农介绍php printf()函数的使用方法和基本使用实例,感兴趣的码农可以参考一下. 定义和用法 printf()函数输出格式化的字符 ...