相信很多人都有听到,见到这么一句话:Java是一门面向对象编程的语言,但是又是否对这句话有了自己的理解呢?

  一、面向对象

  面向对象是一种新兴的程序设计方法,也可以说是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、多态等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。

  常见编程思想

  面向对象编程OOP:Object Oriented Programming,是一种以对象为基础的编程思想。主要关注“谁来做”,即完成任务的对象。典型的是Java语言

  面向过程编程OPP:Procedure Oriented Programming,是一种以事物为中心的编程思想。主要关注“怎么做”,即完成任务的具体细节。典型的是C语言

  面向切面编程AOP:Aspect Oriented Programming,基于OOP延伸出来的编程思想。主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。

  控制反转IOC:Inversion of Control,它也是一种设计思想。在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。常见于Spring框架

  二、对象

  什么是对象?

  万物皆对象(每个独立的个体都是对象,虚拟的和现实的都可以是对象)

  详细解释下:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务(即方法)组成。

  类的构造器实例化可以生成对象,一个对象的生命周期包括三个阶段:生成,使用,销毁

  三、类

  类是具有相同属性和方法的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,类实现包括两个部分:类声明和类体。其类体内部包括属性和方法两个部分

  类声明格式

  

[public][abstract|final] class className [extends superclassName] [implements interfaceNameList]{
……
}

  类体格式

class className{
[public | protected | private ] [static] [final] [transient] [volatile] type variableName;//成员变量
[public | protected | private ] [static] [final | abstract] [native] [synchronized] returnType methodName([paramList]) [throws exceptionList]{
statements
}//成员方法

  四、Java面向对象的基本特性

  1.封装

  封装性就是隐藏对象的属性和实现细节,仅对外公开接口。

  优点:1)便于使用者使用(使用时无需关心内部如何实现),也防止了使用者错误修改系统属性;

        2)有助于建立各个系统之间的松耦合关系,提高了软件的可重用性,减少了代码冗余问题;

     3)具有安全性

   2.继承

  Java的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类(有的也称其为基类、超类),子类继承父类的属性和方法,并能根据自己的需求扩展出新的属性和方法

  优点:提高了代码的可复用性

   3.多态

  Java 多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作

  优点:不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态

   4.抽象(有部分人说java有三大特性,也有部分人说有四大特性)

  抽象就是有点模糊,还没确定好的意思。

  优缺点:抽象类或接口定义大概需要的方法或属性,具体实现由使用他的继承类(或实现类)完成实现

    

第三记 Java面向对象的更多相关文章

  1. 2017-2018-2 20165318 实验三《Java面向对象程序设计》实验报告

    2017-2018-2 20165318 实验三<Java面向对象程序设计>实验报告 一.实验报告封面 课程:Java程序设计        班级:1653班        姓名:孙晓暄  ...

  2. 实验三《Java面向对象程序设计》实验报告

    20162308 实验三<Java面向对象程序设计>实验报告 实验内容 XP基础 XP核心实践 IDEA工具学习 密码学算法基础 实验步骤 (一)Refactor/Reformat使用 p ...

  3. 2017-2018-2 20165236 实验三《Java面向对象程序设计》实验报告

    2017-2018-2 20165236 实验三<Java面向对象程序设计>实验报告 一.实验报告封面 课程:Java程序设计            班级:1652 姓名:郭金涛     ...

  4. 20155201 实验三《Java面向对象程序设计》实验报告

    20155201 实验三<Java面向对象程序设计>实验报告 一.实验内容 XP基础 XP核心实践 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门 ...

  5. 20155218 《Java程序设计》实验三(Java面向对象程序设计)实验报告

    20155218 <Java程序设计>实验三(Java面向对象程序设计)实验报告 一.实验内容及步骤 (一)编码标准 在IDEA中使用工具(Code->Reformate Code) ...

  6. 20165301陈潭飞2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告

    2017-2018-2 20165301 实验三<Java面向对象程序设计>实验报告 一.敏捷开发与XP实践-1 实验要求: 在IDEA中使用工具(Code->Reformate C ...

  7. 三、java面向对象编程_1

    目录 一.对象和类的概念 二.对象和引用 1.对象 2.成员变量 3.引用 三.java类的定义 四.构造函数(构造方法) 五.内存分析 一.对象和类的概念 1.对象 对象用计算机语言对应问题域中事物 ...

  8. 2018-2019-2 20175230 实验三《Java面向对象程序设计》实验报告

    目录 实验三 实验三 敏捷开发与XP实践 实验内容 实验要求 实验步骤 (一) 编码标准 (二)敏捷开发与XP (三)敏捷开发与XP 实验体会 实验三 实验三 敏捷开发与XP实践 实验内容 1.XP基 ...

  9. 2017-2018-2 20165234 实验三 《Java面向对象程序设计》实验报告

    实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考 http://www.cnblogs. ...

随机推荐

  1. linux python3换pip 源

    linux下python3 pip 安装模块 # python3 -m pip  install pymysql 1)检查pip.conf文件是否存在    >> cd ~    > ...

  2. 判断url

    //判断url地址 isUrl(str){ let reg = /[0-9a-zA-z]+.(html|htm|shtml|jsp|asp|php|com|cn|net|com.cn|org)$/; ...

  3. ivew Upload 上传图片组件

    1. 先展示一个效果图 2.代码详解 <!-- 封面缩略图 --> <div class="pop-up-div pic"> <div class=& ...

  4. KiCAD绘制器件内部逻辑符号库

    KiCAD绘制器件内部逻辑符号库 像比较器,运放这些器件,里面是由多个相同的part组成,有时候我们只需要用到其中一个或者某几个,又或者是为了在原理图中更清楚的表达出逻辑关系,需要单独绘制内部的逻辑符 ...

  5. Codeforces 1148F Foo Fighters 贪心

    题意:给你若干个数对,每个数对有两个属性,一个属性是权值,一个属性是位标志,假设这些数对的的权值和是sum,你可以选择一个二进制数s,与所有的数对的位标志按位与,如果按位与之后的位标志有奇数个1,那么 ...

  6. delphi和C# 保存exe文件到数据库

    Delphi: procedure TForm1.Button1Click(Sender: TObject); var strSQL, sfilename: string; MStream: TMem ...

  7. 【leetcode】955. Delete Columns to Make Sorted II

    题目如下: We are given an array A of N lowercase letter strings, all of the same length. Now, we may cho ...

  8. Unity HOME

    { https://unity.com/cn?_ga=2.134655153.1528856053.1574826116-818341090.1574826116 }

  9. demo BaseDao随笔,hibernate框架

    /** * 增加entity * * @param Object对象 * @throws Exception */ public <T> void save(T ob) throws Ex ...

  10. GERALD07加强版题解

    题目描述: N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. 输入格式: 第一行四个整数N.M.K.type,代表点数.边数.询问数以及询问是否加密. 接下来M行,代表图 ...