(1.4)--3- 面向对象编程面向对象程序设计.ppt

上传人:奉*** 文档编号:96639020 上传时间:2024-02-01 格式:PPT 页数:55 大小:674.50KB
返回 下载 相关 举报
(1.4)--3- 面向对象编程面向对象程序设计.ppt_第1页
第1页 / 共55页
(1.4)--3- 面向对象编程面向对象程序设计.ppt_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《(1.4)--3- 面向对象编程面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《(1.4)--3- 面向对象编程面向对象程序设计.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Chapter3 面向对象编程面向对象编程本章要点本章要点1.面向面向对象的基本特征:抽象、封装、象的基本特征:抽象、封装、继承、承、多多态2.类、成、成员变量、成量、成员方法的概念与定方法的概念与定义方法方法3.构造方法的定构造方法的定义与与对象的象的创建建4.包的定包的定义和使用和使用,带包包类的的编译和运行方法和运行方法5.方法的方法的4种参数种参数传递机制机制23学习目标学习目标1.理解抽象、封装、理解抽象、封装、继承、多承、多态的含的含义2.掌握如何定掌握如何定义类、成、成员变量、成量、成员方法和构造方法方法和构造方法3.掌握掌握java对象的象的创建方法,以及如何使用建方法,以及如

2、何使用对象象4.掌握包的定掌握包的定义、包的作用、包的作用、带包包类的的编译和运行方法,和运行方法,环境境变量量classpath的配置的配置5.掌握参数掌握参数传递的的规则6.初步掌握面向初步掌握面向对象程序的象程序的编写方法,能写方法,能够根据根据现实问题设计编写写类,定,定义类的成的成员变量和成量和成员方法方法3.13.1面向对象概述面向对象概述客客观世界是由各种各世界是由各种各样的的对象象组成的,比如一条成的,比如一条狗、一个教室、一个班狗、一个教室、一个班级、一个学生都是、一个学生都是对象。象。每种每种对象都有各自的内部状象都有各自的内部状态和运和运动规律,不同律,不同对象象间的相互

3、作用和的相互作用和联系构成了各种不同的系系构成了各种不同的系统,构成了客构成了客观世界。世界。面向面向对象象设计思想是从思想是从现实世界客世界客观存在的事物存在的事物出出发来构造来构造软件系件系统,并尽可能的运用人,并尽可能的运用人类最自最自然的思然的思维方式。方式。4对象是象是现实世界中存在的一个世界中存在的一个实实在在的在在的事物事物。把相同把相同类型的型的对象共有的特征和行象共有的特征和行为归纳起来,起来,就形成了一个就形成了一个类,类是是对象的一个模版。例如象的一个模版。例如:人是一个人是一个类,张三、李四三、李四则是具体的一个人,是具体的一个人,是人是人这个个类的一个的一个对象。象。

4、班班级是一个是一个类,高三,高三1班、高三班、高三2班都是班班都是班级类的的对象象汽汽车是一个是一个类,我家的汽,我家的汽车是汽是汽车类的一个的一个对象象51.1 1.1 类与对象类与对象面向面向对象程序象程序设计包括四个基本特征(有的包括四个基本特征(有的书称称为3个基本特征,不包括抽象个基本特征,不包括抽象):):抽象抽象封装封装继承承多多态63.23.2面向对象程序设计的基本特征面向对象程序设计的基本特征73.2.1 3.2.1 抽象抽象抽象是根据抽象是根据业务需要,把客需要,把客观世界的事物中与世界的事物中与业务相相关的特征和关的特征和行行为归纳总结出来、忽略与本出来、忽略与本业务无关

