Java 方法的参数传递机制及简单模拟注册功能

方法:

1.方法的定义

[访问修饰符 修饰符] 方法返回类型 方法名(形参列表) {方法体;}
public private default(没有修饰符) protected
static
返回类型:无返回值void,有返回值的 任何数据类型
void可以有return;

   public static void sum(){
   System.out.print(nums);
   return//表示方法结束
   }
如果方法有返回值,那么必须有return  返回值
方法的返回类型>=方法返回值类型   ??
  public static float sum(){
   return 1+2;
   }
   public static int[] f(){ return new int[1]);
   

形参列表:多个参数用,分开

  public static int sum(int x,int y){
   return x+y;
   }

方法体:就是方法完成的功能代码

2.方法的调用

方法名(实参列表)
sum(22,33)

3.方法重载

同一个类(继承关系)
方法名相同,参数列表不同(参数个数,类型,顺序)
和方法的返回类型无关
public void f(int x){}
public int f(int y){return 1;}
public void f(int x,int y){return x+y;}
一个类中同名方法不是重载便错

4.值传递

如果基本数据类型,方法内改变,原值不变
如果是地址(数组),地址不变,数据发生变化,原值也发生变化

public static void f(int n){
		n = 3;
	}
	public static void f2(int [] a){
		a[0]=9;
	}
	public static void f3(int [] a1){
		a1 = new int[5];
		a1[0]=9;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int n = 5;
		f(n);
		System.out.println(n);//? 5
		int a[] = {1,2,3,4,5};
		f2(a);
		System.out.println(a[0]); //?  9
		int[] a1= {1,2,3,4,5};
		f3(a1);
		
		System.out.println(a1[0]); //?  1
	}

模拟注册功能

1.使用数组存储个人信息;
2.register(String id,String name,String pwd,String email):void;
3.check(String name,String pwd):boolean
4.updateInfo(String name,String email):void
5.updatePwd(String newPwd):void

main方法
1.注册
2.登录
0.退出系统

登陆成功之后,进入用户管理
1.修改个人信息
2.修改密码
0.返回上一级菜单


代码如下:

public class DemoShop {
	//定义存储用户信息的数组
	static String arrId[] = {} ;
	static String arrName[] = {};
	static String arrPw[] = {};
	static String arrEmail[] = {};
	static int loginIndex = -1;
	
	//用户注册
	public static void register(String id,String name,
			String pw,String email){
		//{1,2}
		//{张三,李四}
		//{1111,2222}
		//{zs@tedu.cn,li@tedu.cn}
		//数组的扩容
		arrId = Arrays.copyOf(arrId, arrId.length+1);
		arrName = Arrays.copyOf(arrName, arrName.length+1);
		arrPw = Arrays.copyOf(arrPw, arrPw.length+1);
		arrEmail = Arrays.copyOf(arrEmail, arrEmail.length+1);
		//注册用户
		arrId[arrId.length-1] = id;
		arrName[arrName.length-1] = name;
		arrPw[arrPw.length-1] = pw;
		arrEmail[arrEmail.length-1] = email;
		
	}
	//测试注册是否成功
	public static void showInfo(){
		for(int i =0;i<arrId.length;i++){
			System.out.println(arrId[i]+arrName[i]+arrPw[i]+arrEmail[i]);
		}
	}
	
	//验证用户名和密码  3次
	public static boolean check(String name,String pw){
		int flag = 0;//表示没用用户名或密码
		
		for(int i = 0; i < arrName.length;i++){
			if(arrName[i].equals(name)&&arrPw[i].equals(pw)){
				//flag = 1;
				//存储登录用户的下标
				loginIndex = i;
				return true;	
			}
		}
		return false;
		/*if(flag == 1){
			return true;
		}else{
			return false;
		}*/
	}
	//修改个人信息
	public static void updateInfo(String name,String email){
		arrName[loginIndex] = name;
		arrEmail[loginIndex] = email;
	}
	
	//修改密码
	public static void updatePw(String newPw){
		arrPw[loginIndex] = newPw;
	}

	public static void main(String[] args) {
		//欢迎页面信息
		System.out.println("-------欢迎进入客户管理模块-------");
		
		//接收键盘输入
		Scanner sc = new Scanner(System.in);
		while(true){
			System.out.println("1 注册");
			System.out.println("2 登录");
			System.out.println("0 退出系统");
			System.out.println("请输入编号:");
			int num = sc.nextInt();
			switch(num){
			case 1:
				System.out.println("请输入客户编号:");
				String id = sc.next();
				System.out.println("请输入客户姓名:");
				String name = sc.next();
				System.out.println("请输入客户密码:");
				String pw = sc.next();
				System.out.println("请输入客户邮箱:");
				String email = sc.next();
				register(id,name,pw,email);
				System.out.println("注册成功!");
				showInfo();
				break;
			case 2:
				int count = 0;
				do{
					//密码超过3次退出系统
					if(count==3){
						System.out.println("超过3次,退出系统");
						System.exit(0);
					}
					System.out.println();
					System.out.println("请输入客户姓名:");
					 name = sc.next();
					System.out.println("请输入客户密码:");
					 pw = sc.next();
					 count++;
				}while(!check(name,pw));
				System.out.println("");
				System.out.println("1 修改个人信息");
				System.out.println("2 修改密码");
				System.out.println("0 返回上一级菜单");
				System.out.println("请输入编号:");
				num = sc.nextInt();
				switch(num){
				case 1:
					System.out.println("请输入客户姓名:");
					 name = sc.next();
					
					System.out.println("请输入客户邮箱:");
					 email = sc.next();
					 updateInfo(name,email);
					 showInfo();
					break;
				case 2:
					System.out.println("请输入原密码:");
					String oldPw = sc.next();
					System.out.println("请输入新密码:");
					String newPw = sc.next();
					System.out.println("请确认新密码:");
					String confirmPw = sc.next();
					updatePw(newPw);
					System.out.println("修改密码成功!");
					break;
				case 0:
					
					break;
				}
				
				 break;
				
			case 0:
				//退出运行环境
				System.exit(0);
				
			}
		}
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值