面向对象的基本特征

1.封装性

封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:

  ◇ 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。

  ◇ 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。

  封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的"交叉感染",使软件错误能够局部化,大大减少查错和排错的难度。

2.继承性

特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。

一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。

在java语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(subclass)。

3.多态性

对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:"几何图形"的"绘图"方法,"椭圆"和"多边形"都是"几何图"的子类,其"绘图"方法功能不同。 面向对象程序设计方法

  OOA-Object Oriented Analysis     面向对象的分析

  OOD-Object Oriented Design      面向对象的设计

  OOI-Object Oriented Implementation  面向对象的实现

Java语言的面向对象特性

类是java中的一种重要的复合数据类型,是组成java程序的基本要素。它封装了一类对象的状态和方法,是这一类对象的原形。一个类的实现包括两个部分:类声明和类体

1.类声明:

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

  {……}

  其中,修饰符public,abstract,final 说明了类的属性,className为类名,superclassName为类的父类的名字,interfaceNameList为类所实现的接口列表。

2.类体

  类体定义如下:

  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}                 //成员方法

  }

3.成员变量

  成员变量的声明方式如下:

  [public | protected | private ] [static]

  [final] [transient] [volatile] type

  variableName;                 //成员变量

  其中,

  static: 静态变量(类变量);相对于实例变量

  final: 常量

  transient: 暂时性变量,用于对象存档,用于对象的串行化,见对象的串行化一节

  volatile: 贡献变量,用于并发线程的共享

 4.成员方法

  方法的实现包括两部分内容:方法声明和方法体。

  [public | protected | private ] [static]

  [final | abstract] [native] [synchronized]

  returnType methodName([paramList])

  [throws exceptionList]            //方法声明

   {statements}                //方法体

  方法声明中的限定词的含义:

  static: 类方法,可通过类名直接调用

  abstract: 抽象方法,没有方法体

  final: 方法不能被重写

  native: 集成其它语言的代码

  synchronized: 控制多个并发线程的访问

  ◇ 方法声明

  方法声明包括方法名、返回类型和外部参数。其中参数的类型可以是简单数据类型,也可以是复合数据类型(又称引用数据类型)。

  对于简单数据类型来说,java实现的是值传递,方法接收参数的值,但不能改变这些参数的值。如果要改变参数的值,则用引用数据类型,因为引用数据类型传递给方法的是数据在内存中的地址,方法中对数据的操作可以改变数据的值(上海尚学堂java培训原创,请多关注,后续JAVA相关技术文章陆续奉上)。

Java语言中的面向对象特性的更多相关文章

  1. Java语言中的面向对象特性总结

    Java语言中的面向对象特性 (总结得不错) [课前思考]  1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类?  2. 面向对象编程的特性有哪三个?它们各自又有哪些特性?  3. 你知 ...

  2. Java语言中的面向对象特性:封装、继承、多态,面向对象的基本思想(总结得不错)

    Java语言中的面向对象特性(总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知道jav ...

  3. Golang 入门系列(五)GO语言中的面向对象

    前面讲了很多Go 语言的基础知识,包括go环境的安装,go语言的语法等,感兴趣的朋友可以先看看之前的文章.https://www.cnblogs.com/zhangweizhong/category/ ...

  4. 【转载】【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态

    [游戏开发]在Lua中实现面向对象特性——模拟类.继承.多态   阅读目录 一.简介 二.前提知识 三.Lua中实现类.继承.多态 四.总结 回到顶部 一.简介 Lua是一门非常强大.非常灵活的脚本语 ...

  5. 总结JAVA语言的十大特性

    JAVA语言的十大特性 1.简单 Java语言的语法简单明了,容易掌握从,而且Java语言是纯面向对象的语言. Java语言的语法规则和C++类似,从某种意义上来讲,Java原因是由C语言和C++语言 ...

  6. C++对C语言的非面向对象特性扩充(3)

    今天要讲的是C++作用域运算符"::",强制类型转换的扩充,C++中相对于C中malloc和free函数的运算符new和delete,以及C++对C的一个重要扩充:引用(refer ...

  7. 使用示例带你提前了解 Java 9 中的新特性

    使用示例带你提前了解 Java 9 中的新特性 转载来源:https://juejin.im/post/58c5e402128fe100603cc194 英文出处:https://www.journa ...

  8. 2018.3.5 Java语言基础与面向对象编程实践

    Java语言基础与面向对象编程实践 第一章 初识Java 1.Java特点 http://www.manew.com/blog-166576-20164.html Java语言面向对象的 Java语言 ...

  9. JAVA语言中的修饰符

    JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...

随机推荐

  1. php 微信自定义分享接口

    <?php class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appS ...

  2. Eclipse常用快捷键--摘录他人

    Eclipse常用快捷键 1几个最重要的快捷键 代码助手:Ctrl+Space(简体中文操作系统是Alt+/) 快速修正:Ctrl+1 单词补全:Alt+/ 打开外部Java文档:Shift+F2显示 ...

  3. ieee文献免费下载办法

    sci-hub是个神奇的存在,但突然有短时间不能用了,搜索很久,找到了:https://www.zhihu.com/question/68333471/answer/276287163 这个网址会实时 ...

  4. 安装jdk设置环境变量(win10)

    jdk地址: (懒得去官网找,就这个吧,反正也是玩玩) 没标的都是下一步哈 配置环境变量: 1. 新建 JAVA_HOME 值为 F:\java\jdk 安装的位置(第三张图 的那个路径) 2. 新建 ...

  5. CentOS7 查看操作系统版本信息

    CentOS 查看操作系统版本信息1.使用cat /proc/version .uname 查看内核版本 [root@CentOS7 ~]# cat /proc/version Linux versi ...

  6. 解决Dynamic Web Module 3.1 requires Java 1.7 or newer

    需要检查和确认Eclipse项目属性的java版本和本地jdk的版本一致,以1.7版本为例: 1. 在 Java Build Path的libraries中修改对应的JDK版本为1.7: 2.在Jav ...

  7. java常用集合浅层解析-面试必备

    ArrayList 1.动态数组 2.线程不安全 3.存储空间连续 4.查询快,添加删除慢 构造方法 /** + Shared empty array instance used for defaul ...

  8. tomcat设置开机自动启动

    windows下: 1 命令cmd 进入    磁盘: 回车 2 tomcat\bin目录   回车 3  service.bat install   (注:tomcat一定要有service.bat ...

  9. Laravel 中使用 JWT 认证的 Restful API

    Laravel 中使用 JWT 认证的 Restful API 5天前/  678 /  3 / 更新于 3天前     在此文章中,我们将学习如何使用 JWT 身份验证在 Laravel 中构建 r ...

  10. core的微服务相关

    网关是ocelot consul 服务发现 配置中心apollo