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=? 分析:先运算后取值,先 ...
随机推荐
- Java JDBC连接Oracle
1. 安装Oracle数据库,我这里使用的是Oracle 12c 2. 创建Java工程 connection-oracle 注意:使用的JavaSE-1.8 3. 在Oracle的安装目录里,将dj ...
- hadoop入门篇-hadoop下载安装教程(附图文步骤)
在前几篇的文章中分别就虚拟系统安装.LINUX系统安装以及hadoop运行服务器的设置等内容写了详细的操作教程,本篇分享的是hadoop的下载安装步骤. 在此之前有必要做一个简单的说明:分享的所有内容 ...
- BEGIN-2_蓝桥杯_序列求和
问题描述 求1+++...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+++...+n的值. 样例输入 样例输出 样例输入 说明:有一些试题会给出多组样例输入输 ...
- 【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)
作者:ssslinppp 1. 摘要 主要讲解N-1关系表的设计,N:从表,1:主表: 从表(N)中使用外键关联到主表(1),单向的: 场景: 许多人(N)可以住在同一个地方(1),知道人 ...
- setting.xml配置文件 --转载
转载出处:http://www.cnblogs.com/yakov/archive/2011/11/26/maven2_settings.html 在此,简单的说下 setting.xml 和 pom ...
- java web 程序---javabean代码,出现错误。奇怪,无法解释的运行问题
深夜吧.这个点11点半了 写了一个简单的javabean实例,发现没有任何代码书写的错误,但是问题就是程序运行会有问题,然后换一个包,重写一个,问题没了? 请问问题出现在哪里了?巧合?还是操作有误?这 ...
- WAP网站WML或HTML页面自适应手机屏幕实现方法
把图片和div的宽度都设置成:width:100%就可以了
- vmware12共享windows的文件给虚拟的linux
1:首先我的vmware的版本是12的 点击vmware的虚拟机---------------------->设置------------------------>选项---------- ...
- seaborn可视化特征的相关性
import seaborn as sn sn.heatmap(trainX.corr(),vmax=1,square=True)
- js 下关于json的销毁和添加
var json={a:1,b:2} 现在给json添加个c,可以这样写 json.c=3或json["c"]=3 我删除一个属性 delete json.a alert(json ...