1.定义带参数的方法
①带参数:方法中某种功能的实现依赖于我们给它的初始信息,这时候在定义方法时需要在括号中加入参数列表
②语法:
访问修饰符 返回值类型 方法名(参数列表){
//方法的主体
}
2.调用带参的方法
①语法:
对象名.方法名(参数1,参数2,...)
②注意:
(1)先实例化对象,在调用方法
(2)实参的类型、数量、顺序要与形参的一一对应
3.带多个参数的方法
带参方法的参数个数无论多少,在使用时只要注意实参和形参一一对应:传递实参值与形参的数据类型相同、个数相同、顺序一致
4.常见错误
①代码中,调用方法时,在传递的实参前不添加数据类型
正确格式:对象名.方法名(<要赋予的内容>)
②代码中,形参和实参的数据类型要一致、数量要一致、数序要一致
③方法定义有返回值,但是调用该方法后没有对返回值进行任何处理(语法结构上不错,但程序设计上算程序设计错误的一种)
5.换行、空格
\n\t\r
6.数组作为参数的方法
//求五位同学的成绩的平均分及最高分
public class StudentsBiz1 {
/**
* 求平均分
*/
public double calAvg(int[] scores){
int sum=0;//总成绩
double avg=0.0;//平均分
for(int i=0;i<scores.length;i++){//遍历数组,累计总成绩
sum+=scores[i];
}
avg=(double)sum/scores.length;//平均成绩=总成绩/数组长度
return avg;
}
/**
* 求最高分
*/
public int calMax(int[] scores){
int max=scores[0];//当前最高分
for(int i=1;i<scores.length;i++){//遍历数组,找最大值
if(max<scores[i]){//如果当前最大值<当前数,则赋值给最大值
max=scores[i];
}
}
return max;
}
}
//测试类
import java.util.Scanner;
public class TestCal {
public static void main(String[] args) {
StudentsBiz1 st=new StudentsBiz1();
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 avgScore=st.calAvg(scores);
System.out.println("平均成绩:"+avgScore);
//输出最高成绩
int maxScore=st.calMax(scores);
System.out.println("最高成绩:"+maxScore);
}
}
7.对象作为参数的方法
//添加学生信息
/**
* 学生类
*/
class Student{
public int id;//序号
public String name;//姓名
public int age;//年龄
public int score;//得分
public void showInfo(){
System.out.println("序号\t姓名\t年龄\t得分");
System.out.println(id+"\t"+name+"\t"+age+"\t"+score);
}
}
/**
*学生管理类
*/
public class StudentsBiz2 {
Student[] students=new Student[30];//学生数组
/**
* 增加学生
*/
public void addStudent(Student stu){//传参stu
for(int i=0;i<students.length;i++){//遍历数组,录入stu的信息
if(students[i]==null){//当前数组为空时将信息传入
students[i]=stu;
break;
}
}
}
/**
* 显示本班学生信息
*/
public void showStudents(){
System.out.println("本班学生列表:");
for(int i=0;i<students.length;i++){//遍历数组输出信息
if(students[i]!=null){//当前数组中不为空则调用输出
students[i].showInfo();
//break;//加break则执行一次结束
}
}
System.out.println();
}
}
//测试类
import java.util.Scanner;
public class TsetAdd2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//实例化学生对象并初始化
Student student1=new Student();//创建对象1
//给对象1赋值
student1.id=10;
student1.name="王紫";
student1.age=18;
student1.score=99;
Student student2=new Student();//创建对象2
//给对象2赋值
student2.id=11;
student2.name="郝湉";
student2.age=19;
student2.score=60;
//新增学生对象
StudentsBiz2 studentsBiz=new StudentsBiz2();//创建StudentsBiz2对象
studentsBiz.addStudent(student1);//调用
studentsBiz.addStudent(student2);
studentsBiz.showStudents();//显示学生信息
}
//对象作为参数
//用类名声明的数组称之为对象数组 存储的元素都是该类的对象
/*TsetAdd2 arr[]=new TsetAdd2[5];
* arr[0]=student1;//类类型
* arr[1]=student2;
*/
}
8.为什么需要包
①包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件。
②防止命名冲突。
③包允许在更广的范围内保护类、数据和方法,可以在包内定义类。
9.如何声明包
①要声明一个包(package),只要包含一个package命令作为一个Java源文件的第一条语句就可以。
②语法
package 包名;
package是关键字,包的声明必须是Java源文件中的第一条非注释性的语句,而且一个源文件只能有一个声明包的语句。
③包名规范
(1)Java包的名字通常由小写字母组成,不能以圆点开头或结尾
(2)一个唯一包名的前缀通常是全部的小写的ASCLL字母,并且是一个顶级域名com、edu、gov、net或org,通常使用组织的网络域名的逆序。
(3)包名的后续部分依不同机构各自内部的规范不同而不同。 这类命名规范可能以特定目录名的组成来区分部门、项目、机器或注册名。
10.使用MyEclipse创建包
方法一:分别创建包和类
方法二:在创建类的过程中创建类所属的包
11.如何导入包
①语法:
import 包名.类名;
②如果要使用包下的某些类(多于一个)在使用import导入时,可以使用“包名.*”
语法:
import包名.*;
③注意:包的声明位于源文件的第一条语句,import语句要写在类定义之前
④小结:
(1)声明包的含义:生命在当前类所处的位置
(2)导入包的含义:声明在当前类中要使用到的其他类所处的位置