类的定义和对象使用.ppt

上传人:wuy****n92 文档编号:73613930 上传时间:2023-02-20 格式:PPT 页数:22 大小:555.50KB
返回 下载 相关 举报
类的定义和对象使用.ppt_第1页
第1页 / 共22页
类的定义和对象使用.ppt_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《类的定义和对象使用.ppt》由会员分享,可在线阅读,更多相关《类的定义和对象使用.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲教师:武俊琢主讲教师:武俊琢第四讲 类的定义和对象使用 第第4 4章章 类和对象类和对象 信息管理系 武俊琢河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢*温故温故*nJava程序的开发过程程序的开发过程n数据类型数据类型n运算符和表达式运算符和表达式n语句语句河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢本讲要点n面向对象编程的基本概念面向对象编程的基本概念n类的定义类的定义n类首部类首部n类体类体n成员变量成员变量n成员方法成员方法n对象的创建与使用对象的创建与使用n创建对象

2、创建对象n使用对象使用对象n构造方法构造方法河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢面向对象编程的基本概念n类和对象类和对象n类是定义对象的模板,用来描述一类类是定义对象的模板,用来描述一类事物的共有属性和功能。事物的共有属性和功能。n对象是一个具体的事物。对象是一个具体的事物。n例:例:n汽车类汽车类某辆汽车某辆汽车n学生类学生类某个学生某个学生n窗口类窗口类某个具体的窗口某个具体的窗口汽车汽车(类类)品牌品牌型号型号颜色颜色-加速与减速设计加速与减速设计转向设计转向设计刹车设计刹车设计这辆汽车这辆汽车(对象对象)品牌:保时捷品牌:保时捷型号:型号:980

3、颜色:灰色颜色:灰色-加速减速控制加速减速控制转向控制转向控制刹车控制刹车控制河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢类的继承动物动物猫猫狗狗哺乳动物哺乳动物鸟鸟燕子燕子麻雀麻雀n类的继承类的继承n类的定义可以是分层次的,低层的类具有高层类的属性类的定义可以是分层次的,低层的类具有高层类的属性和方法,称高层类为父类,低层类为子类。和方法,称高层类为父类,低层类为子类。子类使用父子类使用父类中定义的方法和变量时,就像它们属于子类本身一样。类中定义的方法和变量时,就像它们属于子类本身一样。n可以简化编程的过程,有利于代码的可以简化编程的过程,有利于代码的复用复用

4、。子类除了拥。子类除了拥有父类的方法和变量之外,也可以定义自己方法和变量。有父类的方法和变量之外,也可以定义自己方法和变量。n哺乳动物:胎生,能用母乳喂养幼仔。哺乳动物:胎生,能用母乳喂养幼仔。n猫:猫:胎生,能用母乳喂养幼仔。胎生,能用母乳喂养幼仔。会捉老鼠。会捉老鼠。河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢 类是类是JavaJava语言中的一种复合数据类型,是组成语言中的一种复合数据类型,是组成JavaJava程序的基本要素。程序的基本要素。JavaJava的类具有两种基本成分:数据和行的类具有两种基本成分:数据和行为(状态和方法)。类的这两种成分被封装

5、在类体中,与为(状态和方法)。类的这两种成分被封装在类体中,与外界隔开。外界隔开。4.2 类的声明类的声明public class HelloWorld/类类public static void main(String args)/方法,或叫行为成分方法,或叫行为成分System.out.println(“Hello world!”);类的封装类的封装河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢import java.awt.Graphics;import;public class HelloApplet extends Applet/类类public void

6、 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 class 类名类名 extends

7、extends父类名父类名 类成员变量声明;类成员变量声明;类方法声明类方法声明 类体类体类首类首最简单的类定义class A类的修饰符有:类的修饰符有:publicpublic、abstractabstract、finalfinalextends 父类名:表示所定义的类由父类名:表示所定义的类由“父类父类”继承而来。继承而来。implements 接口列表:该类对指定接口进行实现。接口列表:该类对指定接口进行实现。河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢成员变量与局部变量成员变量:是类的数据成分,在类体中直接定义,定义格式如下:成员变量:是类的数据成分,在

8、类体中直接定义,定义格式如下:修饰符修饰符 变量类型变量类型 成员变量名列表;成员变量名列表;成员变量的定义可以在定义前加修饰符:成员变量的定义可以在定义前加修饰符:public、private、protected、final、static等,用来标识变量的使用范围和性质。等,用来标识变量的使用范围和性质。局部变量:在方法体内定义的变量和方法的参数是局部变量。局部变量:在方法体内定义的变量和方法的参数是局部变量。1.变量类型可以是基本数据类型,也可以是引用数据类型,如:数组、变量类型可以是基本数据类型,也可以是引用数据类型,如:数组、类类型。类类型。2.成员变量在整个类的内部有效,局部变量只在

