java -谈谈我对面向对象的理解,private的意义
万物皆对象,在我们生活中,一个水杯,一个枕头,都可以把它当做一个对象.
java面向对象有三个特性,封装,继承,多态,如果再加一个,那就是抽象
我们来举个例子
我是上帝,我要开始造人了,我会先想,人是由什么构成的? 好了,我知道了,人是由灵魂和肉体构成的(抽象就相当于定义了模板)
我想好了用什么来构成人,那我就开始造人了,我造着造着发现,太多了,我造着很累,每次都要一个一个来造,那么我自己就做了一个机器,我把造人这个方法放入机器中包裹起来(安全private),让机器来造人,我只需要用这个机器就可以了(封装封装不一定安全,我们等下来说),
造着造着我还是觉得很累,我觉得我不能自己用这个机器造了,我得让我自己造的人去使用这个机器,这样我就不用干活了,我就轻松了,于是我就让我造的人去使用
这个机器去造新的人(继承)
由于我造人的时候让他们有了灵魂,有了思想,于是我发现他们造人的时候造出了很多不一样的人,有的是黄种人,有的是白种人,还有的是黑人(他们本质上都是人)(多态),但是我的机器设置的只能造黄种人,他们为什么就可以造出黑人和白人呢?我知道了,他修改了机器(破坏封装 java中的反射)于是就出现了各种各样的人.
这就是java的封装.继承.多态.抽象.
又来了个问题,既然private并不能保证绝对安全,那么private的意义是什么
继续举个例子,
某岛国的boss管理着他的国家,有一个人用着特别顺手,boss让它做了除了自己意外最大的官,还给了他兵权(private没人能管他,只有自己能管),但是这个人不爽啊,你什么事情都让我来做官还比我大,还管着我,我不服,然后他就开始各种各样搞事情了,于是boss知道了,他也不爽了,你整天在那里搞事情,国家都乱了,但是bosos也没办法直接去把这个人拿掉,因为很多事情还要靠他来完成,他还有兵权,动不了他,于是boss在国家法律上增加了一条,黑社会的合法化(反射),有意思了,boss想,我不搞你,但是我可以找人来搞你,然后boss就让黑社会去修理这个人,威胁他之类得,然后这个人就听话了,他也不调皮了,一直给boss安静的做事
这个例子比较简单,我们可以看出,反射可以破坏封装,private只可以在一定程度下保证安全,反射的作用就是获取一些成员的属性方法,包括私有的,在我们实际的使用过程中是很灵活的
java -谈谈我对面向对象的理解,private的意义相关推荐
- Java 谈谈你对面向对象的理解?
目录 一.解答 二.链接 一.解答 1.概述 面向对象中的对象指的是由一组数据结构和处理它们的方法组成,"数据" 包括对象的静态信息,如特性.状态等:"方法" ...
- Java面试一百道题目(第一题)-什么是面向对象,谈谈你对面向对象的理解
Java面试一百道题目(第一题) 1,什么是面向对象,谈谈你对面向对象的理解. 思路:用面向过程和面向对象做对比来突出什么是面向对象. 答:高级语言分为,面向对象语言和面向过程语言,面向过程语言,距离 ...
- 什么是面向对象? 谈谈你对面向对象的理解
面试官提问:什么是面向对象? 谈谈你对面向对象的理解 面试题拆解: 这道面试题对于工作时间不是很长的Java程序员来说,出现频率是比较高的. 那么到底什么是面向对象呢?讲面向对象之前,需要先聊一下面向 ...
- 谈谈面试题之什么是面向对象?谈谈你对面向对象的理解?
一.什么是面向对象? 对比面向过程,是两种不同的处理问题的角度. 面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象),及各自需要做些什么 举例说明:洗衣机洗衣服 面向过程:会 ...
- 面向对象思想--谈谈你对面向对象的理解
面向对象 面向对象编程,即OOP,面向对象的概念和应用已经超越了程序设计.软件开发领域,现在已经发展到了各个领域. 面向对象可以说是对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段的产物. ...
- Java面向对象系统理解
1.对面向对象的理解 面向过程 面向过程,核心是过程二字.过程即解决问题的步骤,设计一条流水线,机械式的思维方式.它考虑的是实际地实现,针对一个特定的问题去思考其解决步骤.学过C语言的同学就知道,用C ...
- java面向对象的理解_java胜于C语言,却又静态面向对象,简单?
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语言作为静态面向对象编程语言的代 ...
- 什么是面向对象?谈谈对面向对象的理解?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.什么是面向对象?谈谈对面向对象的理解? 二.3大特征: 1.封装: 2.继承: 2.多态: 总结 一.什么是面向对象?谈 ...
- 谈谈你对 Spring 的理解
谈谈你对 Spring 的理解 Spring 是一个开源框架,为简化企业级应用开发而生. Spring 可以是使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. Spring 是一个 ...
最新文章
- php编译工具 知乎,关于知乎回答问题编辑框用Ctrl+V 粘贴图片是如何实现的详解...
- JavaWeb(八)——JSP(Java服务器端页面)
- ABAP Pragma
- FileSystemObject (FSO)对象方法总结及应用
- LeetCode之Next Greater Element I
- zookeeper的四种类型的节点
- Linux下yum命令详解
- 我为啥要当程序员未来规划漫谈
- android自动清缓存,折腾Android系列 一键清理自动释放缓存
- iOS滤镜实现之LOMO(美图秀秀经典LOMO)
- CICD:CentOS 下 Jenkins 安装
- linux获取pc指针地址,为什么pc可以看成使程序存储器的地址指针
- 供应链金融的三种业务模式
- c语言程序设计结论,C语言程序设计报告.docx
- c语言怎么把一个整数挨挨挤挤,《C语言》课程PPT_第1章_C语言基础
- 电影版本名词解析 (CAM,TS,TC,DVDSCR,DVDRIP,HR-HDTV)
- 华为云05之网络虚拟化
- FFmpeg入门详解之63:画龙点睛:捋起袖子亲手操练直播项目
- 面向对象程序设计第四单元总结(UML系列)
- python Dataframe数据相关操作
热门文章
- C#通过邮箱验证来找回密码
- 11.22 (GEMM数据库) EDEM学习笔记 SAG MILL
- mybatis-plus 动态指定只查询某些字段
- Net中的AOP系列之构建一个汽车租赁应用
- weblogic 优化设置 http://wenku.baidu.com/view/c42e7a5bbe23482fb4da4cf2.html
- lucene--创建searcher
- 验证码: 如下,在进行自动化测试,遇到验证码的问题,一般有两种方式
- codeforces723d
- Zabbix6无法切换到中文报错You are not able to choose some of the languages...
- 根据ip地址查询城市信息