5、的无关的特征和特征和行行为,从形成,从形成类的的过程。程。例如:人具有例如:人具有身份身份证号、姓名、年号、姓名、年龄、性、性别、体重、体重等等基本信息,基本信息,还有有说话、吃、吃饭、行走、工作等、行走、工作等行行为。如果如果要开要开发一个人事管理系一个人事管理系统,除了上面,除了上面基本信息基本信息外,外,还要加上所在公司、政治面貌、所在部要加上所在公司、政治面貌、所在部门、职称、称、职务、参加工作、参加工作时间、工种等,形成一个、工种等,形成一个员工工类。要开要开发一个大学生管理系一个大学生管理系统,则出基本信息外出基本信息外还要再要再加上学号、加上学号、专业、班、班级等信息等信息,形成

6、一个学生形成一个学生类。83.2.2 封装封装封装是指把同一封装是指把同一类事物的特征和事物的特征和行行为都定都定义到一个到一个类里,里,变成成类的属性和方法。同的属性和方法。同时通通过访问控制符来定控制符来定义每个属性和方法的可每个属性和方法的可见性。性。例如,例如,一个一个圆有半径,有半径,还有有计算自己的面算自己的面积和周和周长的方法。通的方法。通过定定义一个一个圆类,将,将半径定半径定义成成圆类的属性,将的属性,将计算算圆的面的面积和周和周长的函数定的函数定义成成圆的方法,的方法,则实现了了圆类的封装。的封装。3.2.3继承继承继承是承是类之之间的一种的一种代代码重用机制。如果重用机制

7、。如果A类继承了承了B类,则A类拥有了有了B类的除了的除了私有属性和私有方法外的所有属性和方法,私有属性和私有方法外的所有属性和方法,同同时可以添加自己特有的属性和方法。可以添加自己特有的属性和方法。例如,汽例如,汽车类具有型号、具有型号、车牌、价格、牌、价格、颜色属性,具有启色属性,具有启动、挂、挂挡、刹、刹车等方等方法。公共汽法。公共汽车属于汽属于汽车的子的子类,则除了除了具有汽具有汽车类的属性和方法外,的属性和方法外,还增加了增加了票价、票价、车次、站牌等属性。次、站牌等属性。93.2.43.2.4多态多态多态是实现接口的多个类或一个父类的多多态是实现接口的多个类或一个父类的多个子类有相

8、同的方法名,但是具有不同的个子类有相同的方法名,但是具有不同的表现方式。表现方式。例如例如,动物类具有喊叫的方法,但是它的子动物类具有喊叫的方法,但是它的子类猫和子类狗的喊叫效果却不一样。类猫和子类狗的喊叫效果却不一样。3.3 java3.3 java类与对象类与对象12 3.3.1 java类的定义类的定义javajava类是组成程序的基本单位,所有代码都定义类是组成程序的基本单位,所有代码都定义在类中。在类中。JavaJava中类的定义格式如下:中类的定义格式如下:类修饰符类修饰符 class class 类名类名extends extends 父类名父类名 implements impl

9、ements 接口名列表接口名列表 成员变量定义;成员变量定义;成员方法定义;成员方法定义;133.3.1 java类的定义类的定义类修饰符类修饰符包括:包括:publicpublic、缺省、缺省、abstractabstract、finalfinalpublicpublic:允许任何其他类访问本类。一个源程序:允许任何其他类访问本类。一个源程序文件只能有一个文件只能有一个publicpublic类,而且如果源文件中有类,而且如果源文件中有一个一个publicpublic的类,则文件名必须以这个的类,则文件名必须以这个publicpublic类类的名字为文件名。的名字为文件名。缺省缺省(不写)

10、(不写):可被当前包中的其他类访问。:可被当前包中的其他类访问。abstractabstract:没有实例的抽象概念类,是它的所有:没有实例的抽象概念类,是它的所有子类的公共属性和公共方法的集合。子类的公共属性和公共方法的集合。finalfinal:不能再被扩展,:不能再被扩展,即该类即该类不能有子类。不能有子类。14 extends:表示:表示继承承(扩展)展),后面跟父,后面跟父类名,一名,一个个类只能只能继承一个父承一个父类。implements:表示:表示实现接口,后面跟接口名,可以接口,后面跟接口名,可以实现多个接口,用逗号隔开。多个接口,用逗号隔开。其中其中abstract、fin

