• 前言
    类和对象,在我们学习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. 一个封存Id与状态对应键值的神器,BigInteger的setBit和testBit用法实例

    1,首先描述一下应用场景 比如,我们要对菜单做权限,控制不同角色菜单显示与不显示,角色为经理时,我们需要菜单id为 4,7,13,24的菜单显示,别的菜单不显示. 就是说,这时候我们要把4,7,13, ...

  2. web-day9

    第9章WEB09-Servlet篇 今日任务 完成系统的登录的功能 完成登录系统后页面定时跳转 记录系统登录成功后,系统被访问多少次 教学导航 教学目标 了解HTTP协议 掌握Servlet的编写 了 ...

  3. Scala_控制结构

    控制结构 if条件表达式  val x = 6  if (x>0){    println("This is a positive number") }else if(x== ...

  4. AngularJS 指令中的 replace:true

    默认值是fasle,模板会被当作子元素插入到调用此指令的元素内部. <my-directive></my-directive> myModule.directive(" ...

  5. CRC校验3种算法_转载

    //CRC16校验在通讯中应用广泛,这里不对其理论进行讨论,只对常见的3种//实现方法进行测试.方法1选用了一种常见的查表方法,类似的还有512字//节.256字等查找表的,至于查找表的生成,这里也略 ...

  6. php+sqlserver之如何操作sqlserver数据库

    https://blog.csdn.net/xia13100004562/article/details/58598872 2016年12月19日 17:15:39 阅读数:6790 前面已经基本配置 ...

  7. XML语法随记

    1.特殊字符的转义 &  ----  & <  ----  < >  ----  > "   ----  " ' ----- &ap ...

  8. Junit测试时,如何截获到Console的输出

    RT: 参考如下Junit 测试代码: 注释部分 import java.io.ByteArrayOutputStream; import java.io.PrintStream; import st ...

  9. [学习笔记]后缀自动机SAM

    好抽象啊,早上看了两个多小时才看懂,\(\%\%\%Fading\) 早就懂了 讲解就算了吧--可以去看看其他人的博客 1.[模板]后缀自动机 \(siz\) 为该串出现的次数,\(l\) 为子串长度 ...

  10. GC日志时间分析

    在GC日志里,一条完整的GC日志记录最后,会带有本次GC所花费的时间,如下面这一条新生代GC: [GC [DefNew: 3298K->149K(5504K), secs] [Times: us ...