初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点。

import java.util.Scanner;
class Yanzheng{
private String n;
private String p;
public void setNa(String na){
this.n = na;
}
public void setPa(String pa){
this.p = pa;
}
public String getNa(){
return n;
}
public String getPa(){
return p;
}
public boolean fun1(String name,String password){
if(name.equals(getNa()) && password.equals(getPa())){
return true;
}
else{
return false;
}
}
}

class Caozuo{
private String name;
private String password;
public String str;
public void setName(String name){
this.name = name;
}
public void setPassword(String password){
this.password = password;
}
public String getName(){
return name;
}
public String getPassword(){
return password;
}
Yanzheng yz = new Yanzheng();
public String fun2(){
if(yz.fun1(getName(),getPassword())){
str = "欢迎" + name + " 帅哥光临";
}else{
str = "用户名或密码输入错误";
}
return str;
}
public void fun3(){
Scanner in = new Scanner(System.in);
String na = in.next();
String pa = in.next();
Yanzheng yz = new Yanzheng();
yz.setNa(na);
yz.setPa(pa);
}
}

public class ZhuceXitong{
public static void main(String args[]){
System.out.println("开始注册,请输入注册名和密码!");
Scanner in = new Scanner(System.in);
Caozuo cz = new Caozuo();
cz.fun3();
System.out.println("注册成功,请登录!");
System.out.println("请输入用户名和密码!");
String name = in.next();
String password = in.next();
cz.setName(name);
cz.setPassword(password);
System.out.println(cz.fun2());
}
}


MM们
浏览 648回答 4
4回答

幕布斯7119047

把这个fun3()方法中的Yanzheng yz = new Yanzheng();去掉就可以了。 原因: 你new出来的这个对象为局部的,首先在fun2()方法中就得不到他的对象。并且你在fun2()方法上面都new了个了在fun3()里面就没必要在new了。 new了就又创建个新的。对程序性能有影响。直接用第一个全局的就可以了赋值取值都是他就不会错了

繁星点点滴滴

你这个代码注册成功之后是登陆,若登陆信息错误程序就停止了,你可以用switch来完成登陆,当登陆信息错误的时候使用break跳到登陆的代码重新登陆
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java