




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南经贸职业学院信息管理系 主讲教师:武俊琢 第四讲 类的定义和对象使用 第4章 类和对象 信息管理系 武俊 琢 河南经贸职业学院信息管理系 主讲:武俊琢 *温故* nJava程序的开发过程 n数据类型 n运算符和表达式 n语句 河南经贸职业学院信息管理系 主讲:武俊琢 本讲要点 n面向对象编程的基本概念 n类的定义 n类首部 n类体 n成员变量 n成员方法 n对象的创建与使用 n创建对象 n使用对象 n构造方法 河南经贸职业学院信息管理系 主讲:武俊琢 面向对象编程的基本概念 n类和对象 n类是定义对象的模板,用来描述一类 事物的共有属性和功能。 n对象是一个具体的事物。 n例: n汽车类某辆汽车 n学生类某个学生 n窗口类某个具体的窗口 汽车(类) 品牌 型号 颜色 - 加速与减速设计 转向设计 刹车设计 这辆汽车(对象) 品牌:保时捷 型号:980 颜色:灰色 - 加速减速控制 转向控制 刹车控制 河南经贸职业学院信息管理系 主讲:武俊琢 类的继承 动物 猫狗 哺乳动物鸟 燕子麻雀 n类的继承 n类的定义可以是分层次的,低层的类具有高层类的属性 和方法,称高层类为父类,低层类为子类。子类使用父 类中定义的方法和变量时,就像它们属于子类本身一样 。 n可以简化编程的过程,有利于代码的复用。子类除了拥 有父类的方法和变量之外,也可以定义自己方法和变量 。 n哺乳动物:胎生,能用母乳喂养幼仔。 n猫:胎生,能用母乳喂养幼仔。会捉老鼠。 河南经贸职业学院信息管理系 主讲:武俊琢 类是Java语言中的一种复合数据类型,是组成Java 程序的基本要素。Java的类具有两种基本成分:数据和行 为(状态和方法)。类的这两种成分被封装在类体中,与 外界隔开。 4.2 类的声明 public class HelloWorld/类 public static void main(String args)/方法,或叫行为成分 System.out.println(“Hello world!”); 类的封装 河南经贸职业学院信息管理系 主讲:武俊琢 import java.awt.Graphics;import java.applet.Applet; public class HelloApplet extends Applet/类 public void paint(Graphics g)/方法 g.drawString(“Hello world“,20,20); Java程序 public class People/P7,例 float hight,weight;/状态,或叫数据成分 String head,ear,mouth;/状态 void speak(String s)/方法,或叫行为成分 System.out.println(s); /- 类的封装 河南经贸职业学院信息管理系 主讲:武俊琢 类的定义 修饰符 class 类名 extends父类名 类成员变量声明; 类方法声明 类体 类首 最简单的类定义 class A 类的修饰符有: public、abstract、final extends 父类名:表示所定义的类由“父类”继承而来。 implements 接口列表:该类对指定接口进行实现。 河南经贸职业学院信息管理系 主讲:武俊琢 成员变量与局部变量 成员变量:是类的数据成分,在类体中直接定义,定义格式如下: 修饰符 变量类型 成员变量名列表; 成员变量的定义可以在定义前加修饰符:public、private、protected、 final、static等,用来标识变量的使用范围和性质。 局部变量:在方法体内定义的变量和方法的参数是局部变量。 1.变量类型可以是基本数据类型,也可以是引用数据类型,如:数组、 类类型。 2.成员变量在整个类的内部有效,局部变量只在定义它的方法内有效。 3.局部变量名可以和成员变量名重名,此时局部变量会隐藏成员变量, 如果想在该方法内部使用成员变量,使用关键字this。 public class People float hight,weight; String head,ear,mouth; void speak(String s) System.out.println(s); 河南经贸职业学院信息管理系 主讲:武俊琢 成员方法 成员方法是类的行为成分,声明格式如下: 修饰符 返回值类型 方法名(形参列表) 方法体 return 表达式; 1、修饰符:public 、 private、protected、static、final 2、如果方法没有返回值,则使用void关键字。如果有返回值类型,则方 法体中必须有return语句,并且表达式类型与方法类型一致。 3、形式参数列表的形式如下: 类型名 形参名1,类型名 形参名2, 如:public void out(int x,int y,float f) System.out.println(“x=”+x+”y=”+y+”f=”+f); class Triangle float sideA,sideB,sideC,lengthSum; void setSide(float sideA,float sideB,float sideC) this.sideA=sideA; this.sideB=sideB; this.sideC=sideC; 河南经贸职业学院信息管理系 主讲:武俊琢 类的定义-例1 定义描述“人”的类: 成员变量:姓名、性别、年龄; class Person String name,sex; int age; void sing() System.out.println(“I can sing!“); void dance() System.out.println(“I can dance!“); void out()/成员变量的操作只能放在方法中 System.out.println(“name:“+name); System.out.println(“age:“+age); 注意:一个类中可以没有main方法,此时它不是Java的application应 用程序,也就是不能被Java虚拟机直接调用。 成员方法:唱歌,跳舞,输出 河南经贸职业学院信息管理系 主讲:武俊琢 类的定义-例2梯形 梯形类: class Ladder float a,b,h; void setH(float h) this.h=h; float calculatArea() return (a+b)*h/2; 河南经贸职业学院信息管理系 主讲:武俊琢 创建和使用对象 如何调用类中定义的成员变量和成员方法,在Java中类只有实例化为 对象后才能被使用(注:main方法为特殊方法,由系统调用) ,对象 的使用“分三步走”: 1、声明对象 类名 对象名; 2、分配内存(对象的实例化) 对象名=new 类构造方法名(实参表); 3、使用对象(对象的成员变量及方法的访问) 对象名.方法名、对象名.成员变量名 声明和初始化可以合并: 类名 对象名=new 类的构造方法名( 实参表 ); 说明: 构造方法名与类名相同,如果一个类中未定义构造方法,系统自动定义 。 河南经贸职业学院信息管理系 主讲:武俊琢 使用对象例3 方法一:在同一个类中使用对象 class Person . . . public static void main(String args) Person p; p=new Person(); =“zhangsan“; p.age=20; p.sing(); p.out(); 栈内存 堆内存 p 0x3000 0x30000 age . . . new person() 产生的对象 河南经贸职业学院信息管理系 主讲:武俊琢 使用对象例4 方法二:在不同类中使用对象 class Person . . . class PersonTest public static void main(String args) Person p; p=new Person(); =“zhangsan“; p.age=20; p.sing(); p.out(); 例4.3西游记人物(P44) 河南经贸职业学院信息管理系 主讲:武俊琢 使用对象例5 梯形 public static void main(Stringargs) float area; Ladder ladder=new Ladder(); ladder.a=10.0f; ladder.b=20.0f; ladder.setH(5f); area=ladder.calculatArea(); System.out.println(“area=“+area); 河南经贸职业学院信息管理系 主讲:武俊琢 对象的内存模型 引用数据类型与引用变量:引用数据类型(数组、类)声明的变量为 引用变量,引用变量本身并不存放数据,而只是存放数据的地址 。 Java的内存分配Java把内存划分成两种:栈内存、堆内存 1.Person p;声明对象p时,在栈内存中分配空间,用来存放一个地址 ,此时地址未指向任何数据。 2.p=new Person();时,首先在堆内存中为对象分配存储空间,并对 各成员变量进行初始化,数值型为0,布尔型为false,引用型为 null;然后取得这个存储空间的地址(引用),将其“交给”引用变 量p,以后对这个对象的操作全由p去控制。 3.多次使用new便会创建多个不同的对象。 在方法中定义的一些基本类型的变量和引用变量都是在方法的栈内存 中分配。当在一段代码块(也就是一对之间)定义一个变量时, Java就在栈中为这个变量分配内存空间,当超过变量的作用域后, Java会自动释放为该变量分配的内存空间,以前所讲的变量分配都 是在栈内存中存放的。 河南经贸职业学院信息管理系 主讲:武俊琢 构造方法 我们在例6的Math类中增加一个方法: public Person() System.out.println(“我是构造方法,已被调用!“); 我们并没有调用对象的Person()方法,但是它却被执行了。 这个方法就是构造方法 河南经贸职业学院信息管理系 主讲:武俊琢 构造方法的说明 说明形式如下: 构造方法修饰符 方法名(形式参数列表) 方法体 构造方法的名字与类的名字相同 构造方法没有返回类型(千万不要将返回值类型声明为void。也不能在 方法内部使用return返回一个值。)一般将构造方法声明为公共的public 型。构造方法对对象的创建是必须的。实际上Java语言为每一个类提 供了一个默认的构造方法,也就是说,每个类都有构造方法。如果不定 义一个构造方法,Java语言将调用它提供的默认的构造方法对一个新的 对象进行初始化。 河南经贸职业学院信息管理系 主讲:武俊琢 方法的重载 在一个类中可以定义同名的方法,但是参数的类型和 个数不能完全相同,同名的方法可以有不同的方法体从而完 成不同的任务,当调用方法时,系统会自动调用与实际参数 类型和个数相匹配的的那一个方法,这就是方法的重载。在 面向对象编程中,这种同一个名字可以有不同解释的现象称 为多态。 河南经贸职业学院信息管理系 主讲:武俊琢 作业 1、编程并上机调试:(60分) 按以下要求创建一个学生类(Student),并完成相应的操作: 1) 其成员变量:姓名(name)、年龄(age)、身高(height)、体重 (weight) 2) 成员方法:setAge用于给变量age赋值 3) 成员方法(out):按一定格式输出各成员变量的值。 4) 构造方法:通过参数传递,分别对name、height、weight初始化 。 5) 最后,创建这个类的对象,并完成对成员变量赋值和输出的操作。 6) 2、写出你在实验过程中的问题及解决办法。(20分) 7) 3、总结本次试验的收获。(20分) 河南经贸职业学院信息管理系 主讲:武俊琢 技能训练四 类的定义和对象使用 n训练目的 n通过本次技能训练,使学生掌握类的定义和对象的使用。 掌握类与对象的区别与联系,掌握成员变量与成员方法的 定义,掌握构造方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年成人高等学校招生考试《语文》现代文阅读技巧深度剖析试题库
- 光谱检测灵敏度提升-全面剖析
- 克罗地亚语文学中的爱情主题论文
- 2025-2030全球及中国汽车安全带高度调节器行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2025-2030全球及中国柴油机控制系统行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2025-2030全球及中国智能停车行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2025-2030全球及中国工业特种牛皮纸行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2025年心理咨询师基础理论知识测试卷:心理咨询实践技能模拟试题
- 牛业智能环境调控与能源管理优化-全面剖析
- 基于患者需求的医疗服务提供-全面剖析
- 《湖南省房屋建筑和市政工程消防质量控制技术标准》
- 充电桩安全巡查记录表
- 《公路工程现浇泡沫聚合土应用技术规程》
- 2025届云南省民族大学附属中学高三(最后冲刺)数学试卷含解析
- 墨菲定律知识介绍墨菲定律启示课件
- 品管圈PDCA获奖案例-新生儿科运用PDCA循环缩短早产儿完全经口喂养过渡时间成果汇报
- 河流沿岸护栏安装工程协议
- 工程四新培训
- T∕CACM 1021.19-2018 中药材商品规格等级 白芷
- 2024电力安全工器具及小型施工机具预防性试验规程
- 呼吸内科护理新技术
评论
0/150
提交评论