11、al、extends、implements关关键字字以后再以后再讲。3.3.1 java类的定义类的定义成成员变量量是用来描述是用来描述类的数据的,有多种称呼,的数据的,有多种称呼,比如属性、成比如属性、成员变量、成量、成员域、域。定域、域。定义格式:格式:修修饰符列表符列表 类型型 变量名量名=值;修修饰符列表是可符列表是可选项,根据,根据实际情况定情况定义,包括,包括public、protected、private、static、final等,等,其中其中public、protected、private不能同不能同时存在。存在。类型可以是任何一种数据型可以是任何一种数据类型,包括型,包括8

12、种基本种基本类型、型、类名、接口名、数名、接口名、数组等。可以在定等。可以在定义变量量时直接直接赋值,也可以不,也可以不赋值。如果不。如果不赋值,java会会给它它一个默一个默认值。153.3.1.1成员变量的定义成员变量的定义成员变量类型默认值成员变量类型默认值byte0double0.0short0float0.0fint 0charu0000long0引用型null16各种类型成员变量的默认值各种类型成员变量的默认值 private private intint age;/age;/默认默认age=0age=0 public String name public String name;

13、/默认默认name=nullname=null private private intint height=180;height=180;成成员方法的定方法的定义格式如下:格式如下:修修饰符列表符列表 返回返回值类型型 方法名方法名(参数列表参数列表)方法体方法体17修修饰符列表是可符列表是可选项,根据,根据实际情况定情况定义,包括:包括:public、protected、private、abstract、static、final、synchronized等,等,其中其中public、protected、private不能同不能同时存在。存在。18返回返回值类型可以是任何一种数据型可以是任何一

14、种数据类型,包型,包括括8种基本种基本类型、型、类名、接口名、数名、接口名、数组等,等,也可以是也可以是void。如果如果该方法最方法最终不返回任何不返回任何结果,果,则需要需要定定义成成void。如果不是。如果不是void,则方法体最方法体最后要有后要有return语句,句,return的的值要跟方法要跟方法头中写的返回中写的返回值类型一致。型一致。19public int add(int a,int b)return a+b;add()方法会方法会计算算a和和b的和,并将和作的和,并将和作为返回返回值返返回回给调用者。用者。void print()System.out.println(本方

15、法没有回本方法没有回值);print()是一个不返回任何是一个不返回任何结果的方法,不返回果的方法,不返回结果,果,必必须把返回把返回值定定义为void。20public double sum(double score)public double sum(double score)double sum=0;double sum=0;for(int i=0;iscore.length;i+)for(int i=0;iscore.length;i+)sum=sum+scorei;sum=sum+scorei;return sum;return sum;21sum()是一个是一个计算一个算一个dou

16、ble型数型数组的和的和的方法,的方法,该方法接受一个方法接受一个double型的数型的数组score作作为参数,参数,计算算score的所有元素的的所有元素的和,然后把和作和,然后把和作为返回返回值返回返回给调用者。用者。22成成员变量和成量和成员方法的方法的顺序没有关系,可序没有关系,可以随便安排,但以随便安排,但为了了规范,一般先定范,一般先定义成成员变量,然后定量,然后定义成成员方法,各个成方法,各个成员方方法的先后法的先后顺序没有关系。序没有关系。【例【例3-1】以】以圆类Circle为例,定例,定义如下:如下:ch3下的下的Circle.java23圆类圆类CircleCircle

17、的定义的定义public class Circle/本行是本行是类声明声明/类体起始行体起始行 private double r;/属性属性,圆的半径的半径 public Circle(double r)/构造方法构造方法 this.r=r;public Circle()/无参数无参数构造方法构造方法 this.r=1;/给r赋值为1 public double getR()/成成员方法方法 return this.r;24 public void setR(double r)()/成成员方法方法 this.r=r;public double getArea()/成成员方法,方法,计算面算面积

