[Java初探07]__关于面向对象的简单认识
- 前言
类和对象,在我们学习Java语言的过程中,它们无时无刻不存在着,在我们还远未详细弄明白它们的意义之前,在我们不知不觉的下意识里,我们都会直接或间接的用到它们,这是因为Java是一门面向对象的语言,在学习类与对象的前提下,我们应当先对面向对象有所了解.
我们都知道,Java语言是一门面向对象的语言,实际上类与对象,就是面向对象编程思想的重要基础.
- 面向对象编程思想概述
面向对象的开发思想可以说是人类最自然的一种思考方式,它将所有预处理的问题抽象成为对象,同时了解这些对象的相应属性以及展示这些对象的行为,以解决这些对象面临的一些实际问题,面向对象设计的实质就是对现实社会中的对象进行建模操作.
- 对象
对象是什么,按表面意思理解,对象就是表示我们眼中的某件事物.它可以是现实世界的任何一件事物,也可以是一个抽象的,我们自己脑海中构造的.
对象就是某个事物存在的实体,就例如人类,书桌,高楼大厦等,人类解决问题的方式总是不断将复杂的事物简化,于是就会思索这些对象由哪些组成,通常会将对象划分为静态部分和动态部分.
- 静态部分,即对象不变的部分,称之为属性.任何对象都具有其自身属性.
- 动态部分,即对象可能存在的行为,动作.如一个人会哭泣,微笑,行走奔跑等.
人们通过研究对象的属性和行为来了解对象.
- 而面向对象抽象设计的思想,就是以对象来思考问题的,首先将现实世界中的实体抽象为对象.然后考虑这个对象具备的属性和行为.
我们通过一个大雁南飞的问题来看看:
首先我们将大雁抽象为一个对象,接着观察分析对象,大雁因该具有的属性和行为:
我们分析完成后,这个对象的定义就完成了,然后就可以根据这个对象来解决大雁南飞的问题.
我们还可以发现,在现实生活中,很多大雁都具有这样的特性,而大雁又不只一只, 所以我们就将这些属性和行为封装起来,就组成了类,对象就是类抽象出来的一个实例.这其中的原理和图书馆图书的分类类似,具有某些特征的书归为一类存放,而这类里的书都可以说是这个类别的一个实例.
- 类
类,其实就如同我们日常生活中的类别一样,指的是具有某一类相同特性的一类事物,描述的是一个群体,类不能用来单指某个事物,所以也不能当作某一事物来使用.
类是构造对象时所依赖的规范(因为对象都是基于类创建的).对象就是符合某个类的定义所产生出来的实例.
类是封装对象的属性和行为的载体.也可以说具有相同属性和行为的一类实体被称为类.
在Java语言中,类中对象的行为是通过方法的形式定义的,对象的属性是以成员变量定义的.
面向对象程序设计的特点
- 封装性
封装是面向对象编程的核心思想,将对象的属性和行为封装起来,其载体就是类,类通常对用户隐藏其实现的细节,这就是封装思想,其实很容易理解,我们在使用某一方法时,只需要通过类.方法名调用,不用了解其实现细节.
采用封装的思想保证了类内部数据结构的完整性,应用类的用户不能轻易的直接操作类的数据结构.只能执行类允许公开的数据.这样就避免了外部操作对内部数据的影响,提高了程序的可操作性.
- 封装性
- 继承性
类和类之间同样有着联系这种联系有很多种,其中比较典型的关系之一就是继承,就像是图书分类一样,有着层层分级的关系,其中小类同样拥有其父类的属性和方法,这就是继承关系.继承性主要用到特定对象之间共有属性.
- 多态性
前面我们了解了继承,知道了父类与子类的关系,多态就是将父类对象应用与子类的特征.多态的实现不依赖于具体的类,而是依赖于接口可抽象类的.在多态的机制中,比抽象类更方便的方式是将抽象类定义为接口.由抽象方法的集合就是接口.接口的概念在现实生活中也是十分常见的.
关于类,对象,及三大特性,接口,抽象类,抽象方法等概念会在后面单独出一篇文章专门学习,这里主要是为了简单了解下面向对象的编程思想.
***
更新时间:
2019-4-8
1:09
[Java初探07]__关于面向对象的简单认识的更多相关文章
- [java初探06]__排序算法的简单认识
今天,准备填完昨天没填的坑,将排序算法方面的知识系统的学习一下,但是在简单的了解了一下后,有些不知如何组织学习了,因为排序算法的种类,实在是太多了,各有优略,各有适用的场景.有些不知所措,从何开始. ...
- [java初探10]__关于数字处理类
前言 在我们的日常开发过程中,我们会经常性的使用到数字类型的数据,同时,也会有众多的对数字处理的需求,针对这个方面的问题,在JAVA语言中.提供解决方法的类就是数字处理类 java中的数字处理类包括: ...
- [java初探09]__关于java的包装类
前言 在Java语言的学习过程中,我们逐渐的理解了Java面向对象的思想,与类和对象的应用.但是在基本数据类型的使用上,我们无法将其定义为一个对象,通过使用对象的方法来使用它们,但是Java语言的思想 ...
- [Java初探08]__简单学习Java类和对象
前言 在前面的学习中,我们对面向对象的编程思想有了一个基本的了解,并且简单的了解了类和对象的定义.那么类和对象在Java语言中是如何表现的,这次,就从实际出发,学习一下一下类和对象在Java语言中的使 ...
- [java初探05]__数组的简单认识及Arrays类的常用方法
数组是具有相同数据类型的一组数据的集合.在程序设计中,这样的集合称之为数组.数组的每个元素都具有相同的数据类型,在Java中数组也被看为一个对象. 在里,了解了数组的定义之后, 我们知道了,数组并不是 ...
- [Java初探04]__字符串(String类)相关
前言 接下来将暂时将重心偏移向实际操作,不在将大量时间花费在详细的知识点整理上,将会简略知识总结笔记的记录,加强实际练习的时间,实例练习篇也不再同步进行,我会将部分我觉得重要的源码更新在每节知识点后面 ...
- [java初探总结篇]__java初探总结
前言 终于,java初探系列的学习,要告一阶段了,java初探系列在我的计划中是从头学java中的第一个阶段,知识主要涉及java的基础知识,所以在笔记上实在花了不少的功夫.虽然是在第一阶段上面花费了 ...
- Java第五次作业--面向对象高级特性(抽象类与接口)
Java第五次作业--面向对象高级特性(抽象类与接口) (一)学习总结 1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结. 2.汽车租赁公司,出租汽车 ...
- JAVA使用POI读取EXCEL文件的简单model
一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...
随机推荐
- 利用nginx打造个人简历网页
1.下载nginx nginx官方网址:http://nginx.org/ 2.下载和解压 #下载:[root@iZwz9cl4i8oy1reej7o8pmZ soft]# wget http://n ...
- android PendingIntent 使用通知传递多个参数,及不覆盖的问题
Intent updateIntent = new Intent(GetNoticeService.this, DetailGonggaoActivity.class); updateIntent.p ...
- oj错误之char型超出范围
在oj时遇到一个题 题目本身并不是很难,但在一个数据时出了错,刚开始一直没想通是哪里出了错 下面为源代码 #include <bits/stdc++.h> using namespace ...
- java基础知识-逻辑运算符
/*首先申明:逻辑运算符的操作数都是布尔型表达式*/ /* 演示逻辑运算符 & :两个操作数都为真的时候结果为真 | :两个操作数只要有一个为真,结果就为真 && :短路与,左 ...
- [php-pear]如何使用 PHP-PEAR安装器,以及使用 PEAR 安装扩展库
我们都知道 PHP PEAR,就是 PHP Extension and Application Respository,也就是 PHP 扩展和应用代码库. PHP 也可以通过 PEAR 安装器来进行 ...
- EBS获取并发程序Trace File
http://blog.itpub.net/16832682/viewspace-1249765/ 最近因为项目上出现了PL/SQL性能的问题,因此需要对已经开发好的并发程序进行调优的工作.调优有个很 ...
- datetime & time
python有两个和时间相关的模块,datetime和time datetime datetime模块下有四个类 date 日期相关的 time 时间相关的 datetime ...
- openvSwitch 基本命令
建立ovs接口连接两个namespace组成二层网络 环境搭建拓扑 br0 +--------------------------------------+ +--+ +--+ +---+ | tap ...
- 知物由学 | 见招拆招,Android应用破解及防护秘籍
本文来自网易云社区. “知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道.“知物由学”希 ...
- [学习笔记]状压dp
状压 \(dp\) 1.[SDOI2009]Bill的挑战 \(f[i][j]\) 表示匹配到字符串的第 \(i\) 位状态为 \(j\) 的方案数 那么方程就很明显了,每次枚举第 \(i\) 位的字 ...