5-类和对象
- 格式:ppt
- 大小:2.14 MB
- 文档页数:56
什么是⾯向对象、对象是什么、什么是类、如何使⽤对象、类和对象的关系⾯向对象⼀、⾯向对象 概念:⾯向对象是⼀种编程思想,使⽤编程语⾔解决现实问题的⼀种思路。
分类: ⾯向过程: C 语⾔ ⾯向对象: Java ⾯向对象的思想: ⾯向对象的思想: ⾯向过程的思想:⾃顶向下 逐步执⾏。
---> 当解决⼀件事情的时候,⾸先想到的是我该怎么去做⾯向对象思想:以对象为中⼼,使⽤对象调⽤其功能。
---> 当解决⼀件事情的时候,⾸先想到的是我该让谁帮我做。
想到的谁 ---> 对象 对象:现实⽣活中存在的真实的事物都是对象,Java 中有⼀句名⾔: 万物皆对象,⼤到宇宙、⼩到夸克在Java 的世界中都可以看成对象。
提起对象,就需要提起另⼀个概念——类。
类是对象的模板,对象是类的实例。
⼆、类 概念: 将具有相同特征的⼀类事物的共性进⾏抽取(抽取的过程叫做抽象),形成的⼀个概念叫做类。
类的抽象: 1. 怎么去描述⼀个事物,从哪些维度进⾏描述? 这个事物具有什么 ---> 属性 这个事物会做什么 ---> ⾏为 2. 怎么去描述⼀类事物的共性? 这些事物具有什么 ---> 属性 这些事物会做什么 ---> ⾏为 类和对象的关系: 类是对象的模板 对象是类的实例 类的定义: 概述: 属性 : 使⽤成员变量来进⾏描述 ⾏为 : 使⽤成员⽅法进⾏描述 语法:关键词:class语法:public class 类名{} 成员变量 定义位置:类中⽅法外 语法: 数据类型 变量名; / 数据类型 变量名 = 初始值;作⽤域:⾄少在本类 默认值: 和数组元素的默认值是⼀样的 基本数据类型 整数类型 0 ⼩数类型 0.0 字符类型空字符 布尔类型 false 引⽤数据类型 null 定义的注意事项 1. 在同⼀个类中不能定义两个同名的成员变量 2. 在同⼀个类中成员变量可以和局部变量可以重名,但是在访问的时候,局部变量优先。
这样子同你说吧。
类,他就是讲的一个种类。
不懂?OK,比如人类。
这个“人”他们都有思维,都有眼睛鼻子等等共同的特征。
他就叫做一个类。
叫做“人类”。
还有“植物类”,这个“植物”它们都有根,叶子等等共同的特征。
它就叫做一个类。
“张三”是个人,他只是人类中的一个特例,我们就把他叫做一个具体的对象。
也就是C#中的对象。
一句话说完了,类都是一群对象的集合,里面包含了N多的对象。
而对象只是类的一个特例。
比如学校里有1000个学生,然后校长在广播里面喊:请张三同学到校长室来一下。
这时候“李四,王五,赵六”等等听到广播,就知道,校长叫的是张三,而不是自己。
所以张三李四王五这些都是这个学生类的一些特例(也就是一个个对象),他们除了有眼睛鼻子思维这些共同的特征之外,还有其他不同的地方,例如名字就是不同的。
这样子比较通俗了吧。
实例就是“张三”这个名字。
比如Student stu = new Student();stu就是一个实例。
这个stu他就已经被实例化了。
表示他是这个Student类里的一个对象。
new他是为了把他实例化,让电脑内存知道,现在已经存在一个这样的对象了,然后你就可以使用这个对象了。
我想大家都吃过月饼,不知可有人知道月饼是怎么做出来的。
做月饼是用模具的,把配好的月饼陷放进模具里一磕,拿出来就是一个月饼了。
做铁杯子是的要用模具的,把熔化的铁的液体放在铁杯的模具里,冷却后,出来就是铁杯子了。
现在这个模具就有了类别的吧,做月饼的叫做月饼类模具,做铁杯的叫做铁杯类模具,程序中的类就和这个类是一个意思的。
人类,植物类,猪类,狗类,猫类,猴子类。
都和程序中的类是一个意思。
可见,一个类就是一种东西,它和其他类的东西是不一样的,人类和猪类是一样的吗?说这类有何意义呢?大家都知道月饼类模具是做月饼的,这类的模具就是做月饼的,把原料放进模具不就能出来月饼吗?出来这个月饼,我们叫什么?就叫月饼!更高度点叫什么呢?叫对象!记住啊,把月饼的料放进月饼的模具里,能做出来月饼,这个月饼就是对象!而把料放进模具里,到做出来这一个过程,我们就称为:对象的实例化!至此我们要搞清三个问题:一,类:就是那个月饼的模具二,对象:就是那个月饼三,对象的实例化:就是把料放进模具里到成品出来这一过程那么这个类能吃吗?不能,因为它是模具啊,只有当实例化后我们才能吃这个类产生出来的对象也就是月饼。
Java 类与对象选择题练习附加答案解析1. 以下关于Java类的描述,正确的是:A. 类是对象的实例。
B. 类可以包含属性和方法。
C. 类不能继承其他类。
D. 类只能包含一个方法。
答案: B。
解析:类是对象的蓝图或模板,可以包含属性(成员变量)和方法(成员函数)。
2. 在Java中,要创建一个类的对象,应使用哪个关键字?A. newB. createC. instantiateD. make答案: A。
解析:在Java中,使用`new`关键字来创建类的对象。
3. 在以下关于构造方法的描述中,正确的是:A. 构造方法必须有返回类型。
B. 构造方法的名称必须与类名相同。
C. 构造方法可以是静态的。
D. 构造方法可以重载但不能覆盖。
答案: B。
解析:构造方法的名称必须与类名相同,并且没有返回类型(包括void)。
构造方法可以重载(多个同名但参数不同的方法),但不能覆盖(重写父类方法)。
4. 如果`MyClass`类有一个名为`display`的方法,且`myObject`是`MyClass`类的一个实例,如何调用该方法?A. display();B. MyClass.display();C. myObject.display();D. MyClass::display();答案: C。
解析:通过对象实例`myObject`来调用类的非静态方法`display`。
5. 以下哪个选项是关于`this`关键字的正确描述?A. `this`关键字指向类的超类(父类)。
B. `this`关键字只能在静态方法中使用。
C. `this`关键字引用当前对象的实例。
D. `this`关键字用于创建新的对象。
答案: C。
解析:`this`关键字引用当前对象的实例,可以在类的方法和构造方法中使用来引用当前对象的成员变量或方法。
6. 在Java中,如果类B继承自类A,且类A是基类,则下列哪个选项是正确的?A. 类B是类A的超类。
三、名词解释1、软件:在计算机系统中,与硬件互相依存旳逻辑部件,它由程序、数据及有关文档构成。
2、软件工程:是指导计算机软件开发和维护旳工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件,把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来。
3、数据字典:是有关数据旳信息旳集合,也就是对数据流图中包括旳所有元素旳定义旳集合。
4、模块化:是把程序划提成若干个模块,每个模块完毕一种子功能,把这些模块集总起来构成一种整体,也许完毕指定旳功能满足问题旳需求。
5、类:对具有相似数据和相似操作旳一组相似对象旳定义。
6、软件危机: 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
7、软件维护:在软件已经交付使用之后,为了改正错误或满足新旳需要而修改软件旳过程.8、继承:子类自动地共享基类中定义旳数据和措施旳机制.9、投资回收期: 就是使合计旳经济效果等于最初投资旳需要旳时间。
10、构造化分析措施: 就是面向数据流自顶向下逐渐求精进行需求分析旳措施。
11、软件旳生命周期:一种软件从定义、开发、使用和维护,直到最终被废弃所经历旳一系列时期。
12、投资回收期:就是使合计旳经济效果等于最初投资旳需要旳时间。
13、构造化分析措施:就是面向数据流自顶向下逐渐求精进行需求分析旳措施。
14、模块:数听阐明、可执行语句等程序对象旳集合,它是单独命名旳并且可通过名字来访问。
15、宽度:是软件构造内同一种层次上旳模块总数旳最大值。
16、事务流:数据沿输入通路抵达一种处理,这个处理根据输入数据旳类型在若干个动作序列中选出一种来执行。
此类数据流应当划分为一类特殊旳数据流,称为事务流。
17、耦合:衡量不一样模块彼此间互相依赖旳紧密程度。
18、事件:是某个特定期刻所发生旳事情,它是对引起对象从一种状态转换到另一种状态旳现实世界中旳事件旳抽象。
19、函数重载:指在同一作用域内旳若干个参数特性不一样旳函数可以使用相似旳函数名字。
实验5:Java类与对象一、实验目的(1)使用类来封装对象的属性和功能;(2)掌握Java类的定义。
(3)java对象的使用二、实验任务(1)按要求编写一个Java程序。
(2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。
三、实验内容1.编写一个Java程序片断,以定义一个表示学生的类Student。
这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。
2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。
编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。
class Student{long studentID;int classID;String name;String sex;int age;public Student(long studentID,int classID,String name,String sex,int age){ this.studentID=studentID;this.classID=classID;=name;this.sex=sex;this.age=age;}public long getStudentID(){return studentID;}public int getClassID(){return classID;}public String getName(){return name;}public String getSex(){return sex;}public int getAge(){return age;}public String toString(){return "学号:"+getStudentID()+"\n班号:"+getClassID()+"\n姓名:"+getName()+"\n性别:"+getSex()+"\n年龄:"+getAge();}}public class StudentDemo{public static void main(String[] args){Student s1=new Student(90221,2,"Tom","male",20);System.out.println(s1.toString());}}运行结果:学号:90221班号:2姓名:Tom性别:male年龄:202.程序填空,程序中包含以下内容:一个学生类(Student),包含:属性:学号s_No,姓名s_Name,性别s_Sex,年龄s_Age。
UML中共有5种静态图:用例图,类图,对象图,组件图和配置图。
(1)用例图Use Case Diagram用例图展现了一组用例、参与者以及它们之间的关系可以用来描述系统的静态使用情况。
上图中小人形状的用户和ATM是参与者、椭圆形状的如插入卡、输入密码等是用例(2)类图Class Diagram类图展示了一组类、接口、子类以及他们之间的关系,在建模中最常用到的图就是类图;可以用类图说明系统的静态设计视图,包含主动类的类图。
上图中反应了5个类之间的关联关系,人民币账户和美元帐户从账户继承,账户和ATM相关联,两种账户和用户相关联(3)对象图Object Diagram对象图展示了一组对象和他们间的关系,可以用来说明类图中翻译的事物实例的数据结构和静态快照,表达了系统的静态设计视图和静态过程视图,除了显示和原型方面的因素外,它与类图的作用是相同的。
(4)组件图Component Diagram组件图,又名构件图,展现了一组组件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库和可调整的系统建模。
上图中组件1和组件3依赖于组件2(5)配置图Deployment Diagram配置图展现了对运行时处理节点以及其中组件的配属,它描述系统硬件的物理拓扑结构,以及在此结构上执行的软件。
用配置图说明系统结构的静态配置视图,即说明分布、交互和安装的物理系统。
上图中,三个处理机与两个涉笔,相互之间是关联的关系UML中动态图有四种,分别是:时序图、协作图、状态图和活动图。
(1)时序图Sequence Diagram时序图展现了一组对象和由这组对象收发的信息,用于按时间顺序对控制流建模。
可以用时序图来说明系统的动态视图。
这里貌似有不同的说法Visual Paradigm里面叫时序图为Timing Diagram,而我参照的教材里边没有这种图,按理说是应该有的。
上图反应了用户与ATM交互的整个过程。
(2)协作图Collaboration Diagram协作图展现了一组对象之间的链接以及这组对象收发的消息,强调收发消息对象的组织结构,按组织结构对控制流建模。
计算机中对象的名词解释在计算机科学中,对象(Object)是程序设计的重要概念之一。
它是一种数据结构,可以包含数据和方法,并且能够与其他对象进行交互。
对象的使用可以帮助我们将复杂的问题分解为更小的部分,从而提高程序的可读性和可维护性。
一、对象的基本概念对象是面向对象编程(Object-Oriented Programming)中的基本单位,它代表了一个具体的实体或概念。
对象由属性(Attributes)和方法(Methods)组成。
属性是对象的状态,描述了对象的特征和数据;而方法是对象的行为,定义了对象可以执行的操作。
例如,我们可以将一台计算机看作是一个对象。
它的属性可以包括型号、品牌和内存大小等;而方法可以包括开机、关机和运行程序等。
通过对计算机对象的属性和方法的操作,我们可以完成各种计算任务。
二、对象的封装性在面向对象编程中,对象的封装性(Encapsulation)是一个重要的原则。
它指的是将数据和方法封装在对象内部,对外部世界隐藏对象内部的实现细节。
通过封装,对象可以提供简单的接口供其他对象进行交互,而不需要关心内部的具体实现。
封装性可以确保程序的安全性和稳定性。
对象的内部实现可以被隐藏起来,只暴露必要的接口供其他对象使用。
这样一来,对象间的交互更加简化,减少了意外的干扰和错误。
三、对象的继承性对象的继承性(Inheritance)是面向对象编程的另一个重要特性。
它允许一个对象继承另一个对象的属性和方法,并且可以在此基础上进行扩展和修改。
通过继承,我们可以创建一个基类(父类)对象,该对象包含了一组通用的属性和方法。
然后,我们可以派生出一个或多个子类,子类可以继承并扩展父类的功能。
这种继承关系构建了一个类的层次结构,便于组织和管理对象。
继承性使得代码的复用成为可能。
我们可以在不重复编写已有功能的情况下,快速创建新的对象,并且根据需要对其进行特殊化处理。
四、对象的多态性对象的多态性(Polymorphism)是面向对象编程的又一个重要概念。