18、 return r*r*Math.PI;public double getPerimeter()/成成员方法,方法,/该方法用来方法用来计算算圆的周的周长 return 2*r*Math.PI;/类体体结束行束行25这里里类体的起始符体的起始符“”和方法的起始和方法的起始“”都是都是放在行首,其放在行首,其实完全可以放在上一行的行尾,完全可以放在上一行的行尾,这是两种是两种编程程风格,无格,无论采用哪种都可以,采用哪种都可以,这里只里只是是为了了说明方便把明方便把“”放在行首,放在行首,实际上大部上大部分分java编程人程人员都都习惯于放在行尾。于放在行尾。其中,其中,this代表当前代表当前

19、对象,象,实际上就是将来上就是将来创建建对象后的那个象后的那个对象,象,现在在还不知道将来不知道将来创建的建的对象的名字,只能用象的名字,只能用this来代替,你也可以把它形来代替,你也可以把它形象的理解象的理解为“我我”,this.r代表代表“我的半径我的半径”,将来将来创建多个建多个对象,每个象,每个对象都有自己的半径。象都有自己的半径。26一般情况下,属性一般情况下,属性值应该定定义成成private,即私,即私有的,然后定有的,然后定义相相应的的get、set方法来方法来获取私有取私有属性的属性的值、设置私有属性的置私有属性的值。这里把里把r定定义成私有的,然后定成私有的,然后定义ge

20、tR()来来获取取属性属性r值,定,定义setR(double r)来来给属性属性r赋值为参数参数r。注意,注意,get方法一般没有参数,但有返回方法一般没有参数,但有返回值,返,返回回值类型跟属性本身的型跟属性本身的类型一型一样,set方法一定方法一定有参数,参数即有参数,参数即为要要给属性属性赋的的值。27定定义了了类以后,就相当于有了一个新的数以后,就相当于有了一个新的数据据类型,每一个型,每一个类都是一种数据都是一种数据类型。型。注意,注意,成成员变量的位置只能定量的位置只能定义变量量,不,不能写普通的能写普通的java代代码,例如在第,例如在第3行代行代码的前后都不能写下面的代的前后

21、都不能写下面的代码:System.out.println(“Hello”);也不能写也不能写:radius=radius+2;这种普通代种普通代码只能写到某个方法只能写到某个方法或或static代代码块中中283.3.2 3.3.2 构造方法构造方法构造方法是构造方法是类中的一个特殊的方法,作用中的一个特殊的方法,作用是在是在创建建对象象时给成成员变量量赋值,即完成,即完成变量的初始化。量的初始化。实际上上创建建对象象时new后后面的就是构造方法。面的就是构造方法。构造方法有构造方法有2个特征:个特征:(1)构造方法的名字跟)构造方法的名字跟类的名字完全的名字完全一一样;(2)构造方法不能有返

22、回)构造方法不能有返回值类型,型,void也不能写。也不能写。29一个一个类可以定可以定义多个构造方法,多个构造方法也可以互相多个构造方法,多个构造方法也可以互相调用。例如用。例如给上面的上面的Circle类增加一个无参数的构造方法增加一个无参数的构造方法如下:如下:public Circle()this.r=1;/给半径半径赋值为1 或者或者调用用现有的有参数的构造方法有的有参数的构造方法给半径半径赋值为1:public Circle()this(1);/调用另一个构造方法,用另一个构造方法,给半径半径赋值为1 注意:注意:(1)调用用别的构造方法跟的构造方法跟调用普通成用普通成员方法的写法

