一.带参数的方法
1. 语法:
<访问修饰符> 返回类型 <方法名>(<形式参数列表>) {
//方法的主体
}
2. 案例:
榨汁机
public class ZhazhiJi {
//带参数的方法
public String zhazhi(String fruit){ //形参
String juice=fruit+"汁";
return juice;
}
}
public class ZhazhijiTest {
public static void main(String[] args) {
//创建类的对象实例
ZhazhiJi zhazhiji=new ZhazhiJi();
//用.的方式进行调用
String fruit="苹果";
String juice = zhazhiji.zhazhi(fruit); //实参
System.out.println(juice);
}
}
3. 形参和实参:
形参代表定义方法时括号内的参数(参数列表) public void xc(形参)
实参代表在调用方法时方法括号内的参数(参数列表) .xc(实参);
4. 携带多个参数:
注意:当携带多个参数时,实参列表需要和形参列表的顺序和数据类型保持一致
案例:从开始位置开始查找数组中是否有学生姓名,查找到结束位置
//从开始位置到结束位置查找学生
public void seachStudent(int firstindex,int secondindex,String name){
for (int i = firstindex; i <=secondindex; i++) {
if(names[i].equals(name)){
System.out.println("找到了!");
break;
}else{
System.out.println("没找到!");
}
}
}
stu.seachStudent(2,8,"陈八");
二.数组作为参数:
1. 案例:
有5位学员参加了Java知识竞赛的决赛,输出决赛的平均成绩和最高成绩
public class JavaScore {
//计算平均成绩
public double avgscore(double[] score){
double avg=0.0; //平均分
double sum=0.0; //总成绩
for (int i = 0; i < score.length; i++) {
sum=sum+score[i];
}
avg=sum/score.length;
return avg;
}
//计算数组的最高成绩
public double maxscore(double[] score){
double max=score[0]; //最高分
for (int i = 0; i < score.length; i++) {
if(max<score[i]){
max=score[i];
}
}
return max;
}
}
public class JavaScoreTest {
public static void main(String[] args) {
double [] scores=new double[5];
Scanner input=new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println("请输入第"+(i+1)+"位学员的成绩:");
double score=input.nextDouble();
scores[i]=score;
}
JavaScore javascore=new JavaScore();
double avgscore = javascore.avgscore(scores);
double maxscore = javascore.maxscore(scores);
System.out.println("平均成绩为:"+avgscore);
System.out.println("最高成绩为:"+maxscore);
}
}
三.对象作为参数:
1. 对象数组:
例如:Student [] stus=new Student[5];
访问对象数组中的元素通过stus[]的方式进行访问
案例:在实现了增加一个学生姓名的基础上,增加学生的学号、年龄和成绩,并显示这些信息
public class Student {
int stuno; // 学号
String name; // 姓名
int age; // 年龄
double score; // 成绩
/**
* 创建一个数组:保存学生
*/
Student[] stus = new Student[30]; // 对象数组:存储一堆对象 对象类型
// 添加学生
public void addStudent(Student stu) {
for (int i = 0; i < stus.length; i++) {
if (stus[i] == null) {
stus[i] = stu;
break;
}
}
}
// 展示学生信息
public void showStudent() {
for (int i = 0; i < stus.length; i++) {
if (stus[i] != null) {
System.out.println(stus[i].stuno + " " + stus[i].name + " "
+ stus[i].age + " " + stus[i].score);
}
}
}
}
public class StudentTest {
public static void main(String[] args) {
/*Student stu1=new Student();
stu1.name="赵四";
stu1.stuno=1;
stu1.age=10;
stu1.score=80;
stu1.addStudent(stu1);
Student stu2=new Student();
stu2.name="张三";
stu2.stuno=2;
stu2.age=20;
stu2.score=95;
stu1.addStudent(stu2);
stu1.showStudent();*/
Scanner input=new Scanner(System.in);
Student stus=new Student();
for (int i = 1; i <=5; i++) {
Student stu=new Student();
System.out.println("请输入第"+i+"位学生编号:");
stu.stuno=input.nextInt();
System.out.println("请输入第"+i+"位学生姓名:");
stu.name=input.next();
System.out.println("请输入第"+i+"位学生年龄:");
stu.age=input.nextInt();
System.out.println("请输入第"+i+"位学生成绩:");
stu.score=input.nextDouble();
stus.addStudent(stu);
}
stus.showStudent();
}
}
四.包
1.好处:
(1)允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件
(2)防止命名冲突
(3)更好的保护类、属性和方法
创建包的语法:package
导入包的语法:import
2.创建包的两种方式:
(1)选择项目下的src目录右键-->New-->package
(2)创建类的时候指定包名,如果没有包,则为默认的default package