• 前言
    类和对象,在我们学习Java语言的过程中,它们无时无刻不存在着,在我们还远未详细弄明白它们的意义之前,在我们不知不觉的下意识里,我们都会直接或间接的用到它们,这是因为Java是一门面向对象的语言,在学习类与对象的前提下,我们应当先对面向对象有所了解.

我们都知道,Java语言是一门面向对象的语言,实际上类与对象,就是面向对象编程思想的重要基础.

  • 面向对象编程思想概述

面向对象的开发思想可以说是人类最自然的一种思考方式,它将所有预处理的问题抽象成为对象,同时了解这些对象的相应属性以及展示这些对象的行为,以解决这些对象面临的一些实际问题,面向对象设计的实质就是对现实社会中的对象进行建模操作.

  • 对象
    对象是什么,按表面意思理解,对象就是表示我们眼中的某件事物.它可以是现实世界的任何一件事物,也可以是一个抽象的,我们自己脑海中构造的.

对象就是某个事物存在的实体,就例如人类,书桌,高楼大厦等,人类解决问题的方式总是不断将复杂的事物简化,于是就会思索这些对象由哪些组成,通常会将对象划分为静态部分和动态部分.

  • 静态部分,即对象不变的部分,称之为属性.任何对象都具有其自身属性.
  • 动态部分,即对象可能存在的行为,动作.如一个人会哭泣,微笑,行走奔跑等.

人们通过研究对象的属性和行为来了解对象.

  • 而面向对象抽象设计的思想,就是以对象来思考问题的,首先将现实世界中的实体抽象为对象.然后考虑这个对象具备的属性和行为.

我们通过一个大雁南飞的问题来看看:

首先我们将大雁抽象为一个对象,接着观察分析对象,大雁因该具有的属性和行为:

我们分析完成后,这个对象的定义就完成了,然后就可以根据这个对象来解决大雁南飞的问题.

我们还可以发现,在现实生活中,很多大雁都具有这样的特性,而大雁又不只一只, 所以我们就将这些属性和行为封装起来,就组成了类,对象就是类抽象出来的一个实例.这其中的原理和图书馆图书的分类类似,具有某些特征的书归为一类存放,而这类里的书都可以说是这个类别的一个实例.


  • 类,其实就如同我们日常生活中的类别一样,指的是具有某一类相同特性的一类事物,描述的是一个群体,类不能用来单指某个事物,所以也不能当作某一事物来使用.
    类是构造对象时所依赖的规范(因为对象都是基于类创建的).对象就是符合某个类的定义所产生出来的实例.
    类是封装对象的属性和行为的载体.也可以说具有相同属性和行为的一类实体被称为类.

在Java语言中,类中对象的行为是通过方法的形式定义的,对象的属性是以成员变量定义的.


  • 面向对象程序设计的特点

    • 封装性
      封装是面向对象编程的核心思想,将对象的属性和行为封装起来,其载体就是类,类通常对用户隐藏其实现的细节,这就是封装思想,其实很容易理解,我们在使用某一方法时,只需要通过类.方法名调用,不用了解其实现细节.
      采用封装的思想保证了类内部数据结构的完整性,应用类的用户不能轻易的直接操作类的数据结构.只能执行类允许公开的数据.这样就避免了外部操作对内部数据的影响,提高了程序的可操作性.

  • 继承性
    类和类之间同样有着联系这种联系有很多种,其中比较典型的关系之一就是继承,就像是图书分类一样,有着层层分级的关系,其中小类同样拥有其父类的属性和方法,这就是继承关系.继承性主要用到特定对象之间共有属性.

  • 多态性

前面我们了解了继承,知道了父类与子类的关系,多态就是将父类对象应用与子类的特征.多态的实现不依赖于具体的类,而是依赖于接口可抽象类的.在多态的机制中,比抽象类更方便的方式是将抽象类定义为接口.由抽象方法的集合就是接口.接口的概念在现实生活中也是十分常见的.

关于类,对象,及三大特性,接口,抽象类,抽象方法等概念会在后面单独出一篇文章专门学习,这里主要是为了简单了解下面向对象的编程思想.
***
更新时间:
2019-4-8
1:09