23、不方法的写法不一一样,不能使用构造方法的名字,即不能写成,不能使用构造方法的名字,即不能写成Circle(1);正正确写法是确写法是this(1)(2)如果没有写构造方法,系如果没有写构造方法,系统会自会自动添加一个无参数的构添加一个无参数的构造方法,如果已造方法,如果已经写了构造方法,写了构造方法,则不再添加无参数的构不再添加无参数的构造方法造方法303.3.3 java3.3.3 java对象的创建对象的创建Java对象的象的创建需要使用建需要使用new关关键字和字和类的构造的构造方法。方法。1对象的声明象的声明声明声明对象的格式象的格式为:类名名 对象名象名;例如声明一个例如声明一个Ci

24、rcle类型的型的对象象c1的代的代码为:Circle c1;此此时c1就是一个就是一个对象名,也是一个象名,也是一个对象引用,但象引用,但现在在还没有没有创建建对象,象,c1的的值是是null,没有引用具,没有引用具体的体的对象,即没有指向任何内存区域。象,即没有指向任何内存区域。312对象的象的创建建对象的象的创建也称建也称为对象的象的实例化,是在内存开辟一个区域,例化,是在内存开辟一个区域,保存新保存新创建的建的对象,一般格式象,一般格式为:对象名象名=new 构造方法构造方法(参数列表)(参数列表);new关关键字表示字表示创建建对象的意思,象的意思,对象象c1的的创建代建代码为:c1

25、=new Circle(10);10是是实参,参,传递给了构造方法的形参了构造方法的形参r,从而,从而c1的半径是的半径是10。此。此时,c1等于等于这个半径个半径为10的的圆所在的内存地址。所在的内存地址。也可以使用一行代也可以使用一行代码完成完成对象的声明和象的声明和创建,方法建,方法为:Circle c1=new Circle(10);3233Circle c1;c1Circle c1;c1nullnullnullnull c1=null;c1 c1=null;c1nullnullnullnullint x=3;xint x=3;x3 3 3 3c1=new Circle(10);c1c

26、1=new Circle(10);c10X1000X1000X1000X10010101010getR()getR()getR()getR()setR(),setR(),setR(),setR(),r r r r0X1000X1000X1000X100Circle c2;c2Circle c2;c2nullnullnullnull c2=null;c2 c2=null;c2nullnullnullnullc2=new Circle(15);c2c2=new Circle(15);c20X2000X2000X2000X20015151515getR()getR()getR()getR()setR

27、(),setR(),setR(),setR(),r r r r0X2000X2000X2000X2003对象的使用象的使用创建了建了对象后,通象后,通过使用使用“.”运算符来运算符来调用用对象的成象的成员变量和成量和成员方法。方法。调用格式用格式为:对象名象名.成成员变量量;对象名象名.成成员方法方法();例如:例如:double area=c1.getArea();34【例【例3-2】利用【例利用【例3-1】中定】中定义的的Circle类,定定义一个一个测试类TestCircle,在,在测试类中定中定义圆对象象c1,c1的半径的半径为20,计算算c1的面的面积,并,并输出出c1的面的面积。然

28、后然后调用无参数构造方法用无参数构造方法创建建对象象c2,修改,修改c2的半径的半径为15,输出出c2的周的周长。具体代。具体代码见ch3下的下的TestCircle.java35public class TestCircle public static void main(String args)Circle c1=new Circle(20);double s=c1.getArea();System.out.println(c1的面的面积是:是:+s);Circle c2=new Circle();c2.setR(15);double perimeter=c2.getPerimeter()

29、;System.out.println(c2的周的周长是:是:+perimeter);363.4 3.4 包包包包有有两个作用:一是解决命名冲突两个作用:一是解决命名冲突问题,同一个包中的,同一个包中的类不能重名,但不同包中的不能重名,但不同包中的类可以重名;二是通可以重名;二是通过包以包以及及访问权限控制符可以限制不同包之限控制符可以限制不同包之间类的的访问权限限。另外,在另外,在实际软件开件开发过程中,一般把功能相似或相关程中,一般把功能相似或相关的的类或接口或接口组织在同一个包中,方便在同一个包中,方便类或接口的或接口的查找和找和使用使用373.4.13.4.1包的定义包的定义包的定包的

