Java带参数的方法-3

 

调用该方法的类代码如下。

package cn.jbit.class4;
import java.util.Scanner;
public class TestAdd {
   
/**
     *
调用有参方法
    
*/
   
public static void main(String[] args) {
       
//实例化学生对象
       
Student student1=new Student();
       
student1.id=10;
       
student1.name="王紫";
       
student1.age=18;
       
student1.score=99;
       
Student student2=new Student();
       
student2.id=11;
       
student2.name="郝田";
       
student2.age=19;
       
student2.score=60;
       
//新增学生对象
       
StudentsBiz studentsBiz=new StudentsBiz();
       
studentsBiz.addStudent(student1);
       
studentsBiz.addStudent(student2);
       
studentsBiz.showStudents();//显示学生信息
   
}
}

在示例 5 中, Student[] students = new Student[30] ; 表示声明了大小为 30 的学生对象数组,即数组 students 可以存储 30 个学生对象。

方法 addStudent (Student stu) 带有一个 Student 类型的参数,调用时将传递一个学生对象。就传递的参数而言,这里的 Student 类型的参数与前面学习的 int 、 String 等类型的参数相同,需要保证形参和实参的一致。程序运行结果如图 14.4 所示。


图 14.4 示例 5 的运行结果

注意:关于数组和对象作为参数的情况,大家先模仿示例,掌握其基本用法,在第二学期会进行更深入的学习。

14.2.3 技能训练

上机练习3

指导——实现对客户姓名的排序

训练要点

  • 带参方法的调用。
  • 数组作为方法的参数。

需求说明

  • 编写方法,实现对客户姓名的排序。程序运行结果如图所示。

图 14.5 上机练习 3 的运行结果

实现思路及关键代码

(1)  利用数组存储学生姓名。

(2)  定义一个方法来实现姓名排序,该方法的参数为排序前的姓名数组。

(3)  创建测试类,调用排序的方法,并输出排序前和排序后的姓名信息。

参考解决方案

第一种方法:

package cn.jbit.test3;
import java.util.Arrays;
/*
 *
实现客户信息的管理
 *
 */

public class Custmoer {
   
public void show(String[] names) {
       
System.out.println("**************排序前**************");
       
for (String string : names) {     //增强for循环,遍历
           
System.out.print(string + " ");
        }
       
Arrays.sort(names);
       
System.out.println("\n**************排序后**************");
       
for (String string : names) {
           
System.out.print(string + " ");
        }
    }
   
public static void main(String[] args) {
       
Custmoer s=new Custmoer();
       
String[] names={"Tom","Jack","Mery","Smith","Sunny"};   // 客户名字
       
s.show(names);
    }
}

第二种方法

创建CustomerBiz类的过程:

package cn.jbit.test3;
import java.util.*;
import java.util.Arrays;
/*
 *
实现客户信息的管理
 *
 */

public class CustomerBiz {
       
// 字符串数组作为参数和返回值
       
public String[] sortNames(String[] names) {
           
Arrays.sort(names);
           
return names;
        }
}

测试类:

package cn.jbit.test3;
public class TestSort {
   
public static void main(String[] args) {
       
CustomerBiz st = new CustomerBiz();
       
String[] namesbysort = new String[] { "Tom", "Jack", "Merry", "Smith","Sunny" };
       
System.out.println("****排序前****");
       
for (int i = 0; i < namesbysort.length; i++) {
           
if (namesbysort[i] != null) {
               
System.out.print(namesbysort[i] + "\t");
            }
        }
       
//调用排序方法
       
st.sortNames(namesbysort);
       
System.out.println("\n****排序后****");
       
for (int i = 0; i < namesbysort.length; i++) {
           
if (namesbysort[i] != null) {
               
System.out.print(namesbysort[i] + "\t");
            }
        }
    }
}

上机练习4

练习——实现客户信息的添加和显示

需求说明

  • 改进上机练习 1, 实现添加客户信息,客户信息包括姓名、年龄、是否有会员卡。
  • 程序运行结果如图 14.6 所示。

图 14.6 上机练习 4 的运行结果

提示:

  • 定义 Customer 类,包含的属性有姓名、年龄、是否是会员;包含的方法有输出基本信息。
  • 在 CustomerBiz 类中声明客户对象数组,Customer [ ] Customers = new Customer [30];
  • 在 CustomerBiz 类中创建方法 addCustomer(Customer cust),实现客户对象的添加。
  • 在 CustomerBiz 类中创建方法 showCustomers(),输出客户对象信息。
  • 在 TestCustomer 类中创建客户对象,实现添加客户信息和输出客户信息。

参考代码:

客户类:

package cn.jbit.test5;
/*
 *
 *
客户类
 *
 */

class Customer {
   
public String name;
   
public int age;
   
public boolean isMember;
   
public void showInfo() {
       
System.out.println(name + "\t" + age + "\t" + isMember);
    }
}

实现管理客户信息:

package cn.jbit.test5;
/*
 *
 *
实现客户信息的管理
 *
 */

class CustomersBiz {
   
Customer[] customers = new Customer[30]; // 客户数组
   
/*
     *
增加客户
     *
     * @param
一个客户
     */
   
public void addCustomer(Customer cust) {
       
for (int i = 0; i < customers.length; i++) {
           
if (customers[i] == null) {
               
customers[i] = cust;
               
break;
            }
        }
    }
   
/*
     *
显示客户信息
     *
     */
   
public void showCustomers() {
       
System.out.println("客户信息:");
       
for (int i = 0; i < customers.length; i++) {
           
if (customers[i] != null) {
               
customers[i].showInfo();
            }
        }
       
System.out.println();
    }
}

调用有参方法:

package cn.jbit.test5;
import java.util.Scanner;
public class TestAdd {
   
/*
     *
调用有参方法
     */
   
public static void main(String[] args) {
       
// 实例化客户对象
       
Customer customer1 = new Customer();
       
customer1.name = "王一";
       
customer1.age = 30;
       
customer1.isMember = false;
       
Customer customer2 = new Customer();
       
customer2.name = "郝强";
       
customer2.age = 19;
       
customer2.isMember = true;
       
// 新增客户对象
       
CustomersBiz customersBiz = new CustomersBiz();
       
customersBiz.addCustomer(customer1);
       
customersBiz.addCustomer(customer2);
       
customersBiz.showCustomers();// 显示客户信息
   
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值