Java——一种彻底的面向对象语言
在 Java 世界里,Everything is object。也就意味着 Java 是一种彻底的面向对象语言,
彻底
对应着everything
。
使用 Java 无论想实现何种代码逻辑,首先需要定义类,而对象是类的实例化。没有类与对象,一切寸步难行。程序逻辑依赖对象的创建。类的抽象和定义是一切的起点,不仅如此,类包括成员变量和成员方法,类是对成员变量的封装,成员方法围绕成员变量展开,一个好的类设计与实现,意味着一半的工作已经完成了。
Java 语言与日常语言
所有的函数必须为类的成员函数。
考虑日常语言的基本句子结构——主谓宾;
- 主语和宾语都可抽象出对应的类,
- 谓语为主语的动作,抽象为主语对应类的某一成员函数,
- 宾语是该成员函数的形式参数。
那么你该问了,遇到祈使句怎么办,当然这里的祈使句,表示没有主语,或无法抽象出主语(类)的情况?比如数据库的DDL操作,create table。
如果你想抽象一个主语——人
或者用户
出来,那是十分拙劣的类设计,是为了面向对象而面向对象了,因为人
这个类,它太泛了。
C++ 给出的解决方案是,既然如此难以捉摸和构造,那干脆不构造了,就定义一个全局的函数好了。
一个对象调用其成员方法,是不能简单的和”主谓宾”的自然语言语法框架划等号的。
比如一个无参的成员函数(比如getter方法),是不是意味着没有宾语。(空参的成员函数,宾语很有可能是主语的私有成员变量)
Java,everything is object,怎么允许一个不属于类的函数,一个不是成员函数的函数。或者用户必须构造一个抽象的类,哪怕没有任何实际意义,或者在使用一个现成的 API 时(比如HBase API),API提供相关的类,比如操作HBase中的表,对于创建和删除表,用类HBaseAdmin来操作,对于上传、删除、查看表记录使用类 HTable。
Java——一种彻底的面向对象语言相关推荐
- java面向对象语言_Java到底是不是一种纯面向对象语言?
英文原文:Why Java Is a Purely Object-Oriented Language Or Why Not Java是否确实是 "纯面向对象"?让我们深入到Java ...
- java 翻译 go语言_【翻译】go是面向对象语言吗?
前言 为了真正理解面向对象的含义,我们需要回顾一下这个概念的起源.第一个面向对象语言-simula问世于19世纪60年代.它引入了对象(object).类(class).继承(inheritance) ...
- java和其他语言相比 特点,【单选题】与其他面向对象语言相比,Java语言突出的特点是:...
[单选题]与其他面向对象语言相比,Java语言突出的特点是: 更多相关问题 55 A fresh B soft C deep D warm 13 Many economists have given ...
- EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是hibernate中默认的CacheProvider Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是hibernate中默认的CacheProvider Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存, ...
- python面向对象的三个基本特征 含义和作用简介_面向对象语言的三个基本特征各自特点及优势...
展开全部 面向对象语言的三个基本特征:识认性.类别性.多态性:优势:继承性,在基本层次关系的不e69da5e6ba9032313133353236313431303231363533313334336 ...
- java 四种内存_不可访问内存 Java四种引用包括强引用,软引用,弱引用,虚引用...
小结: 1.不可访问内存是指一组没有任何可访问指针指向的由计算机程序进行动态分配的内存块. 2.垃圾收集器能决定是否一个对象还是可访问的:任何被确定不可访问的对象将会被释放. https://zh.w ...
- c不是面向对象编程语言 所以不具有面对,go 学习笔记之go是不是面向对象语言是否支持面对对象编程?...
面向对象编程风格深受广大开发者喜欢,尤其是以 C++, Java 为典型代表的编程语言大行其道,十分流行! 有意思的是这两中语言几乎毫无意外都来源于 C 语言,却不同于 C 的面向过程编程,这种面向对 ...
- 面向对象语言导论(节选) 1(ZT)
(译自Martin Abadi, Luca Cardelli的对象理论一书的第一部分) 译者前言 这本书是我们上面向对象类型理论的教材.当时上这门课时,心里满不以为然,觉得自己的C++和OO已经颇有造 ...
- 什么是对象?什么是面向对象程序设计?面向对象语言有什么优点?
在初学面向对象语言的时候,很多书都会有这样的句子–"一切都是对象".那么对象究竟是什么呢?是不是一切的事物都叫对象?但这里的对象并不是我们日常生活中的对象(事物),C#中我们把一个 ...
最新文章
- 【直播预告】7月18日3D游戏引擎免费公开课答疑,參与送C币!
- ​Nessus更新到8.9.1
- [转载] 大道至简:软件工程实践者的思想——第六章 谁是解结的人
- Python 文件和目录操作总结
- JVM学习笔记之-执行引擎(Execution Engine)
- Spring @Lazy批注用例
- python建立ip代理池_Python搭建代理IP池实现存储IP的方法
- aix 文件升级-替换
- day 34 进程线程排序 抢票 初级生产者消费者
- GARFIELD@03-23-2005
- 架构师须知概念:POJO、PO、DTO、DAO、BO、VO
- mysql报错You do not have the SUPER privilege and binary logging is enabled
- 教你如何写原创歌词和卖你的原创歌曲
- Python3 根据时区获取时间,并计算时间差
- 贴片钽电容的正负极性识别和贴片玻璃二极管的正负极性识别
- CSS基础-02 background(背景色)(背景色 background-color、背景图 background-image)
- ios中达到Android中九妹图的效果
- Linux基础(维护基本存储空间)
- 【李佳辉_周报_2022.9.25】
- 关于Error in render: TypeError: Cannot read property '0' of null问题的解决方法
热门文章
- call mysql_connect_Call to undefined function mysql_connect()
- 计算机网络课程设计即时通讯,计算机网络课程设计报告-基于LAN的即时通信软件.doc...
- premium导入后缀为db_Python 导入txt文件到mongo
- 施工日志管理软件app_启用ERP装修管理软件的必要性
- python蓝桥杯跑步训练
- Python:文件的读取、创建、追加、删除、清空
- 目标检测 数据集—标注工具 labelImg/labelme
- 使用Sigar做后台服务器管理时,遇到的linux上的问题
- flutter屏幕适配
- JAVA企业级应用服务器之TOMCAT实战