麻烦老师帮我看看这个1-9编程练习的代码。

麻烦老师帮我看看这个1-9编程练习的代码。

package com.Wangyang;

public class User {
	// 定义属性用户名、密码
	private String username;
	private String password;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public User(String username, String password) {
		this.setUsername(username);
		this.setPassword(password);
	}

	public void Show() {
		System.out.println("用户名:"+this.getUsername());
		System.out.println("密码:"+this.getPassword());

	}

}

package com.Wangyang;

public class UserManager {
    // 用户信息验证的方法
    public String checkUser(User one, User two) {
       // 判断用户名是否为空,是否一致
		if(one.getUsername() == null || two.getUsername() == null) {
			System.out.println("用户名为空");
		}
		if(one.getUsername().equals(two.getUsername())) {
			System.out.println("用户名一致");
		}else {
			System.out.println("用户名不一致");
		}
		
    // 判断密码是否为空,是否一致
		if(one.getPassword() == null || two.getPassword() == null) {
			System.out.println("密码为空");
		}
		if(one.getPassword().equals(two.getPassword())) {
			System.out.println("密码一致");
		}else {
			System.out.println("密码不一致");
		}
		return null;
    }

}

package com.Wangyang;

public class Test1 {
	// 测试方法
	public static void main(String[] args) {
		//实例化对象,调用相关方法实现运行效果
		User one = new User("Lucy","123456");
		one.Show();
		User two = new User("Mike","123456");
		two.Show();
		System.out.println("============");
		UserManager um = new UserManager();
		um.checkUser(one, two);

	}

}

这么编写可以吗?尤其是比较是否一致的方法,老师给的模版里面带着一个String型的返回值,我不知道怎么用到它,我就直接给它赋值null了。老师帮忙看看哪里需要改进。谢谢


正在回答

登陆购买课程后可参与讨论,去登陆

3回答
  1. 建议在判断用户名为空的if代码块后添加else语句,并将后面判断用户名是否一致的代码块写在else中,或者把判断用户名是否一致的if语句改成else if。判断密码也是同理。

  2. 你可以定义一个字符串变量,每次将要打印的提示语句赋值给此变量,最后返回。祝学习愉快~

  • 无谓艰苦 提问者 #1
    老师,判断用户名是否为空要怎么写啊?要用if(one.getUsername() == “ ”)还是if(one.getUsername() == null)啊?为什么我用第二种null最后会直接输出null呢?java中没有null关键字吗?还有老师您说的第2点如果用一个字符串变量接收每次要打印的提示语句,那最后的输出值只是最后赋予给字符串变量的语句啊,前面如果有输出就看不到了啊,package com.Wangyang; public class Test1 { // 测试方法 public static void main(String[] args) { //实例化对象,调用相关方法实现运行效果 User one = new User("Lucy","123456"); one.Show(); User two = new User("Mike","1234569"); two.Show(); System.out.println("============"); UserManager um = new UserManager(); System.out.println(um.checkUser(one, two)); } } 用户名,密码都不一致,最后只输出密码不一致的提示信息 用户名:Lucy 密码:123456 用户名:Mike 密码:1234569 ============ 密码不一致
    2017-12-09 00:03:16
  • 无谓艰苦 提问者 #2
    package com.Wangyang; public class UserManager { String messages; // 用户信息验证的方法 public String checkUser(User one, User two) { // 判断用户名是否为空,是否一致 if(one.getUsername() == "" || two.getUsername() == "") { messages = "用户名为空"; // System.out.println("用户名为空"); }else if(one.getUsername().equals(two.getUsername())) { messages = "用户名一致"; // System.out.println("用户名一致"); }else { messages = "用户名不一致"; // System.out.println("用户名不一致"); } // 判断密码是否为空,是否一致 if(one.getPassword() == null || two.getPassword() == null) { messages = "密码为空"; // System.out.println("密码为空"); }else if(one.getPassword().equals(two.getPassword())) { messages = "密码一致"; // System.out.println("密码一致"); }else { messages = "密码不一致"; // System.out.println("密码不一致"); } return messages; } }
    2017-12-09 00:07:49
  • 好帮手慕珊 回复 提问者 无谓艰苦 #3
    判断用户名是否为空可以写成,if(one.getUserName.equals("")||on.getUserName==null),也就是为空串或为null都认为他们为空。注意字符串内容的判断用equals()方法,对象的比较用== 这个方法是有返回值的,所以最后要有return语句,那么return语句要返回的内容是什么,就是用户名一致,用户名不一致这些内容。而这些内容你都在输出语句中进行了输出,所以没办法返回。正确的做法是把这些内容都赋值给一个字符串变量,如str="用户名一致";然后最后return str;就可以了。在调用方法的时候,将返回值进行输出。 祝学习愉快!
    2017-12-10 08:40:56
提问者 无谓艰苦 2017-12-09 00:08:48
public class UserManager {
	String messages;
    // 用户信息验证的方法
    public String checkUser(User one, User two) {
       // 判断用户名是否为空,是否一致
		if(one.getUsername() == "" || two.getUsername() == "") {
			messages = "用户名为空";
//			System.out.println("用户名为空");
		}else if(one.getUsername().equals(two.getUsername())) {
			messages = "用户名一致";
//			System.out.println("用户名一致");
		}else {
			messages = "用户名不一致";
//			System.out.println("用户名不一致");
		}
		
    // 判断密码是否为空,是否一致
		if(one.getPassword() == null || two.getPassword() == null) {
			messages = "密码为空";
//			System.out.println("密码为空");
		}else if(one.getPassword().equals(two.getPassword())) {
			messages = "密码一致";
//			System.out.println("密码一致");
		}else {
			messages = "密码不一致";
//			System.out.println("密码不一致");
		}
		return messages;
    }

}


Rimmy王 2017-12-08 11:48:16

public class UserManager {

    // 用户信息验证的方法

    public String checkUser(User one, User two) {

       // 判断用户名是否为空,是否一致

        if(one.getUsername() == “ ” || two.getUsername() == “ ”) {

            System.out.println("用户名为空");

        }

        if(one.getUsername().equals(two.getUsername())) {

            System.out.println("用户名一致");

        }else {

            System.out.println("用户名不一致");

        }

         

    // 判断密码是否为空,是否一致

        if(one.getPassword() == “ ” || two.getPassword() == “ ”) {

            System.out.println("密码为空");

        }

        if(one.getPassword().equals(two.getPassword())) {

            System.out.println("密码一致");

        }else {

            System.out.println("密码不一致");

        }

        return “ ”;

    }

 

}

这里也可以用“”来写。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师