30、定义照格式照格式为:package 包名包名;例如把例如把Circle类放到放到ch3包下,定包下,定义方法方法为:package ch3;public class Circle/类体的定体的定义省略省略 package语句必句必须是有效代是有效代码的第一行;的第一行;一个一个java源代源代码文件中只能写一个文件中只能写一个package语句,句,该文件中的所有文件中的所有类都属于都属于这个包;个包;包名可以是用包名可以是用“.”分割,形成分割,形成“包名包名.子包名子包名.子包名子包名子包名子包名”的形式;的形式;包名用小写,在磁包名用小写,在磁盘上体上体现为文件文件夹,子包名体,子包名体

31、现为子文件子文件夹。38有了包之后,有了包之后,java的程序的程序结构如下:构如下:package 包名包名;import 包名包名.类名名;import 包名包名.类名名;public class 类名名 public class 类名名 39【例【例3-3】编写一个写一个长方形方形类Rectangle,具有,具有长x和和宽y两个属性,具有求面两个属性,具有求面积的的方法方法getArea()和求周和求周长的方法的方法getPerimeter(),同,同时具有具有带2个参数的构造方法和无参个参数的构造方法和无参数的构造方法以及相数的构造方法以及相应的的set、get方法。方法。在在main

32、方法中要求从方法中要求从键盘中中输入一个入一个长和和宽,然后用,然后用输入的入的长和和宽创建一个建一个长方形方形r1,并,并输出出r1的面的面积和周和周长。代代码见ch3下的下的Rectangle.java403.4.2 3.4.2 带包类的编译和运行带包类的编译和运行定定义了包之后,了包之后,类的全称的全称应该是是“包名包名.类名名”,例如前面,例如前面的的Circle类和和Rectangle类都在都在ch3包下,包下,则全称是全称是ch3.Circle和和ch3.Rectangle。其中包名。其中包名ch3在磁在磁盘上表上表现为一个一个ch3文件文件夹。此。此时环境境变量量classpat

33、h应包含包名所包含包名所在的文件在的文件夹。比如准。比如准备把把编译后的程序放在后的程序放在D:myjava文件文件夹下,下,则实际的部署的部署为:D:myjavach3Circle.classD:myjavach3Rectangle.class环境境变量量classpath的内容的内容应该是:是:classpath=D:myjava;即从即从D:myjava目目录下找下找ch3.Circle和和ch3.Rectangle不能写成不能写成classpath=D:myjavach3;即即classpath应该定定义成包名成包名ch3所在的文件所在的文件夹。41在命令行下在命令行下编译时有两种方法

34、。有两种方法。(1)用)用带参数的参数的编译命令,格式如下:命令,格式如下:javac d 编译后包名所在的文件后包名所在的文件夹 源程序源程序例如把例如把Circle类及其包放到及其包放到D:myjava文件文件夹下,下,如果如果Circle.java放在放在E:src文件文件夹下,下,则编译命令命令写法写法为:javac d D:myjava E:srcCircle.java此此时,如果,如果ch3文件文件夹不存在,不存在,则自自动创建,同建,同时将将Circle.class文件放到文件放到ch3文件文件夹下,将下,将ch3文件文件放到放到D:myjava文件文件夹下。下。42(2)用普通

35、)用普通编译命令,然后手命令,然后手动创建包建包名所名所对应的文件的文件夹。例如把例如把Circle类及其包放到及其包放到D:myjava文文件件夹下,下,如果如果Circle.java放在放在E:src文件文件夹下,下,则编译命令写法命令写法为:javac E:srcCircle.java然后手然后手动在在D:myjava文件文件夹下下创建建ch3文文件件夹,并将,并将编译后的后的Circle.class文件拷文件拷贝到到D:myjavach3文件文件夹下。下。43运行运行时需要写需要写类的全称,即包括包名。同的全称,即包括包名。同时类中必中必须有有main方法才能运行。方法才能运行。运行运

