[置顶] 面向对象思想

 

1、基本概念

1.1 类和对象初探

:描述了具有相同特性(属性)和相同行为(操作方法)的对象。在程序中,类就是数据类型。

1.2 内置数据理性与函数

计算机在存储数据时必须跟踪3个基本属性:

1)        信息存储在何处;

2)        信息的值是多少;

3)        存储的信息是什么类型的。

变量:在值上可以发生变化的量;常量:不发生变化的。

函数:实现某种功能的黑匣子。1、我传给你的是什么信息;2、你对信息做了哪些处理;3、你返回给我的信息是什么。

Eg:

int fnAddNum(int a,int b)

{

         returnx+y;

}

:return的含义是向调用者返回紧跟在他后面的信息

2、深入讨论面向对象

2.1 类型的内部细节

面向对象的编程语言的最大特点是可以根据需求编写自己所需的数据类型。

对象  具有           所描述的属性和方法。

(电视机具有电视原理图  所描述的属性和方法)

类是属性与方法的集合。而这些属性和方法可以定义为private,public或者是protected。

为了实现数据的封装,提高数据的安全性,我们一般会把类的属性申明为private,而把类的方法申明为public。

Eg:

//员工类

public class Employee

{

         privatestring name;

         privateage int;

         privatechar sex;

        

         publicvoid setName(String strName)//修改员工的姓名

         {

                   name=strName;

         }

        

         publicstring getName()//获取员工姓名

         {

                   returnname;

         }

}

修改姓名《—setName()《—getName()

 

Init()方法是完成初始化操作的;

Start()是用来启动浏览器的主线程;

Paint()是用来显示Apple的界面。

 

每位员工(对象)都有一份午饭(属性),但所有的员工(对象)只有一个微波炉(方法)。所有的员工(对象)都可以用这个微波炉(方法)来加热自己的午饭(属性)的冷热。为此,方法只有一份,供所有的对象使用,而属性是每个对象一份。

2.2 深入讨论函数
2.2.1 构造函数

构造函数是对属性的初始化。

特征:

是唯一没有返回值的函数;

它的名称必须要与类名称相同;

它必须被申明为public;

可以对它进行重载;

它在创建对象时会进行自被调用。

功能:

对类中的属性进行初始化。

Eg:

//员工类

public class Employee

{

         privatestring name;

         privateage int;

         privatechar sex;

        

         //构造函数

         publicEmployee(string strName,int intAge,char chrSex)

         {

                   name=strName;

                   age=intAge;

                   sex=chrSex;

         }

}

如何创建呢:lucy=new Employee(“Lucy”,14,’M’)

2.2.2 重载构造函数

1、函数重载是一个类中申明了多个同名的方法,但有不同的参数个数和参数类型。

2、函数重构是指子类中申明与父类中同名的方法,从而覆盖了父类的方法。

1、重载

Eg:

int intA,intB,intC;

intA=10;

intB=20;

intC=intA+intB;

 

string strA,strB,strC;

strA="Hello ";

strB="World";

strC=strA+strB;

说明:同一个操作符“+”,实现了不同的功能。-------操作符重载

2.2.3 初始化与赋值

         初始化与赋值是两个不同的概念。

把一个变量或者函数申明为static(静态),其目的是为某个类的所有对象的属性或方法分配单一的存储空间。

静态变量是属于类的,所有的对象都可以通过方法去修改它,而下一次修改是基于上一次的。

静态函数也是属于类的,调用的时候可以使用类名直接调用。

2.3 继承(C#:,Java:extends)

代码重用

子类拥有父类所拥有的方法和属性。

任务描述 本关主要考查面向对象分析的基本思想以及类图(Class diagram)的构建,能够从问题域中发现对象,建立对象的类。通过本关的学习,能够培养学生业务系统的抽象能力、建模能力。 相关知识 类图简单介绍 1.类图分为三部分,依次是类名、属性、方法 2.以<<开头和以>>结尾的为注释信息 3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。 4.带下划线的属性或方法代表是静态的。 类图关系 1.依赖(Dependence) 依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。类上面的图例中:People类依赖于Book类和Food类,Book类和Food类是作为类中方法的参数形式出现在People类中的。 2.关联(Association) 体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的。 3.聚合(Aggregation) 聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系,他们之间是“整体-个体”的相互关系。 4.组合(Composition) 相比于聚合,组合是一种耦合度更强的关联关系。存在组合关系的类表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在时没有任何意义。在下图的例子中,People与Soul、Body之间是组合关系,当人的生命周期开始时,必须同时有灵魂和肉体;当人的生命周期结束时,灵魂肉体随之消亡;无论是灵魂还是肉体,都不能单独存在,他们必须作为人的组成部分存在。 5.继承(Generalization) 继承表示类与类(或者接口与接口)之间的父子关系。在java中,用关键字extends表示继承关系。UML图例中,继承关系用实线+空心箭头表示,箭头指向父类。 6.实现(Implementation) 表示一个类实现一个或多个接口的方法。接口定义好操作的集合,由实现类去完成接口的具体操作。在java中使用implements表示。UML图例中,实现关系用虚线+空心箭头表示,箭头指向接口。 闯关要求 使用starUML工具,请画出酒店客房类的属性和操作。属性有id、hotelId(注意拼写)、status。操作有酒店客房的增删改查。 请注意: 若您的文件中有与本次测评无关的类,请在Model Explorer中将本次测评的类置顶(选中此类,右键,点击Move Up) 本案例对象分析表 对象 属性 操作 客户 id(String) saveUserInfo,getHotelInfo,cancelOrder,getOrderInfo,submitOrder,assessHotelService 酒店客房 id(String)、hotelId(String)、status(int) addRoom,deleteRoom,updateRoom,getRoom 软件管理员 id(String) updateUserInfo(userId) 酒店工作人员 id(String) updateRoomInfo,carryUserOrder,maintainHotelInfo 软件营销人员 id(String) analysisOrderInfo,cancelOrder 订单 id(String) roomId(String) status(int) addr(String) amount(int) orderPrice(decimal) addOrder, deleteOrder, updateOrder, getOrder 软件营销人员 id(String) analysisOrderInfo,cancelOrder
09-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值