9、定义它的方法内有效。成员变量在整个类的内部有效,局部变量只在定义它的方法内有效。3.局部变量名可以和成员变量名重名,此时局部变量会隐藏成员变量,局部变量名可以和成员变量名重名,此时局部变量会隐藏成员变量,如果想在该方法内部使用成员变量,使用关键字如果想在该方法内部使用成员变量,使用关键字this。public class Peoplefloat hight,weight;String head,ear,mouth;void speak(String s)System.out.println(s);河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢成员方法成员方法是类的

10、行为成分,声明格式如下:成员方法是类的行为成分,声明格式如下:修饰符修饰符 返回值类型返回值类型 方法名(方法名(形参列表形参列表)方法体方法体return 表达式;表达式;1、修饰符修饰符:public、private、protected、static、final2、如果方法没有返回值,则使用、如果方法没有返回值,则使用void关键字。如果有返回值类型,则方关键字。如果有返回值类型,则方法体中必须有法体中必须有return语句,并且表达式类型与方法类型一致。语句,并且表达式类型与方法类型一致。3、形式参数列表的形式如下:形式参数列表的形式如下:类型名类型名 形参名形参名1,类型名,类型名 形

11、参名形参名2,如:如:public void out(int x,int y,float f)System.out.println(“x=”+x+”y=”+y+”f=”+f);class Trianglefloat sideA,sideB,sideC,lengthSum;void setSide(float sideA,float sideB,float sideC)this.sideA=sideA;this.sideB=sideB;this.sideC=sideC;河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢类的定义-例1定义描述“人”的类:成员变量:姓名、性

12、别、年龄;class PersonString 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应应用程序,也就是不能被用

13、程序,也就是不能被Java虚拟机直接调用。虚拟机直接调用。成员方法:唱歌,跳舞,输出河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢类的定义-例2梯形梯形类:梯形类:class Ladderfloat a,b,h;void setH(float h)this.h=h;float calculatArea()return (a+b)*h/2;河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢创建和使用对象如何调用类中定义的成员变量和成员方法,如何调用类中定义的成员变量和成员方法,在在Java中类只有实例化为中类只有实例化为对象后才能被使用对象

14、后才能被使用(注:注:main方法为特殊方法,由系统调用方法为特殊方法,由系统调用),对象对象的使用的使用“分三步走分三步走”:1 1、声明对象、声明对象 类名类名 对象名;对象名;2 2、分配内存(对象的实例化)、分配内存(对象的实例化)对象名对象名=new new 类构造方法名(类构造方法名(实参表实参表););3 3、使用对象(对象的成员变量及方法的访问)、使用对象(对象的成员变量及方法的访问)对象名对象名.方法名、对象名方法名、对象名.成员变量名成员变量名声明和初始化可以合并:声明和初始化可以合并:类名类名 对象名对象名=new new 类的构造方法名(类的构造方法名(实参表实参表 )

15、;);说明:说明:构造方法名与类名相同,如果一个类中未定义构造方法,系统自动定义。构造方法名与类名相同,如果一个类中未定义构造方法,系统自动定义。河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢使用对象例3方法一:在同一个类中使用对象方法一:在同一个类中使用对象class Person.public static void main(String args)Person p;p=new Person();p.name=zhangsan;p.age=20;p.sing();p.out();栈内存堆内存p 0 x30000 x30000 age.new person()

16、产生的对象河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢使用对象例4方法二:在不同类中使用对象class Person.class PersonTestpublic static void main(String args)Person p;p=new Person();p.name=zhangsan;p.age=20;p.sing();p.out();例例4.3西游记人物(西游记人物(P44)河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢使用对象例5 梯形public static void main(Stringargs)floa

17、t 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时,

18、在栈内存中分配空间,用来存放一个地址,此时地址未指向任何数据。2.p=new Person();时,首先在堆内存中为对象分配存储空间,并对各成员变量进行初始化,数值型为0,布尔型为false,引用型为null;然后取得这个存储空间的地址(引用),将其“交给”引用变量p,以后对这个对象的操作全由p去控制。3.多次使用new便会创建多个不同的对象。在方法中定义的一些基本类型的变量和引用变量都是在方法的栈内存中分配。当在一段代码块(也就是一对之间)定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放为该变量分配的内存空间,以前所讲的变量分配都是在栈内存中存

19、放的。河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢构造方法我们在例我们在例6的的Math类中增加一个方法:类中增加一个方法:public Person()(“我是构造方法,已被调用!我是构造方法,已被调用!);我们并没有调用对象的我们并没有调用对象的Person()方法,但是它却被执行了。方法,但是它却被执行了。这个方法就是构造方法这个方法就是构造方法河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢构造方法的说明说明形式如下:说明形式如下:构造方法修饰符构造方法修饰符 方法名(方法名(形式参数列表形式参数列表)方法体方法体构造方法的名

20、字与类的名字相同构造方法的名字与类的名字相同构造方法没有返回类型构造方法没有返回类型(千万不要将返回值类型声明为千万不要将返回值类型声明为void。也不能在。也不能在方法内部使用方法内部使用return返回一个值。返回一个值。)一般将构造方法声明为公共的一般将构造方法声明为公共的public型。型。构造方法对对象的创建是必须的。实际上构造方法对对象的创建是必须的。实际上Java语言为每一个类提语言为每一个类提供了一个默认的构造方法,也就是说,每个类都有构造方法。供了一个默认的构造方法,也就是说,每个类都有构造方法。如果不定如果不定义一个构造方法,义一个构造方法,Java语言将调用它提供的默认的

21、构造方法对一个新的语言将调用它提供的默认的构造方法对一个新的对象进行初始化。对象进行初始化。河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢方法的重载 在一个类中可以定义同名的方法,但是参数的类型和个在一个类中可以定义同名的方法,但是参数的类型和个数不能完全相同,同名的方法可以有不同的方法体从而完成数不能完全相同,同名的方法可以有不同的方法体从而完成不同的任务,当调用方法时,系统会自动调用与实际参数类不同的任务,当调用方法时,系统会自动调用与实际参数类型和个数相匹配的的那一个方法,这就是型和个数相匹配的的那一个方法,这就是方法的重载方法的重载。在面。在面向对象编程中

22、,这种同一个名字可以有不同解释的现象称为向对象编程中,这种同一个名字可以有不同解释的现象称为多态。多态。河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢作业1、编程并上机调试:、编程并上机调试:(60分分)按以下要求创建一个学生类按以下要求创建一个学生类(Student),并完成相应的操作:并完成相应的操作:1)其成员变量其成员变量:姓名:姓名(name)、年龄年龄(age)、身高身高(height)、体重体重(weight)2)成员方法:成员方法:setAge用于给变量用于给变量age赋值赋值3)成员方法(成员方法(out):):按一定格式输出各成员变量的值。按一