36、行Rectangle使用如下的命令:使用如下的命令:java ch3.Rectangle443.5 3.5 方法的参数传递方法的参数传递Java中方法的参数有中方法的参数有4种种类型,分型,分别是:基是:基本本类型参数、型参数、对象参数、数象参数、数组参数和可参数和可变参参数。数。【例【例3-4】参数的】参数的传递例子例子代代码见ch3下的下的ParameterDemo.java文件文件45基本类型参数基本类型参数基本基本类型参数是型参数是值参数,参数,值参数保存的是参数的参数保存的是参数的值。调用方法用方法时,外部,外部变量,也就是量,也就是实参,把参,把值赋给形参,形形参,形参在方法体内起

37、作用,如果方法体内修改了形参的参在方法体内起作用,如果方法体内修改了形参的值,方法外的方法外的实参的参的值不受影响。不受影响。461 1 1 1m m2 2 2 2n ndemo.swap(m,n)demo.swap(m,n)void swap(int a,int b)void swap(int a,int b)完成完成a a和和b b的交换的交换 ParameterDemoParameterDemo里里的方法:的方法:mainmain方法:方法:2 2 2 21 1 1 1对象参数对象参数对象象类型参数是引用型参数,型参数是引用型参数,对象参数保存的是象参数保存的是对象的象的地址。地址。调用

38、方法用方法时,外部的,外部的实参把地址参把地址传递给引用引用类型型的形参,此的形参,此时形参和形参和实参指向的是同一个参指向的是同一个对象,所以,象,所以,在方法体内修改了形参指向的在方法体内修改了形参指向的对象的象的值,则实参参对应的的对象的象的值也修改了,因也修改了,因为是同一个是同一个对象象。471 1 1 1a a2 2 2 2b bdemo.swap(data)demo.swap(data)ParameterDemoParameterDemo里里的方法:的方法:mainmain方法:方法:0 x1000 x1000 x1000 x100void swap(Data data)void

39、 swap(Data data)完成完成datadata对象中的对象中的a a和和b b的交的交换换 0 x1000 x100datadata0 x1000 x1000 x1000 x100数组参数数组参数数数组参数也是引用型参数,数参数也是引用型参数,数组参数保存的也是地址。参数保存的也是地址。当方法体内修改了形参数当方法体内修改了形参数组变量的量的值时,实参参对应的数的数组的的值也改也改变了。了。483 3 3 3array10array104 4 4 4demo.swap(array1)demo.swap(array1)ParameterDemoParameterDemo里里的方法:的方

40、法:mainmain方法:方法:0 x1000 x1000 x1000 x100 void swap(int a)void swap(int a)完成完成a a数组里元素的换序数组里元素的换序 0 x1000 x100array1array10 x1000 x1000 x1000 x100array11array11可变参数可变参数可可变参数是指在方法的参数定参数是指在方法的参数定义时使用了使用了“”定定义的,的,这种参数允种参数允许方法方法调用用时传递多个多个实参参给这个可个可变参数参数。方法的参数中只允。方法的参数中只允许出出现一个一个可可变参数。而且如果方法的参数中既有固定参数,参数。而

41、且如果方法的参数中既有固定参数,又有可又有可变参数,可参数,可变参数必参数必须放在参数列表的最放在参数列表的最后后调用方法用方法时,可,可变参数既可以参数既可以传递参数列表(用参数列表(用逗号分隔的参数),也可以逗号分隔的参数),也可以传递数数组。如果是。如果是传递参数列表,参数列表,则形参形参值的改的改变不影响不影响实参的参的值,如果如果传递的是数的是数组,则形参数形参数组的的值改改变了,了,实参的参的值也会改也会改变49可变参数用数组调用可变参数用数组调用调用方法用方法时,可,可变参数既可以参数既可以传递参数列表(用逗号分参数列表(用逗号分隔的参数),也可以隔的参数),也可以传递数数组。如

