当前位置:首页 > 商业/管理/HR > 薪酬管理 > 面向对象程序设计 (8)
第七章使用方法学习目标:方法的声明方法调用方法的参数传递和返回值方法的重载方法使用概述•到目前为止所示的程序都是main内的操作•使用方法,可以用适当的方法来执行操作。使用方法的优点•要求对象做某一事情•精确地定义对象可以做什么•获取和设置值•使程序的可读性更好而且更易维护•使开发和维护更快捷•可重复使用软件方法有两种:一种是标准方法,JavaAPI提供了丰富的类和方法,这些方法提供了程序员所需的许多功能。另一种是用户自定义的方法,以解决用户专门需要。Java应用程序中,程序的执行从main方法开始,调用其他方法后又回到main方法,在main方法中结束整个程序的运行。操作方法和调用方法•publicclassAllInMain{publicstaticvoidmain(Stringargs[]){intint1=42;intint2=24;System.out.println(int1+int2);}}•这种方法是简洁的,但是它:在较大的应用程序中是不现实的没有使用面向对象的思想还有其它缺点操作方法和调用方法•调用方法让对象用它的一个方法来为你做某件事情。调用方法除调用操作方法外,通常还有普通的方法操作•对象的调用方法可以为您:获得输入信息返回一条信息查看结果:BoxDemo3.java调用方法与操作方法的独立存在:声明方法•操作方法和调用方法具有相同的语法结构•在所有示例中并不包含全部可能的方法查看结果:BoxDemo4.java调用方法•特别是从不同的方法中调用方法•调用方法暂停,操作方法接着执行•调用方法从它调用操作方法的调用点后继续执行•调用方法和操作方法可以在同一个类中或在不同的类中•可以按任何顺序调用方法传递参数•将参数放在调用方法的括号内•传递字面值或变量•按方法声明中的顺序列出参数查看结果:BoxDemo5.java参数传递—基本数据类型的参数传递查看结果:PassParam.java参数传递—引用数据类型的参数传递查看结果:PassObject1.java查看结果:CallByValue.java查看结果:PassObject2.java接收返回值•返回值返回到代码中调用它时所在的位置mathRef.add(2,4);•调用了方法的表达式等于返回值•使用返回值时,可以将调用和返回值的使用在同一行内完成intaddedNumbers=mathRef.add(2,4);方法体中如果指定了非void的返回值类型,方法中就必须包含一条return语句保证任何情况下都有返回值,return语句之后不能跟任何表达式;查看结果:BoxDemo4.java对象方法和Static(静态)方法•对象方法需要创建一个对象•静态方法的运行可以没有对象•这些方法与类相关,但又不对与某一特定对象关联的变量进行操作static方法是属于整个类的,而不是属于某个实例(具体的对象)。而对象方法属于每个实例,只能在类的实例和子类的实例中调用。static静态变量•当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。•我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量。查看结果:TestChinese.javastatic静态方法•在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。•main()方法是静态的,因此JVM在执行main方法时不创建main方法所在的类的实例对象,因而在main()方法中,我们不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员。理解main方法的语法由于java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public,又因为java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的,该方法接收一个String类型的数组参数,该数组中保存执行时传递给所运行的类的参数。对象方法Static静态方法的调用方式:类名.方法名如:方法Math.random()和Integer.parseInt()是直接用类名进行访问。static方法何时声明静态方法•在下列情况下将方法定义为静态的:在哪一个对象上执行操作并不是很重要方法的操作必须在实例化对象之前运行方法履行的职责在逻辑上不属于一个对象方法重载•有些方法执行同样的任务但具有不同的参数•如果方法的方法签名唯一,则可以取相同的名称•特点:–同一个类中–同一名字–不同数目的参数–不同类型的参数举例:要打印不同类型的数据,int,float,String不需要定义不同名的方法:printInt(int);printFloat(float);printString(String)利用方法重载,只需要定义一个方法名查看结果:MethodOverloadingTest.java查看结果:OverLoad.java查看结果:OverLoad2.java周五上机实验任务•填写实验报告4-1、5-1、5-2、5-3
本文标题:面向对象程序设计 (8)
链接地址:https://www.777doc.com/doc-3968301 .html