Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第3章面向对象程序设计

上传人:E**** 文档编号:89156184 上传时间:2019-05-19 格式:PPT 页数:83 大小:514.51KB
返回 下载 相关 举报
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第3章面向对象程序设计_第1页
第1页 / 共83页
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第3章面向对象程序设计_第2页
第2页 / 共83页
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第3章面向对象程序设计_第3页
第3页 / 共83页
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第3章面向对象程序设计_第4页
第4页 / 共83页
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第3章面向对象程序设计_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第3章面向对象程序设计》由会员分享,可在线阅读,更多相关《Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第3章面向对象程序设计(83页珍藏版)》请在金锄头文库上搜索。

1、第3章面向对象程序设计,主讲教师:张群哲,3.1类的方法,学习目标 掌握方法的概念及定义格式 了解方法中变量的可见范围 掌握方法间参数的传递和返回值 掌握方法的重载 了解方法的嵌套和递归调用,项目8 方法的定义与重载计算多个几何图形的面积,项目任务:定义area方法,根据参数个数不同分别计算圆、矩形、梯形的面积,class Area static double area(double r) /半径求圆面积 return Math.PI*r*r; static double area(double l,double w) /长宽求矩形面积 return l*w; static double ar

2、ea(double d1,double d2,double h) /上下底和高求梯形面积 return (d1+d2)*h/2; public static void main(String args) /参数个数不同,调用不同方法 double s1=area(3.0); System.out.println(“1个参数:圆面积=“+s1); double s2=area(3.0,4.0); System.out.println(“2个参数:矩形面积=“+s2); double s3=area(3.0,4.0,5.0); System.out.println(“3个参数:梯形面积=“+s3)

3、; ,【相关知识】,1.方法的定义与调用 方法的定义是描述实现某个特定功能所需的数据及进行的运算和操作。 (1)方法的定义格式 修饰符 返回值类型 方法名 (形参说明) throws 异常名1,异常名2, 局部变量声明; 执行语句组; 方法头:大括号前面的部分 方法体:大括号中的部分 用“”括起的部分:并不一定要求在定义时出现,而是根据具体情况而定。,修饰符:用来规定方法的一些特征,如它的可见范围以及如何被调用等。常用的有public,private,static。 方法的返回值类型:可以是简单变量也可以是对象,如果没有返回值,就用void来描述 方法名:符合标识符的命名规则,方法名后面的小括

4、号必须有,那是方法的标志。 形参:用来接收外面传来的消息,相当于数学函数中的自变量。 throws:抛出方法可能会出现的运行异常(如被除数为零) 方法体:大括号后面的内容是方法体,其中包含了该方法的所有处理逻辑。,(2)方法的调用 程序调用方法:需要在程序中编写专门的调用语句来调用的方法,用户自定义的方法都属于这种方法; 系统调用方法:在程序执行过程中,系统自动调用的方法,如main()方法。 实际参数(简称实参)的个数、类型、顺序都必须与形式参数(简称形参)一致。 有返回值的方法:调用形式为表达式形式,如: double s2=area(3.0,4.0); 无返回值(void类型)的方法:调

5、用方法的形式为单独的加分号的语句。 如自定义输出方法print: static void print(String s) System.out.println(s); 调用print方法: print(“Welcome to Beijing!”);,2.参数传递和返回值,(1)传值:把实际参数的值赋给形式参数 实际参数和形式参数占用了不同的物理空间,彼此互相独立。,public class TransferValue public static void main(String args) int j=10; System.out.println(“j is : “+j); calculate

6、(j); System.out.println(“At last,j is : “+j); static void calculate(int j) /这里定义的形参j和main()中的j占用不同的内存。 for (int i=0;i10;i+) j+; System.out.println(“j in calculate() is: “+j); ,(2)传递地址 当用复合类型的变量作参数时,实际参数都会将自己的地址传送给形式参数 (3)方法的返回值 return后面表达的值必须和方法的返回值属同一类型 如果一个方法被定义成void,则方法中不需要return语句。,3.方法的重载(metho

7、d overloading),在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded), 如果两个方法的参数在顺序、个数、类型中有任一项不同,则认为这两个方法的参数声明是不同的。 当一个重载方法被调用时,Java 用参数的类型、顺序和(或)数量来表明实际调用的重载方法的版本。,/ Overload.java /方法重载中的参数自动类型转换 class Overload static void test() System.out.println(“No parameters“); static void

