1-13编程问题

1-13编程问题

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

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	public int getPassword() {
		return password;
	}
	public void setPassword(int password) {
		this.password = password;
	}
	  
}
public class UserManager {
    // 用户信息验证的方法
    public String checkUser(User one, User two) {
       // 判断用户名和密码是否为空,是否一致
    	System.out.println("用户名:"+one.getName());
    	System.out.println("密码:"+one.getPassword());
    	System.out.println("用户名:"+two.getName());
    	System.out.println("密码:"+two.getPassword());
    	System.out.println("========================");
    	String str1=one.getName();
    	String str2=two.getName();
    	String x=""+one.getPassword();
    	String y=""+two.getPassword();
    	
    	if((str1.equals(str2))&&(x.equals(y))) {
    		System.out.println("用户名或密码一致");
    	}else
    		System.out.println("用户名或密码不一致");
		return null;
    	
    }
}
public class Tset {
    // 测试方法
	public static void main(String[] args) {
     //实例化对象 调用相关方法实现运行效果
     User a=new User();
     User b=new User();
     //为属性赋值
     a.setName("Lucy");
     a.setPassword(123456);
     
     b.setName("Mike");
     b.setPassword(123456);
     UserManager um=new UserManager();
     um.checkUser(a, b);
    }
}

问题:

  1. 已运行成功 麻烦老师看下代码是否符合要求?

  2. 在checkUser方法中 我按照报错提示 return null;后代码就正常了,但是我不明白为什么要返回null,为什么不能直接返回语句?

  3. 如何实现“判断用户名和密码是否为空”的功能;

  4. 感觉自己写的代码太复杂了,应如何简化?在思路上跟别人不太一样,别人的代码都一目了然的感觉。

正在回答

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

1回答

同学你好,

1、代码完成的不错,但是有几个小问题:

  • 在用户名和密码都相等时输出用户名和密码一致,具体如下:

http://img1.sycdn.imooc.com//climg/5d68beea000187b305480097.jpg

  • 根据题目要求设计构造函数实现对属性赋值,同学的代码没有构造函数,具体如下:

    http://img1.sycdn.imooc.com//climg/5d68c4d200013e0005010233.jpg

    Tset类:

    http://img1.sycdn.imooc.com//climg/5d68c4f300014a7d04750097.jpg


2、由于同学的的代码中,checkUser()方法定义的返回类型为String类型,所以必须要写return语句。具体如下:

http://img1.sycdn.imooc.com//climg/5d68bf9600011a5905420481.jpg

3、实现“判断用户名和密码是否为空”的功能

在判断用户名和密码外,添加判断用户名或密码是否为空或者空字符。具体如下:

http://img1.sycdn.imooc.com//climg/5d68c1d600015fbc09270338.jpg

4、优化代码:

  • 建议User类中password设置为String类型。

  • 建议checkUser()方法中声明一个str变量,用于返回信息。

  • 建议有一个show()方法用于输出变量信息。

优化后的代码如下:

User:

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

	public User() {
	
	}
	public User(String name, String password) {
		super();
		this.name = name;
		this.password = password;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}


}

UserManager

public class UserManager {
	// 用户信息验证的方法
	public String checkUser(User one, User two) {
		// 判断用户名和密码是否为空,是否一致
		String str = null;
		String str1 = one.getName();
		String str2 = two.getName();
		String x =  one.getPassword();
		String y =  two.getPassword();
		if ((str1 != null && str2 != null && x != null && y != null)&&(str1 != "" && str2 != "" && x != "" && y != "")) {
			if ((str1.equals(str2)) && (x.equals(y))) {
				str="用户名或密码一致";
			} else
				str="用户名或密码不一致";

		}
		else {
			str="用户名或密码为空";
		}
		return str;
	}
	public void show(User one,User two) {
		// TODO Auto-generated method stub
		System.out.println("用户名:" + one.getName());
		System.out.println("密码:" + one.getPassword());
		System.out.println("用户名:" + two.getName());
		System.out.println("密码:" + two.getPassword());

	}
}

Tset

public class Tset {
	// 测试方法
	public static void main(String[] args) {
		// 实例化对象 调用相关方法实现运行效果
		User a = new User("Lucy","123456");
		User b = new User("Mike","123456");

		UserManager um = new UserManager();
		um.show(a, b);
		System.out.println("================");
		System.out.println(um.checkUser(a, b));
	}
}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 慕后端4084011 提问者 #1
    User类构造方法中super();有什么作用?
    2019-08-30 17:16:43
  • 好帮手慕酷酷 回复 提问者 慕后端4084011 #2
    同学你好,这里可以先不用关注super()的含义,这个方法中也可以不需要编写super(),同学会在后面的《Java继承》视频中会讲解到哦~如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2019-08-30 17:36:47
  • 慕后端4084011 提问者 回复 好帮手慕酷酷 #3
    OK 谢谢~
    2019-08-30 17:51:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

在线咨询

领取优惠

免费试听

领取大纲

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