java特征
java的核心是面向对象,与之相对的是面向过程的编程,在对整个java编程没有足够的理解和运用的情况下恐怕没办法很好的理解这两个概念。
在我的初步理解中,写一个程序就例如做一件事情,面向过程的思想或许就是指这一步做什么,下一步又做什么,直到完成这件事,突出的是做的步骤;而面向对象的思想则是这个人做什么,那个人做什么,直到合起来完成这件事;虽然结果都是完成这件事,但是一个着重点是做的步骤,而另一个则是谁做什么。
所有的面向对象编程语言,都包含着三个原则或者说是特征、机制,分别是封装、继承和多态。
java中一切皆对象,类是对象,接口是对象,属性是对象,方法也是对象。而对象是什么,对象就是object,就是我们通俗所说的东西。什么是东西?可以说宇宙是个东西,人是个东西,一件事也是个东西,一切皆对象,也就是一切皆东西。
封装的简单理解就是把一些零散的却又有一定关系的东西整合起来作为一个整体来使用,或者这些东西可以称之为对象。就好比把一辆车当作一个程序,它上边有非常多的零件,比如塑胶件、五金件等,但是我们通常只会说方向盘、轮胎,而方向盘并不是最小的个体,他们是由更小的零件组合的,把这些零件组合成方向盘来实现掌控方向的过程就是封装。
继承的概念就类似于我们生活中常说的继承,也就是子类会获得父类的部分东西,但是却又不是全部。例如我们可以继承父亲的部分基因从而长的像父亲,也可以继承父亲的关系网甚者财产,但是他的兄弟却不能是我们的兄弟,还是会有所不同。有一点要注意的是,这里说的是父类而不是说的父亲,这是有很大区别,所谓的父类,父亲是,爷爷也是,爷爷的爷爷一样是。
据我理解, 多态的概念通常涉及到接口和实现的问题,也就是说一个接口可以有多种不同的实现形态。一样可以拿人做个例子,人有身份,而身份是个抽象的东西,是个具有相对性的概念,对于他的朋友来说,他的身份就是朋友,对于他的晚辈来说,他就是个长辈,而对于他的同事来说,他就是个同事。这个人是个接口,身份就是抽象方法,其他不同的人就是不同的实现这个借口的方法,具体的身份就是具体的实现状态。同一个人,不同的身份,这就是多态。
既然多态通常跟接口有关,那么接口是什么?接口可以看作是特殊的抽象类,也就是一种所有方法都是抽象方法的抽象类。需要注意的是,抽象类可以有几种形式,可以没有抽象方法,可以有一部分抽象方法,也可以全部是抽象方法。可是接口到底是什么?目前只能再打个比方,我们通常所说的USB接口,就是一个接口,因为它也有多态,当我们用他来连接鼠标或键盘的时候它的功能是一种状态,当我们用它连接数据线传输数据时又是一种状态。
封装、继承、多态原本就是一些概念,概念是由人定义的,所以不同的人具体理解可能不一样,但是大体上是那么回事就可以了。
java特征的更多相关文章
- (二)java特征
java的核心是面向对象,与之相对的是面向过程的编程,在对整个java编程没有足够的理解和运用的情况下恐怕没办法很好的理解这两个概念. 在我的初步理解中,写一个程序就例如做一件事情,面向过程的 ...
- 深入理解Java虚拟机--中
深入理解Java虚拟机--中 第6章 类文件结构 6.2 无关性的基石 无关性的基石:有许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码(ByteCode),从而 ...
- java面试题(杨晓峰)---第一讲谈谈你对java平台的理解
本人总结: 面向对象(封装,继承,多态) 平台无关性(jvm运行,class文件) 语言(泛型,lambda) 类库(集合,并发,网络,io/nio) jre(java运行环境,JVM,类库) JDK ...
- Java基础学习框架总结
内容:Java基础知识全面复习 时间:2019.9.3-2019.9.26 代码:D:/ProgramFiles/IDEA/hello_sort 一.基础知识 learning1 case分支 Inp ...
- guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用
guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用 1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection ...
- 监控Spark应用方法简介
监控Spark应用有很多种方法. Web接口每一个SparkContext启动一个web UI用来展示应用相关的一些非常有用的信息,默认在4040端口.这些信息包括: 任务和调度状态的列表RDD大小和 ...
- 瓜娃《guava》api快速入门
1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection API Guava Basic Utilities IO API C ...
- Guava之简介
1.介绍 Guava最初是在2007年作为“Google Collection Library” 出现的,这个项目在处理Java集合时提供了一些有用的工具,Google的这个guava项目已经成为了 ...
- Guava常用方法
简介 Guava,中文是石榴的意思,Guava项目,是基于java的Google的开源的工具类库,包含了许多被Google的java项目广泛依赖的核心库, 例如:集合.缓存.原生类型支持.并发库.通用 ...
随机推荐
- 前端-高潮 jQuery
jQuery:就是让页面动起来 参考手册:http://jquery.cuishifeng.cn/ DOM/BOM/javaScript 继承的类库 <--->模块 一.查找元素 二.操作 ...
- 【视频编解码·学习笔记】6. H.264码流分析工程创建
一.准备工作: 新建一个VS工程SimpleH264Analyzer, 修改工程属性参数-> 输出目录:$(SolutionDir)bin\$(Configuration)\,工作目录:$(So ...
- testlink用例的导出到Excel
一直在网上寻找怎么把testlink的用例导出到Excel中,以及把Excel中已经写好的用例导入到Testlink中的方法.根据现网的经验,然后修改了一下.贴出来,以飨有这方面需求的测试同仁. Te ...
- python装饰器探究与参数的领取
首先上原文, 现在,假设我们要增强now()函数的功能,比如,在函数调用前后自动打印日志,但又不希望修改now()函数的定义,这种在代码运行期间动态增加功能的方式,称之为"装饰器" ...
- Linux 虚拟IP
虚拟IP Linux网卡上绑定另一个虚拟ip,即网卡上一个真实ip一个虚拟ip.当然通过这2个ip都可以连接到该主机. 实现原理主要是靠TCP/IP的ARP协议.因为ip地址只是一个逻辑 地址,在以太 ...
- XCode 安装 Alcatraz包管理器失败的处理
按照官方的文档(https://github.com/supermarin/Alcatraz),先卸载再重新安装即可.步骤如下: 1. 退出Xcode 2. rm -rf ~/Library/Appl ...
- ubuntu安装nginx和设置网站https访问
安装nginx 在控制台 输入 sudo apt-get install nginx 等待安装成功之后.可以打开浏览器.输入你的域名或者ip地址会出现"Welcome to nginx!&q ...
- Activiti中的各个service的作用
各个Service的作用: RepositoryService 管理流程定义 RuntimeService 执行管理,包括启动.推进.删除流程实例等操作 TaskService 任务管理 Histor ...
- 隐藏文件的查看(Win/Linux/macOS)
Windows(10): 点查看->点选项,弹出文件夹选项,点查看,高级设置里找到隐藏文件和文件夹这个选项,按需求选显示或者隐藏即可. Linux: Linux下,类似于.ssh开头的文件或者文 ...
- Redis的两种持久化方式-快照持久化和AOF持久化
Redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边,数据保存到硬盘的过程就称为"持久化"效 ...