J2SE视频之面向对象——踏破铁鞋无觅处

原创 2016年08月28日 22:39:29

面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术展到一定阶段后的产物。这篇博客小编将和大家分享我对面向对象中一些名词的认识,如果有不合理的请指正。


一、面向过程和面向对象:

面向过程:以过程为中心的编程思想。分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。以汽车为例,对汽车的启动,停止等方法具体实现,这就是面向过程。


面向对象:以事物为中心的编程思想。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。还以汽车为例,我们生产汽车,只需购买各种零部件,然后组装就可以,不用关心零部件是怎么造出来的,也就是我们只关心我们所抽象出来的对象的属性等,而不关心该汽车的一些事件。这就是面向对象。


二、面向对象三特征:

1.封装

封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。该逻辑单元负责将所描述的属性隐藏起来,外界对客体内部属性的所有访问只能通过提供的用户接口实现。只要用户接口不改变,任何封装体内部的改变都不会对软件系统的其他部分造成影响。良好的封装能减少耦合,不至于,车轮胎坏了,再换辆新车。

生活中的小例子比如说汽车的轮胎坏了,我再换一个,结果并没影响整辆车的行驶,这就是封装,封装了轮胎的材质和它的滚动的方法,封装好了之后,将轮胎通过一个接口将轮胎安装在汽车上,这样即使轮胎换了一个,也不会对车的行驶造成影响。这个和分层思想很接近。


2.继承

继承有点分类的感觉,比如,猫和狗都属于动物,但又不全一样。如果子类继承与父类,第一,子类拥有父类非private的属性和功能;第二,子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;第三,子类还可以以自己的方式实现父类的功能(方法重写)。

不用继承的话,如果要修改功能,就必须在所有重复的方法中修改,代码越多,出错的可能就越大,而继承的优点是,子类公共的部分放在了父类,使代码得到了共享,这就避免了重复。


3.多态

比如猫类和狗类都继承于动物类,动物类中有个跑的方法run(),但猫有猫的跑法,狗有狗的跑法,多态表示猫和狗可以执行相同的动作,但要通过他们自己的实现代码来执行。这就是多态。

三必要条件:

(1)继承

(2)重写

(3)父类引用指向子类对象


例:子弹与飞机:我们的目的是将子弹与飞机封装起来,把画面上有的飞机与子弹画出来。

方案1.拿出每个来,判断,是子弹,画子弹,是飞机画飞机

方案2.设计一个父类,其中定义一个方法draw,子弹和飞机都继承父类,直接调父类的draw方法即可


可扩展性

主建筑建好,将来加一些其他建筑,尽量不要去修改主建筑,盖厨房,直接在主建筑旁边建,我不能说把房子拆了重盖,这样谁也不会同意的。这就是可扩展性。这也体现了开闭原则,对修改关闭,对扩展开放。


三、面向对象思考过程?

1.首先确定用哪个对象;

2.类和对象应该有哪个属性,哪个方法;

3.类与类之间有什么关系


四、对象和类

对象:一切事物皆对象,就是可以看到,听到,尝到或闻到的东西。对象可看成是静态变量(成员变量)和属性(方法)的载体。

类:具有相同的属性和功能的对象的抽象的集合。所有类都有构造方法。他的使用很简单,就实例化一下就可以了。


五、为什么用对象?

1.面向对象的编程——一组对象互相配合通过沟通完成特定功能

2.对象都有对外服务的接口——通过继承可以复用

3.对象隐藏内部服务的实现——通过聚合可以复用

4.面向对象更加容易使我们达到这些年来苦苦追求的境界——维护和替换更加方便

5.组件——比对象更高的层次上的抽象


六、对象的创建和使用

1.必须使用new

2.用对象引用成员变量或来引用对象的成员变量

3.使用对象引用方法来调用对象的方法

4.同一类的每个对象有不同的成员变量存储空间

5.同一类的每个对象共享该类的方法


七、抽象类、接口类

抽象类:abstract修饰,需要注意的:

1.抽象方法一定要重写

2.抽象类不能被实例化

3.含抽象方法的类一定声明为抽象类

例子:



接口类:抽象方法和常量值的定义的集合,是特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

特性:

1.可多重实现。

2.java接口中声明的属性默认为public static final的,也只能是public static final的。

3.只能定义抽象方法,默认public ,只能是public的。

4.可继承其他接口,并添加新的属性和抽象方法。


有趣的小例子:让猫飞

猫不能飞,但是我想实现让猫飞,所以我实现了飞这个接口,这个飞类便是接口类。


有关接口类需要注意:

1.多个无关的额类可以实现同一个接口

2.一个类可以实现多个无关的接口

3.与继承关系类似,接口与实现类之间存在多态性

4.实现了接口,就必须写出接口所有的方法


八、构造方法

