对象或对象数组作为方法参数_习题

来源:互联网 发布:mac上好用的课程表 编辑:程序博客网 时间:2024/05/17 22:12
【习题】:拓展MyShopping系统,增加会员编号和会员积分,要求用带参数的方法实现。
方法1:使用对象做为参数(书上范例使用该方法)

import java.util.Scanner;

/**
* @author Chieh
*/
//会员类
class Customer{
int num, jifen;
}
//会员操作类
class CustManager{
Customer[] customers = new Customer[60];//定义会员对象数组
//新增会员
public void addcst(Customer cst){//这里接收的是单个对象
for(int i=0; i<customers.length; i++){
if(customers[i]==null){//如customers[i]对象是空的,则将接收的对象地址赋它
customers[i] = cst;
break;
}
}
}
//显示会员信息
public void show(){
for(int i=0; i<customers.length; i++){
if(customers[i]!=null){
System.out.println("编号:"+customers[i].num+"\t积分:"+customers[i].jifen);
}
}
}
}
public class Dm{

public static void main(String[] args) {

Customer[] csts = new Customer[60];
CustManager test = new CustManager();//实例化
Scanner input = new Scanner(System.in);

int i = 0;
String ch = " ";
boolean con = true;
do{
System.out.print("请输入会员编号:");
csts[i] = new Customer();
csts[i].num = input.nextInt();
System.out.print("请输入会员积分:");
csts[i].jifen = input.nextInt();
test.addcst(csts[i]);//每输入一次,调用新增会员方法将当前对象传递过去
System.out.print("是否继续?y/n :");
ch = input.next();
if(ch.equals("n")){
con = false;
}
i++;
}while(con);
test.show();
}
}
/*-------------------------
请输入会员编号:1111
请输入会员积分:741
是否继续?y/n :y
请输入会员编号:2222
请输入会员积分:852
是否继续?y/n :y
请输入会员编号:3333
请输入会员积分:963
是否继续?y/n :n
编号:1111 积分:741
编号:2222 积分:852
编号:3333 积分:963
-------------------------*/


方法2:自己尝试的方法,直接传递对象数组(该方法相对来说要简洁)

import java.util.Scanner;

/**
* @author Chieh
*/
//会员类
class Customer{
int num, jifen;
}
//会员操作类
class CustManager{
Customer[] customers = new Customer[60];//定义会员对象数组
//新增会员
public void addcst(Customer[] csts){ //这里接收的是一个对象数组
customers = csts;
}
//显示会员信息
public void show(){
for(int i=0; i<customers.length; i++){
if(customers[i]!=null){//若每单个会员对象的值不为空,刚输出该对象相关信息
System.out.println("编号:"+customers[i].num+"\t积分:"+customers[i].jifen);
}
}
}
}
public class Dm1{

public static void main(String[] args) {

Customer[] csts = new Customer[60];
Scanner input = new Scanner(System.in);

int i = 0;
String ch = " ";
boolean con = true;
do{
System.out.print("请输入会员编号:");
csts[i] = new Customer();
csts[i].num = input.nextInt();
System.out.print("请输入会员积分:");
csts[i].jifen = input.nextInt();
System.out.print("是否继续?y/n :");
ch = input.next();
if(ch.equals("n")){
con = false;
}
i++;
}while(con);
CustManager test = new CustManager();
test.addcst(csts);//调用添加会员的方法,将整个数组csts传递过去
test.show();
}
}
/*--------------------------
请输入会员编号:1000
请输入会员积分:120
是否继续?y/n :y
请输入会员编号:1001
请输入会员积分:169
是否继续?y/n :y
请输入会员编号:1002
请输入会员积分:230
是否继续?y/n :n
编号:1000 积分:120
编号:1001 积分:169
编号:1002 积分:230
--------------------------*/



0 0
原创粉丝点击