[Java初探07]__关于面向对象的简单认识的更多相关文章

  1. [java初探06]__排序算法的简单认识

    今天,准备填完昨天没填的坑,将排序算法方面的知识系统的学习一下,但是在简单的了解了一下后,有些不知如何组织学习了,因为排序算法的种类,实在是太多了,各有优略,各有适用的场景.有些不知所措,从何开始. ...

  2. [java初探10]__关于数字处理类

    前言 在我们的日常开发过程中,我们会经常性的使用到数字类型的数据,同时,也会有众多的对数字处理的需求,针对这个方面的问题,在JAVA语言中.提供解决方法的类就是数字处理类 java中的数字处理类包括: ...

  3. [java初探09]__关于java的包装类

    前言 在Java语言的学习过程中,我们逐渐的理解了Java面向对象的思想,与类和对象的应用.但是在基本数据类型的使用上,我们无法将其定义为一个对象,通过使用对象的方法来使用它们,但是Java语言的思想 ...

  4. [Java初探08]__简单学习Java类和对象

    前言 在前面的学习中,我们对面向对象的编程思想有了一个基本的了解,并且简单的了解了类和对象的定义.那么类和对象在Java语言中是如何表现的,这次,就从实际出发,学习一下一下类和对象在Java语言中的使 ...

  5. [java初探05]__数组的简单认识及Arrays类的常用方法

    数组是具有相同数据类型的一组数据的集合.在程序设计中,这样的集合称之为数组.数组的每个元素都具有相同的数据类型,在Java中数组也被看为一个对象. 在里,了解了数组的定义之后, 我们知道了,数组并不是 ...

  6. [Java初探04]__字符串(String类)相关

    前言 接下来将暂时将重心偏移向实际操作,不在将大量时间花费在详细的知识点整理上,将会简略知识总结笔记的记录,加强实际练习的时间,实例练习篇也不再同步进行,我会将部分我觉得重要的源码更新在每节知识点后面 ...

  7. [java初探总结篇]__java初探总结

    前言 终于,java初探系列的学习,要告一阶段了,java初探系列在我的计划中是从头学java中的第一个阶段,知识主要涉及java的基础知识,所以在笔记上实在花了不少的功夫.虽然是在第一阶段上面花费了 ...

  8. Java第五次作业--面向对象高级特性(抽象类与接口)

    Java第五次作业--面向对象高级特性(抽象类与接口) (一)学习总结 1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结. 2.汽车租赁公司,出租汽车 ...

  9. JAVA使用POI读取EXCEL文件的简单model

    一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...

随机推荐

  1. MyGeneration使用概述

    1.首先要连接数据库,第一次启动myG的时候会弹出default settings对话框,以后也可以在Edit-default settings里面修改.default settings有3个tabs ...

  2. css3动画特效集合

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...

  3. 深入浅出javascript(五)函数

    全局函数 自定义函数 函数对象 函数的属性和方法 一.全局函数 全局函数不同于内置对象的方法(来源于网络),一共有7个,可以直接使用. escape( ).eval( ).isFinite( ).is ...

  4. 模块import,from ..import...

    首次导入模块发生3件事 1.创建一个模块的名称空间 2.执行文件spam.py,将执行过程中产生的名字都放到模块的名称空间中 3.在当前执行文件中直接拿到一个名字,该名字就是执行模块中相对应的名字 f ...

  5. bzoj2004(矩阵快速幂,状压DP)

    每个长度为p的区间都必须出现k次1,数据又很小,我们使用状压. dp[i][j]->dp[i+1][j'],dp[i][j]表示当前考虑到了第i个车站,包括第i个其后的p个的状态(有车停或没车停 ...

  6. Codeforces821A Okabe and Future Gadget Laboratory 2017-06-28 14:55 80人阅读 评论(0) 收藏

    A. Okabe and Future Gadget Laboratory time limit per test 2 seconds memory limit per test 256 megaby ...

  7. Q他中的乱码再理解

    Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求. 经常出现个问题是windows的解决了,源代码放到linux上编译不通过或者中文会乱码,本文主要是得出一个解决方 ...

  8. 走上模拟道路 HDU4891

    http://vjudge.net/contest/view.action?cid=51327#problem/D Description Yoda: May the Force be with yo ...

  9. 在Delphi中处理word文档与数据库的互联

    在Delphi中处理word文档与数据库的互联 ---- 目前,Delphi被越来越多的人选中作为MIS系统开发中的前台工具.在以Delphi为前台,一些大型数据库为后台的MIS系统中,图形的处理不可 ...

  10. WPF学习笔记(3):ListView根据内容自动调整列宽

    DataGrid中,只要不设置DataGrid的宽度和列宽度,或者将宽度设置为Auto,那么表格就会根据内容自动调整宽度,以显示所有内容.但如果是ListView,按以上方法设置,却达不到列宽自动调整 ...