构造方法又叫构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new的时候调用。比如:Cat cat=new Cat();new后面的Cat()其实就是构造方法。每个类都有构造方法,如果不编码则系统默认生成空的构造方法,如果编码了,默认的机会失效。

继承中的构造方法:

  1. 调子类对象必须先调父类构造方法(不会产生父类对象)
  2. 子类可在自己的构造方法中使用super(argument_list)调用基类的构造方法
  3. 系统默认调用基类无参数的构造方法
  4. 子类中无显式调用基类构造方法,基类中又没有无参的构造方法,则编译出错。


九、重载、重写、重构

重载:同名的方法可传入不同的参数,这样,系统根据传入的参数选择执行不同的构造方法;

重写:子类都继承父类的方法,猫和狗,谁有谁的叫声,所以就要重写;

重构:动物们参加叫声比赛,刚开始写好了代码,后来小牛和小羊来报名参加比赛,这时按照原来的想法,让他们都继承Animal类就可以了,可是写完发现除了叫声不同,其他代码没有区别,这时就要想想把重复的代码放到父类Animal类中了,子类单独将声音重写即可,这就叫重构。


十、内存分析贯穿始终

创建对象是使用构造函数初始化对象的成员变量,new时,调完构造方法,方法分配的局部变量内存消失(对象被垃圾回收)。这块还不是很熟悉,正在学习中。。。


总结:

以前总结的面向对象很少,这次把一些基础都总结了下,有些可能不合理,欢迎您的指正!


感谢您宝贵的时间!



版权声明:本文为博主原创文章,未经博主允许不得转载。

J2SE视频之面向对象

前言 面向对象是我们编程的基础,也是我们要追求的目标。面向对象,首先就是将对象抽象出来,对象通过属性和方法来分别对应事物所具有的静态属性(成员变量)和动态属性(方法)。 具体内容 构造函...
  • ningmengbaby
  • ningmengbaby
  • 2017年12月10日 11:43
  • 167

java学习路线图-----java基础学习路线图(J2SE学习路线图)

安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充。 JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java...
  • duruiqi_fx
  • duruiqi_fx
  • 2016年07月22日 19:58
  • 8277

J2SE之重学面向对象

J2SE之重学面向对象                 给自己放了一个长长的假期,感觉以前学到的有关软件编程的好多知识已经淡忘了,正好现在借着学习J2SE的机会重新复习一下,也让自己的记忆更加深...
  • m15732622413
  • m15732622413
  • 2016年09月05日 18:59
  • 1351

[J2SE]推荐几个比较好的的java系列视频

v512工作室_Java高端培训系列视频》(Java JSP Servlet Struts Struts2 Hibernate Spring Eclipse Compass Lucene)12月16日...
  • david_520042
  • david_520042
  • 2012年01月10日 13:04
  • 1611

J2SE之面向对象

J2SE面向对象这一块的内容还是较为简单的。之前面向对象的知识已经有了一定的了解与深入。到了Java这一块,换汤不换药。 在这里我将其与C#进行对比,分为新知识与就旧知识。图片比文字更加直观生动形象容...
  • u013037201
  • u013037201
  • 2015年08月30日 11:28
  • 823

【J2SE视频】-JDK安装

【Java历史】          Sun公司在1998年发表JDK1.2版本的时候, 使用了新名称Java 2 Platform,即“Java2平台”,修改后的JDK称为Java 2 Platf...
  • u013028876
  • u013028876
  • 2015年08月30日 14:48
  • 959

Java自学必备的视频教学之面向对象

面向对象是以对象为单位,通过调度组合不同的对象来完成某一个事情。是一种编程思想,是一种思考问题的思维方式。 怎样建立面向对象思维方式: 1、       先整体,再局部,就像我们 2、     ...
  • xx666zz
  • xx666zz
  • 2017年11月13日 17:26
  • 135

【C#】视频总结——真正意义上学习的面向对象编程

经过这几天的卓绝奋斗,终于是把C#的视频看完了,小楚老师说话很搞笑,声音很好玩,听起来还蛮有趣的。可是他的这个PPT做的真的是不忍直视,相对于前面软工和UML的PPT来说,小楚老师的PPT显得一点逻辑...
  • u013038861
  • u013038861
  • 2014年11月02日 16:28
  • 2084

面向对象---J2SE

什么是面向对象?为什么要有面向对象?    把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简...
  • yingjiebohe
  • yingjiebohe
  • 2011年12月17日 20:06
  • 607

【J2SE】——面向对象

小编我今天给大家介绍一下面向对象的知识,记得以前也讲过请看这里——【UML】面向对象技术,今天呢就相当于补充一下。 1、面向对象窍门:   (1)首先要考虑有哪些类,哪些对象   (2)这些类和对象具...
  • tengliu6
  • tengliu6
  • 2016年12月24日 16:05
  • 454
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2SE视频之面向对象——踏破铁鞋无觅处
举报原因:
原因补充:

(最多只允许输入30个字)