42、果。如果传递的是数的是数组,则形参数形参数组的的值改改变了,了,实参的参的值也会改也会改变。503 3 3 3array20array204 4 4 4demo.swap(m,n,array2)demo.swap(m,n,array2)ParameterDemoParameterDemo里里的方法:的方法:mainmain方法方法:m,n:m,n 略略0 x1000 x1000 x1000 x100void swap(int a,int b,int.x)void swap(int a,int b,int.x)完成完成x x数组里元素的换序数组里元素的换序 0 x1000 x100array2a

43、rray20 x1000 x1000 x1000 x100array21array21可变参数用参数列表调用可变参数用参数列表调用调用方法用方法时,可,可变参数既可以参数既可以传递参数列表(用逗号分参数列表(用逗号分隔的参数),也可以隔的参数),也可以传递数数组。如果是。如果是传递参数列表,参数列表,则形参形参值的改的改变不影响不影响实参的参的值。513 3 3 3x x4 4 4 4demo.swap(m,n,x,y)demo.swap(m,n,x,y)ParameterDemoParameterDemo里里的方法:的方法:mainmain方法:方法:0 x1000 x1000 x1000

44、x100void swap(int a,int b,int.x)void swap(int a,int b,int.x)完成完成x x数组里元素的换序数组里元素的换序 y y3 3 3 3x0 x04 4 4 40 x1000 x100 x1x1m,n m,n 略略3.6 3.6 案例实训案例实训案例案例:模模拟银行存取款程序行存取款程序编写一个模写一个模拟银行行账户的程序,要求能的程序,要求能够完成开完成开户、存、存钱、取取钱、转账功能,每个功能,每个账户要求要求记录开开户时间、开、开户时存存入的金入的金额、账号、号、账户名称信息。并完成以下名称信息。并完成以下业务:给张三开三开户,账号号为

45、“001”,户名名为“张三三”,开,开户时存存入入1000元。元。给李四开李四开户,账号号为“002”,开,开户时存入存入1000元,元,户名名为“李四李四”。张三又存入三又存入2000元。李四取走元。李四取走500元。元。张三三转账给李四李四300元。元。最后最后显示示张三和李四的余三和李四的余额。52Account.javaBank.java 5354 本章小结本章小结本章介本章介绍了了类和和对象的概念象的概念要求大家能要求大家能够分清什么是分清什么是类,什么是,什么是对象,什么是成象,什么是成员变量(也称量(也称为属性)、什么是成属性)、什么是成员方法。方法。能能够理解抽象、封装、理解抽

46、象、封装、继承和多承和多态的含的含义。介介绍了如何用了如何用java语言定言定义类,掌握,掌握java类的的结构。构。了解包的定了解包的定义、包的作用,、包的作用,带包包类的的编译和运行方法。和运行方法。同同时,能,能够把根据把根据现实事物抽象出事物抽象出类、属性和方法,把、属性和方法,把现实问题转化化为java代代码。最后通最后通过一个模一个模拟银行行账户存取款例子,加深大家存取款例子,加深大家对面向面向对象程序象程序设计的理解。的理解。本章中容易出本章中容易出错的地方有以下几点:的地方有以下几点:1.public关关键字写成了字写成了Public2.把代把代码写在写在类的外面的外面3.在在类体内、方法外写了不是定体内、方法外写了不是定义属性属性变量的普通量的普通java代代码4.一个源程序文件中写了一个源程序文件中写了2个及以上的个及以上的public的的类5.java源程序文件中有源程序文件中有1个个public的的类,但文件名,但文件名不是用的不是用的public类的名字的名字6.get方法不方法不应该有参数,但写了参数;有参数,但写了参数;set方法方法应该写参数,但没有写参数写参数,但没有写参数55

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

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

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

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