带参数的方法(下)
二.深入理解带参方法
1.数组作为带参数的方法
public class StudentsBiz{ /** * 求平均分 * @param scores 参赛成绩的数组 */ public double calAvg(int[] scores){ int sum=0; double avg=0.0; for(int i=0;i<scores.lengh; i++){ sum+=scores[i]; } avg=(double)sum/scores.lengh; return avg; } /** * 求最高分· * @param scores 参赛成绩的数组 */ public double calMax(int[] scores){ int max=scores[0]; for(int i=0;i<scores.lengh; i++){ if(max<scores[i]){ max=scores[i]; } } return max; } }
测试类:
StudentsBiz st=new StudentsBiz(); int [] scores =new int [5]; //保存比赛成绩 Scanner input =new Scanner(System.in); System.out.println("请输入五位的成绩:"); for (int i=0; i<5; i++){ scores[i] =input.nextInt(); } //输出平均分 double avg=st.calAvg(scores); System.out.println("平均分:"+avg); //输出最高成绩 int max =st.calMax(scores); System.out.println("最高成绩:"+max);
StudentsBiz类定义了两个方法,分别实现了求平均分和最高分,他们都是带数组参数并带有返回值的方法
参数scores 数组传递了所有学员的成绩,而且定义方法时并没有指定数组大小,而是在调用方法时确定要传递的数组的大小。
2.对象作为参数的方法
如果要实现增加一个学员的姓名及年龄和成绩,就要把增加的学员的姓名以及年龄成绩等信息封装到一个学生类里面,需要在方法中传递一个学生对象就可以了。
/** *学生类 */ class Student{ public int id; public string name; public int age; public int score; public void showInfo{ System.out.println(id+""+name+""+age+""+score:"); } }
/** *学生管理类 */ public class Students{ Student [] student= new Student[30]; //学生数组 /** *增加学生 *@param 一个学生 */ public void add(Studen stu){ for(int i=0;i<student.lengh; i++){ if(students[i]==null){ students[i]=stu; break; } } } /** *显示本班学生信息
*/ public void add(Studen stu){ System.out.println("本班学生列表:"); for(int i=0;i<student.lengh; i++){ if(students[i]!=null){ students[i].shoeInfo(); break; } } }
调用该方法:
Student student =new Student(); student.id=10; studemt.name="王子"; student.age=15; student . score=88; Student student1 =new Student(); student1.id=11; studemt1.name="公主"; student1.age=12; student1.score=100 Student stdentBiz=new Student(); studentBiz.add(student); studentBiz.add(student1); studentBiz.show(); //显示学员信息
3.为什么需要包?
在复杂的文件中,文件分门别类储存在不同的文件夹中解决了文件名冲突的问题,Java程序也是如此,开发大型的工程可以编写成千上万个类,防止命名冲突,Java提供包来管理类,类似于文件储存在文件夹里。
包的作用:
3.1 包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件
3.2 防止命名发生冲突
3.3 包允许在更广的范围内保护类,数据,和方法,可以再包内定义类
***声明包:
package cn.jbit.classandobject; //声明包
package 包名;
package是Java关键字。包的声明必须是Java源文件中的第一条非注释性语句,而且一个源文件只能有一个包声明语句。
*****在命名包时的规则:
1.Java包的名字通常由小写字母组成,不能以圆点开头或结尾
2.一个唯一包名的前缀是全部小写的ASCII字母,并且是一个顶级域名com,edu,gov,net或org,通常使用组织的网络域名的逆序
3.包名的后续部分依不同的机构各自内部的规范不同而不同。这类命名规范可以是特定目录名的组成来区分部门,项目、机器或注册名
***在MyEclipes中创建包有以下两种方式:
1.分别创建包和类
首先创建新项目-然后选择 “File”-“New”-“Package”’选项。在弹出的“New Java Package”对话框中,在“Name”文本框中填写包名,。然后点击“Finish”
2.在创建类的过程中创建类所属的包
***包和目录的关系
在Java中每个包都对应与文件系统中同名的子目录,包的嵌套反映了文件系统中的目录层次。声明包事实上是在文件系统中创建了相对应的一层层文件夹
****如何导包
import 包名.类名
import 包名.*
声明包的含义:声明当前类所处的位置
导入包的含义:声明在当前类中要使用到的其他类所处的位置