首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一段代码,两个类之间解决办法

2012-01-16 
一段代码,两个类之间废话不多,先上代码:Java codepublic class DbStore {private UserEntity[] entryArr/

一段代码,两个类之间
废话不多,先上代码:

Java code
public class DbStore {    private UserEntity[] entryArr;//声明一个数组变量    public DbStore() //初始化用户实体数组    {        UserEntity ue1 = new UserEntity();        ue1.setAge(21);        ue1.setCellPhone("888888881");        ue1.setEmail("damo1@qq.com");        ue1.setRealName("大漠1");        ue1.setUserId("001");        ue1.setUserName("damo1");        ue1.setUserPwd("1");        UserEntity ue5 = new UserEntity();        ue5.setAge(25);        ue5.setCellPhone("888888885");        ue5.setEmail("damo5@qq.com");        ue5.setRealName("大漠5");        ue5.setUserId("005");        ue5.setUserName("damo5");        ue5.setUserPwd("5");        setEntryArr(new UserEntity[] { ue1, ue2, ue3, ue4, ue5 });    }    public static void main(String[] args)     {              DbStore uf = new DbStore();        for(int i=0;i<uf.getEntryArr().length;i++)        {            System.out.println("用户编号:"+uf.getEntryArr()[i].getUserId());            System.out.println("登陆名称:"+uf.getEntryArr()[i].getUserName());            System.out.println("登陆密码:"+uf.getEntryArr()[i].getUserPwd());            System.out.println("真实姓名:"+uf.getEntryArr()[i].getRealName());            System.out.println("年龄:"+uf.getEntryArr()[i].getAge());            System.out.println("手机号码:"+uf.getEntryArr()[i].getCellPhone());            System.out.println("电子邮箱:"+uf.getEntryArr()[i].getEmail());            System.out.println("\r\n");                    }    }    public void setEntryArr(UserEntity[] entryArr) {        this.entryArr = entryArr;    }    public UserEntity[] getEntryArr() {        return entryArr;    }}


Java code
package User;import java.util.Scanner;public class UserManager {    public static void main(String[] args)     {        DbStore abc = new DbStore();                Scanner input = new Scanner(System.in);        System.out.println("请输入用户名:");        String name = input.next();        System.out.println("请输入密码:");        String password = input.next();                if((abc.getEntryArr()[i].userName!= name)||(abc.getEntryArr()[i].userPwd != password))        {            System.out.println("用户不存在或密码错误!");        }        else        {            System.out.println("该用户的真实姓名为"+abc.getEntryArr()[i].realName);        }    }}

问题就出在下面一段,那个条件判定,报错是The field UserEntity.userName is not visible

求解答

[解决办法]
贴一下这个类:UserEntity

UserEntity类的userName属性是public的吗。还是其它??
[解决办法]
if((abc.getEntryArr()[i].getUserName!= name)||(abc.getEntryArr()[i].getUserPwd != password))
改成这样应该可以了。
[解决办法]
输出
System.out.println(abc.getEntryArr()[i].userName);
看看能得到啥??
[解决办法]
if((abc.getEntryArr()[i].userName!= name)||(abc.getEntryArr()[i].userPwd != password))
报错是The field UserEntity.userName is not visible
说明UserEntity类的userName属性是非public的,所以不能直接访问
可以通过方法来访问
if((!abc.getEntryArr()[i].getUserName().equals(name))||(!abc.getEntryArr()[i].getUserPwd().equals(password)))
注意字符串的比较用! equals,而不是用 !=




------解决方案--------------------


1、属性访问权限是个问题
2、

Java code
  if((abc.getEntryArr()[i].userName!= name)||(abc.getEntryArr()[i].userPwd != password))
[解决办法]

顶顶顶
[解决办法]
访问UserEntity里的userName,需要用get方法

热点排行