23、定格式输出各成员变量的值。4)构造方法:构造方法:通过参数传递,分别通过参数传递,分别对对name、height、weight初始化。初始化。5)最后最后,创建这个类的对象,并完成对成员变量赋值和输出的操作。,创建这个类的对象,并完成对成员变量赋值和输出的操作。6)2、写出你在实验过程中的问题及解决办法。、写出你在实验过程中的问题及解决办法。(20分分)7)3、总结本次试验的收获。、总结本次试验的收获。(20分分)河南经贸职业学院河南经贸职业学院信息管理系信息管理系主讲:武俊琢主讲:武俊琢技能训练四 类的定义和对象使用n训练目的训练目的n通过本次技能训练,使学生掌握类的定义和对象的使用。通过本

24、次技能训练,使学生掌握类的定义和对象的使用。掌握类与对象的区别与联系,掌握成员变量与成员方法的掌握类与对象的区别与联系,掌握成员变量与成员方法的定义,掌握构造方法的定义和使用技巧。定义,掌握构造方法的定义和使用技巧。n训练内容及要求训练内容及要求n1、编程并上机调试:、编程并上机调试:n按以下要求创建一个学生类按以下要求创建一个学生类(Student),并完成相应的操作:,并完成相应的操作:n其成员变量:姓名其成员变量:姓名(name)、年龄、年龄(age)、身高、身高(height)、体重、体重(weight)n成员方法:成员方法:setAge用于给变量用于给变量age赋值赋值n成员方法(成员方法(out):按一定格式输出各成员变量的值。):按一定格式输出各成员变量的值。n构造方法:通过参数传递,分别对构造方法:通过参数传递,分别对name、height、weight初始化。初始化。n最后,创建这个类的对象,并完成对成员变量赋值和输出的操作。最后,创建这个类的对象,并完成对成员变量赋值和输出的操作。n2、写出你在实验过程中的问题及解决办法。、写出你在实验过程中的问题及解决办法。n3、总结本次试验的收获。、总结本次试验的收获。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