欢迎来到天天文库
浏览记录
ID:52120635
大小:1.02 MB
页数:46页
时间:2020-04-01
《对象与类java基础第6章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、对象与类本章目标类和对象的概念使用现有类自定义类型对象的内存模型方法的重载static单例模式面向对象举例说明把大象放冰箱面向过程关心怎么做,即具体的实现步骤、实现细节第一步把冰箱门开开、第二步把大象装冰箱、第三步把冰箱门带上面向对象关心这个步骤涉及几个对象,每个对象都能做什么。至于怎么做封装在类内部的方法中(方法是面向过程的,由类设计者关心),使用者是不用关心细节的,只关心做什么即可。需求涉及大象和冰箱,要把大象放冰箱。面向对象好处使用者不用关心任务的实现细节,便于理解和使用,同时提高了程序的可读性、可维护
2、性、可重用性,便于大型软件的开发,解决了面向过程开发引起的软件危机。面向对象的设计思想面向对象的基本思想是,从现实世界中客观存在的事物(对象)出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式(对象和对象之间是有关系的)面向对象更加强调运用人类在日常的思维逻辑中经常采用的思想方法与原则,如抽象、分类、继承、聚合、多态等对象和类的概念对象:是用计算机语言对现实世界中客观存在的具体事物的描述,对象通过“属性”和“操作”来分别对应该事物所具有的“属性”和“行为”。万物皆对象类:是具有相同属性和相同操作
3、的对象的集合,类中定义了这一类对象应该具有的属性和行为,它是对象的抽象。类可以看成一类对象的模板,是一个概念。对象是类的一个具体实例,是具体的实现。类图简介使用类图描述类用于分析和设计“类”直观、容易理解+name:String+health:int+love:int+strain:StringDog+print():void“+”:public“-”:private类名返回值类型类型属性名参数:名字:类型,名字:类型方法名对象和类类之间的关系类之间的关系包括:关联、泛化、依赖、实现关联关系又有两个特例:组合
4、和聚合对象关系泛化关联依赖集合一般组合聚合类(对象)之间的关系1关联关系(hasa)客观世界中的两个具体事物存在着千丝万缕的联系,所以我们把两个事物抽象到软件系统中时,两个类(对象)必然也存在一些联系,这种联系在面向对象编程中叫做关联关系关联有方向性如果一个类单方向地访问另一个类,则被称为单向关联;如果两个类都可以互相访问,则称为双向关联单向关联用类A类B表示,表示类A能访问类B双向关联用符号表示关联具有多重性1:1、1:N、M:N类(对象)之间的关系1关联包括两个特例聚合表示整体和部分的关系,但部分可以属于
5、多个整体聚合用空心菱形表示,空心菱形一端表示整体组合表示整体和部分的关系,但该部分只能属于一个整体组合用实心菱形表示,实心菱形一端表示整体类(对象)之间的关系2泛化(继承)关系(is-a)一般和特殊的关系子类is-a特殊的父类类(对象)之间的关系4依赖关系如果类B的改动会导致类A的改动,则类A依赖于类B。和关联关系比,依赖关系表述的两者之间的关系比较弱,常表现为局部变量、方法参数、静态方法调用。类(对象)之间的关系3实现关系现实世界中可以定义一组规范(属性、行为),并对规范进行具体实现,比如计算机主板上的US
6、B接口就是一种规范,不同厂商的鼠标实现这种规范才能够使用,同样软件系统中也有这种关系,叫做实现关系。内容进度类和对象的概念使用现有类自定义类型对象的内存模型方法的重载static单例模式使用现有类JavaAPI提供了一些现成的类供我们使用,我们可以使用这些现有类来创建实例(对象),比如StringObject包装类Integer、Long…集合类等等使用现有类创建对象类名对象引用变量名=new类名();Strings1=newString(“Hello,World”);Objecto=newObject();
7、内容进度类和对象的概念使用现有类自定义类型对象的内存模型方法的重载static单例模式类的定义除了使用现有API提供的类库,我们也可以自定义类之前我们说过类是具有相同属性和相同行为的对象集合,属性就是成员变量,行为就是方法,所以类的定义主要有两方面组成成员变量方法格式class类名{//成员变量定义;//方法定义;}约定俗称的命名规则类名的首字母大写变量名和方法名的首字母小写采用骆驼命名标识类的定义成员变量定义[修饰符]type属性名[=默认值];private/publicintid=123;可分为实例变量
8、和类变量(也叫静态变量)实例变量隶属于对象本身,不用static修饰,每个对象拥有自己独立的实例变量类变量隶属于类,用static修饰,该类的所有对象共用方法定义[修饰符][修饰符]返回值方法名([参数列表]){代码块;}publicintgetId(){returnid;}演示示例1:Person类定义封装为什么使用对于属性信息隐蔽,安全例如学生的性别不能修改,不能让用户访问学生对象的性别属性,这
此文档下载收益归作者所有