- 浏览: 830592 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (363)
- 2010年3月 (3)
- 2010年4月 (3)
- Java (116)
- ExtJs (22)
- EJB3.0 (11)
- JQuery (28)
- SqlServer (5)
- Oracle (17)
- hibernate (21)
- struts2 (14)
- php (10)
- JavaScript (11)
- jbpm (6)
- spring (24)
- lucene (2)
- ibatis (7)
- C# (8)
- mysql (11)
- json (3)
- webservice (3)
- 设计模式 (1)
- jdbc (1)
- servlet (2)
- ice (6)
- 日常软件问题 (2)
- 生活 (2)
- iphone (1)
- rest (3)
- ruby (2)
- linux (13)
- quartz (1)
- poi (1)
- redis (13)
- memcached (4)
- nosql (2)
- tomcat调优 (1)
- 项目管理 (0)
最新评论
-
天使建站:
jquery里和数组相关的操作 附带具体的实例 ...
jquery对象数组 -
Cy0941:
$('#formId').form('submit',...) ...
easyui的form表单提交处理 -
shmily2038:
swifth 写道楼主,,你的命令写错啦,,[root@ser ...
centos直接yum安装nginx -
swifth:
楼主,,你的命令写错啦,,[root@server ~]# y ...
centos直接yum安装nginx -
随遇而安DXX:
...
REST
计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程。面向对象编程就是按现实业务一样的方式将程序代码
按一个个对象进行组织和编写,让计算机系统能够识别和理解用对象方式组织和编写的程序代码,这样就可以把现实生活中的业务对象映射到计算机系统中。
面向对象的编程语言有封装、继承 、抽象、多态等4个主要的特征。
1封装:
封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编
程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个
“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。通常情况下,只要记住让变量和访问这个变量的方
法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就基本上实现对象的封装,就很容易找出要分配到这
个类上的方法了,就基本上算是会面向对象的编程了。把握一个原则:把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一
个类中。
例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆,画圆的方法要分配给哪个对象呢?由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属
性,如果将它们在类中定义成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性,人以后只是调用圆的画圆方法、表示给圆
发给消息而已,画圆这个方法不应该分配在人这个对象上,这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对
象自己的行为(方法)来读取和改变。一个更便于理解的例子就是,司机将火车刹住了,刹车的动作是分配给司机,还是分配给火车,显然,应该分配给火车,因为
司机自身是不可能有那么大的力气将一个火车给停下来的,只有火车自己才能完成这一动作,火车需要调用内部的离合器和刹车片等多个器件协作才能完成刹车这个
动作,司机刹车的过程只是给火车发了一个消息,通知火车要执行刹车动作而已。
抽象:
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方
面,将注意力集中在与当前目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是抽象。抽象包括行为抽象和状态抽象两个方面。例
如,定义一个Person类,如下:
class Person{
String name;
int age;
}
人本来是很复杂的事物,有很多方面,但因为当前系统只需要了解人的姓名和年龄,所以上面定义的类中只包含姓名和年龄这两个属性,这就是一种抽像,使用抽
象可以避免考虑一些与目标无关的细节。我对抽象的理解就是不要用显微镜去看一个事物的所有方面,这样涉及的内容就太多了,而是要善于划分问题的边界,当前
系统需要什么,就只考虑什么。
继承:
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改
原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。
多态:
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向
哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改
源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代
码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的灵活性和扩展性。例如,下面代码中的UserDao是一个接口,它定义引用变量
userDao指向的实例对象由daofactory.getDao()在执行的时候返回,有时候指向的是UserJdbcDao这个实现,有时候指向的
是UserHibernateDao这个实现,这样,不用修改源代码,就可以改变userDao指向的具体类实现,从而导致
userDao.insertUser()方法调用的具体代码也随之改变,即有时候调用的是UserJdbcDao的insertUser方法,有时候调
用的是UserHibernateDao的insertUser方法:
UserDao userDao = daofactory.getDao();
userDao.insertUser(user);
发表评论
-
Jackson2.x通用工具类
2014-11-03 11:38 4894import java.io.IOException; i ... -
面试题
2013-02-27 09:04 1704从1加到100(考虑减少循环次数)使用数学公式 首先要知道 ... -
单例延迟实例化
2013-01-23 08:55 13221.如果出于性能的考虑而需要对实例域使用延迟初始化,就使用双 ... -
java中重载与重写的区别
2013-01-21 10:03 921首先我们来讲讲:重载(Overloading) ( ... -
自定义标签
2012-12-15 12:58 994package com.fsti.tag; import ... -
JAXB格式化beanToXml
2012-12-14 15:03 1249context = JAXBContext.n ... -
java nio缓冲器
2012-12-05 17:03 3596缓冲器仅仅是一个" 多功能 " 的数组。可 ... -
面向对象三大特性一句话概括
2012-12-04 15:58 1547封装可以隐藏实现细节,使得代码模块化; 继承可以扩 ... -
Java序列化高级认识
2012-12-04 09:13 1060将 Java 对象序列化为二进制文件的 Java 序列化技术是 ... -
面向接口编程——提升系统多态性和可扩展性
2012-12-03 14:10 1276接口的本质 接口,在表面上是由几个没有主体代码的方 ... -
面向对象之多态
2012-11-23 19:22 868多态性(polymorphisn)是允许你将父对象设置成为和一 ... -
我对"秒杀"在技术性上的一些看法
2012-11-22 11:31 1006秒杀,是指电子商务 ... -
项目编码
2012-11-16 13:59 1146看两个项目所用的编码是否一样 Java的乱码问题: ... -
SVN错误:Attempted to lock an already-locked dir
2012-11-07 09:08 1022出现这个问题后使用“ ... -
面向对象的三个基本特征
2012-11-04 08:31 1083面向对象的三个基本特征是:封装、继承、多态。 封装 封装最 ... -
预编译防sql注入
2012-11-03 20:23 1966prepareStatement会先初始化SQL,先把这个SQ ... -
Java类与对象的初始化
2012-10-19 09:33 890Java类与对象的初始化 面试的时候,经常会遇到这样的笔试题 ... -
commons bean
2012-10-19 09:15 883这是两个javabean对象 package com.bea ... -
java工具DateUtil
2012-10-12 14:42 1048//一年内的周一 public final class Da ... -
JSP自定义标签实现过程
2012-10-03 09:34 892本文将通过自定义标签显示日期为例,简单谈谈JSP自定义标签 ...
相关推荐
面向对象的特征有哪些方面文档介绍
面向对象的特征主要体现在四个方面:封装、继承、多态以及抽象。这些概念是理解Java语言以及其他面向对象编程语言的基础。 ### 封装(Encapsulation) 封装是将数据和操作数据的方法捆绑在一起,隐藏对象的属性和...
面向对象有封装、继承、多态性的特性,所以具有易维护、易复用、易扩展的特点。 类的调用需要实例化,开销较大,因此性能方面较面向过程低。 6.1.1 面向过程与面向对象 6.1 面向对象概述 主讲:重庆机电职业技术大学...
然而,在面向对象分析设计及面向对象程序设计语言方面取得丰富成果的同时,面向对象软件测试的技术研究却相对滞后,这可能限制面向对象技术的进一步发展和应用。 本文针对上述情况,探讨面向对象软件测试的理论基础...
信息隐藏能够保护数据不被外部程序随意访问和修改,而软件复用则是面向对象编程的优势之一,通过继承和接口复用已有的类和方法,可以减少重复代码的编写,提高开发效率。 下面通过一个简单的电梯类(Elevator)的...
"面向对象需求分析实例" 面向对象需求分析是软件开发过程中的重要步骤,对于软件开发人员来说,掌握面向对象的概念和方法是至关重要的。本文将对面向对象的概念和思想进行详细的介绍,并以“家庭保安系统”为实例,...
面向对象方法的基本思想包括两个主要方面:一方面是从现实世界中客观存在的事务出发来构造软件系统,并在系统的构造中尽可能地运用人类的自然思维方式;另一方面是面向对象方法比以往的方法更接近人类的自然思维方式...
Java面向对象特性是Java语言的核心特性,它包括对象与类、封装性、继承性和多态性四个主要方面。 1. 对象与类: - 对象是程序中的基本单位,代表现实世界中的实体,拥有状态(变量)、行为(方法)和标识(对象名...
Oracle数据库在面向对象特征方面的发展和进步显著,尤其是在Oracle 8i及后续版本中,它逐渐从一个纯粹的关系型数据库管理系统演变成一个支持面向对象特性的系统。面向对象数据库是数据库技术的重要发展方向,这体现...
### JAVA面向对象基础知识点详解 #### 一、面向对象编程语言的发展史 面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,其核心在于将现实世界中的对象及其属性和行为映射到软件系统中...
《面向对象程序设计》是计算机科学与技术专业的一门必修基础课程,旨在使学生掌握面向对象程序设计的基本思想、基本概念、基本原理和机制,并逐步掌握C++语言的面向对象特征和功能。本课程实习的目的是让学生能够...
Java 面向对象编程思想是 Java 编程语言的核心思想之一,通过封装、继承和多态三个特征,实现代码的重用和可维护性。 一、封装 封装是 Java 面向对象编程的三大特征之一,通过 Java 的类来实现数据和操作方法的...
首先,我们要理解面向对象的三大基本特征:封装、继承和多态。封装是将数据和操作这些数据的函数绑定在一起,形成一个独立的模块,保护了内部数据不被外部随意访问,提高了代码的安全性和可维护性。继承则是通过创建...
Java是一种广泛使用的编程语言,以其强大的面向对象特性而闻名。面向对象编程(Object-Oriented Programming,OOP)是Java的核心理念,它使得程序设计更加模块化、可维护且易于扩展。下面,我们将深入探讨Java的面向...
面向对象的特征体现在以下几个方面: 1. **对象唯一性**:每个对象都有一个独一无二的标识,确保在整个生命周期内可以唯一地识别和访问。 2. **分类性**:分类性允许我们通过抽象将具有相同属性和行为的对象归类为...
本节课程将介绍面向对象程序设计的基本概念和特征。面向对象程序设计是一种新型的程序设计范型,其主要特征是程序 = 对象 + 消息。对象是面向对象程序的基本元素,程序中的一切操作都是通过向对象发送消息来实现的。...
面向对象编程有四个主要特征:封装、继承、多态和抽象。接下来将详细介绍这几个核心概念。 1. **封装** - **定义**:封装是指将数据和操作这些数据的方法绑定在一起作为一个整体,并对外隐藏内部细节。 - **意义...
知识工程中,面向对象模型有助于知识的表示和推理。操作系统和计算机体系结构也受益于面向对象的思想,实现更高效和模块化的组件。 近年来,新兴的软件开发趋势,如基于构件开发、面向服务计算(SOA)、Agent系统和...