8、 test(double a) System.out.println(“Inside test(double) a: “ + a); public static void main(String args) int i = 88; test(); test(i); /参数自动类型转换成double test(123.2); ,【应用拓展】,1. 方法中变量的作用域 (1)方法内部同名变量 方法内部变量的作用域:从其被定义的位置开始,在同一个程序块中保持作用 /方法内部变量的作用域 public class Variable1 public static void main(String arg

9、s) int j=0; for (int i=0;i10;i+) System.out.println(“i in for loop=“+i); System.out.println(“i out of for loop=“+i); System.out.println(“j=“+j); ,(2)不同方法中的同名变量 在不同方法中也可以定义同名变量。 main(),testVar1()和testVar2()中定义了几个相同名字的变量,项目9 方法的嵌套与递归 计算n的阶乘,【项目任务】 求Cnx=n! / (x! (n-x)!),当n=11,x=4,6,8,10时的值。,/Factorial.

10、java class Factorial static long fact(int n) /求阶乘 long m=1; for (int x=1;x=n;x+) m*=x; return m; static long comb(int n,int x) return fact(n)/(fact(x)*fact(n-x); /调用阶乘方法fact public static void main(String args) int n=11,x; for(x=4;x11;x+=2) System.out.println(“C(“+n+“,“+x+“)=“+comb(n,x); /间接调用fact ,

11、【相关知识】,Java的方法调用可以嵌套,即一个方法可以调用另一个方法,但方法的定义不能嵌套。 在本案例中,方法调用层次是main()调用comb(),comb()调用fact()。,【应用拓展】,递归调用:在一个方法中如果有调用该方法自身的情况时,称为方法的递归调用。 递:递归将一个复杂的问题化简成解决方法相同但稍微简单的问题 归:当问题化到最简时,再逆向回代,求出结果 递归的关键是两部分:以求n!的方法fact(n)为例 递归的形式: fact(n)=fact(n-1)*n n1 递归的终止条件: fact(n)=1 n=1,3.2类的定义与构造,【学习目标】 掌握类的定义 掌握对象的定义

12、、创建和引用 掌握类的构造方法及其重载 了解类和成员修饰符的作用,项目10 类与对象的定义 定义长方形类Rectangle,【项目任务】 定义长方形类Rectangle,并利用类中的方法分别计算长和宽为10和20、4和8的两个长方形面积。,/ RectDemo.java class Rectangle double length; double width; double area() return length*width; /长*宽的值是double型,所以方法返回值为double型 void setDim(double w,double l) /设置长方形的大小 width=w; len

13、gth=l; public class RectDemo public static void main(String args) Rectangle rect1=new Rectangle(),rect2=new Rectangle(); /定义并构造对象 double area1,area2; rect1.setDim(10,20); /通过对象调用方法 area1=rect1.area(); rect2.setDim(4,8); area2=rect2.area(); System.out.println(“area1=“+area1+“ area2=“+area2); ,【相关知识】,

14、1.类与对象的关系 类是组成Java程序的基本元素,它封装了一系列的变量(即数据成员,也称为“域field”)和方法(即成员方法method)。 创建一个新的类,就是创建一个新的数据类型 实例化一个类,就得到一个对象。对象就是一组变量和相关方法的集合,其中变量表明对象的状态、属性,方法表明对象所具有的行为。 Java程序先定义类,再按照类的模式建造对象(这一步称为类的实例化),最后用对象来完成程序功能。,【相关知识】,2.类定义 类定义语句的一般形式为: 修饰符 class 类名 extends 父类名 implements 接口名1,接口名2, 成员变量声明; 方法成员声明; class、e

15、xtends和implements都是Java的关键字 类定义中必须要写的内容是类名,应该使用Java语言合法的标识符来对自定义的类命名。 大括号中是定义类体的地方,指明该类中包含的数据成员和方法成员。在Java语言中也允许定义没有任何成员的空类。,定义多个类 并列 一个类接着一个类进行定义,它们之间是并列的关系 编译后都会产生多个.class文件 嵌套 在一个类中定义另外的类,它们之间是包含和被包含的关系 编译后只产生一个.class文件,如果在RectDemo类中内嵌Rectangle类,则产生的.class文件名称为RectDemo$Rectangle.class。,3.类对象 (1)定

16、义和创建对象 定义对象:声明这个对象名是某个类的实例 类名 对象名1,对象名2,; 创建对象:是在内存中为一个对象开辟一个空间。 对象名=new 类名(); 同时定义和创建对象: 类名 对象名1=new 类名(),对象名2=new 类名(); Rectangle rect1=new Rectangle(),rect2=new Rectangle();,(2)引用对象 访问对象成员的一般形式: 对象名.方法名() 运算符“.”:成员运算符,在对象名和成员名之间起到连接的作用,指明是哪个对象的哪个成员。 Rectangle r=new Rectangle(); /定义类的对象 System.out.print(r.length+” ”+r.width); /引用对象的数据成

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号