关于1-13练习题

关于1-13练习题

package com.imooc.lianxi;

//用来保存用户信息,为只读属性

public class User {
    //定义属性用户名、密码
    private String name;
    private String key;
    
    public User(String name,String key){
        this.name="Lucy";
        this.key="123456";
    }
    public String getName(){
        return this.name;
    }
    
    public String getKey(){
        return this.key;
    }
}
package com.imooc.lianxi;

import java.util.Scanner;

//用来接收用户输入信息

public class User2 {
	private String name;
	private String key;
	public User2(String name,String key){
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入用户名:");
	this.setName(sc.next());
	System.out.println("请输入密码:");
	this.setKey(sc.next());
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getKey() {
		return key;
	}
	public void setKey(String key) {
		this.key = key;
	}

}
package com.imooc.lianxi;

//设置条件进行信息认证

public class UserManager {
	public String checkUser(User xt,User2 yh){
		   // 判断用户名是否为空,是否一致
		if(xt.getName().equals("")||yh.getName().equals("")){
			return "用户名不能为空!";
		}else if(!xt.getName().equals(yh.getName())){
			return"用户名错误!";
		}
		
		// 判断密码是否为空,是否一致
		else if(xt.getKey().equals("")||yh.getKey().equals("")){
			return"密码不能为空!";
		}else if(!xt.getKey().equals(yh.getKey())){
			return"密码错误!";
		}
		return "登录成功!";
	}
}
package com.imooc.lianxi;

public class Txet {

	//方法测试
	
	public static void main(String[] args) {
	
		  User xt=new User("","");
		  User2 yh=new User2("Lucy","123456");
		  //System.out.println("用户名:"+xt.getName());
		  //System.out.println("密码:"+xt.getKey());
		  //System.out.println("用户名输入:"+yh.getName());
		  //System.out.println("密码输入:"+yh.getKey());
		  System.out.println("=============================");
		  UserManager ss=new UserManager();
		  System.out.println(ss.checkUser(xt, yh));
	}

}

根据1-13的练习,自己改编了一下,自己设想的是一个简易的登录验证界面,运行没问题,不知道这个思路对不对,代码这样贴上来不知道能不能看清楚,请老师指导指导

正在回答 回答被采纳积分+1

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

2回答
好帮手慕阿莹 2019-01-04 14:40:03

1、在私有属性的情况下,可以通过构造方法给属性传值或者set方法给属性传值。

如:

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

如果是public修饰的属性,三种方法都可以给属性赋值。

同学不要灰心,多看几遍视频,多敲一些代码,随着同学的积累,就会慢慢的理解了。

继续加油!祝学习愉快

好帮手慕阿莹 2019-01-04 13:53:29

1、可以看清楚的,但是同学的思路不太正确。

同学是想有一个默认的用户,然后让用户输入一个用户名和密码,如果和默认的用户一致就登录成功是么?

修改后的代码如下:

1、首先,我们不需要写两个User类,写一个就可以了。并且把带参构造中的默认值删除。

直接改成如下所示。

package com.imooc.lianxi;
 
//用来保存用户信息,为只读属性
 
public class User {
    //定义属性用户名、密码
    private String name;
    private String key;
     
    public User(String name,String key){
        this.name=name;
        this.key=key;
    }
    public String getName(){
        return this.name;
    }
     
    public String getKey(){
        return this.key;
    }
}
package com.imooc.lianxi;

import java.util.Scanner;

public class Txet {
 
    //方法测试
     
    public static void main(String[] args) {
         //设置一个默认的用户名
          User xt=new User("Lucy","123456");
          //让用户输入用户名和密码封装成另外一个User对象。
          Scanner sc = new Scanner(System.in);
          
         // User2 yh=new User2("Lucy","123456");
          //System.out.println("用户名:"+xt.getName());
          //System.out.println("密码:"+xt.getKey());
          //System.out.println("用户名输入:"+yh.getName());
          //System.out.println("密码输入:"+yh.getKey());
           //让用户输入用户名和密码封装成另外一个User对象。
          System.out.println("请用户输入用户名");
          String name= sc.next();
          System.out.println("请用户输入密码");
          String password= sc.next();
          User yh=new User(name,password);
          System.out.println("=============================");
          UserManager ss=new UserManager();
          System.out.println(ss.checkUser(xt, yh));
    }
 
}
package com.imooc.lianxi;
 
//设置条件进行信息认证
 
public class UserManager {
    //把传进来的两个User对象进行比较即可。
    public String checkUser(User xt,User yh){
           // 判断用户名是否为空,是否一致
        if(xt.getName().equals("")||yh.getName().equals("")){
            return "用户名不能为空!";
        }else if(!xt.getName().equals(yh.getName())){
            return"用户名错误!";
        }
         
        // 判断密码是否为空,是否一致
        else if(xt.getKey().equals("")||yh.getKey().equals("")){
            return"密码不能为空!";
        }else if(!xt.getKey().equals(yh.getKey())){
            return"密码错误!";
        }
        return "登录成功!";
    }
}


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


  • 提问者 冷先森c #1
    封装这一节确实是学得不太明白,没有设置set方法的封装属性,可以从外面传值嘛?
    2019-01-04 14:17:52
  • 好帮手慕阿满 回复 提问者 冷先森c #2
    可以,在定义有参构造方法时,使用this.name = name;this.key = key;的方式,就可以在定义对象时,直接给对象初始化赋值。祝:学习愉快~
    2019-01-04 14:32:09
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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