这是我项目的一个非常简单的例子,它的规模要大得多。
任务:
密码将在setpassword方法中设置。
getpassword方法将返回密码。
密码在sendmail类中调用,以便通过电子邮件发送给用户以使用新凭据登录。
但是当我运行整个代码时,除了sendmail类不能从用户类中的getpassword方法访问密码外,一切正常。
我放了一个简单版本的代码:
用户类>>>>>
public class users {
private String password;
public users (){}
// GETTING PASSWORD
public String getpassword(){
return password;
}
// SETTING PASSWORD
public void setapassword(String password){
this.password=password;
}
}
注册课程>>>>>>>
public class signup {
public void signsup(){
users user1 =new users();
user1.setapassword("player");
sendmail mail1 =new sendmail();
mail1.Sendsmail();
}
}
sendmail类>>>>
public class sendmail {
public void Sendsmail(){
users user1 =new users(); // object
user1.getpassword(); //getting password
System.out.println(user1.getpassword()); // If print here I get null
}
}
主要注册类>>>>
public class SignupMain {
public static void main(String[] args) {
signup signup1= new signup();
signup1.signsup();
}
}
答案 0 :(得分:1)
您的注册类中的user1
对象和您的sendmail类是不同的。当然,他们的变量以相同的方式命名,但他们引用到不同的对象。要从用户访问密码,您必须将用户传递给sendmail类,例如:
<强> Signup.java 强>
public class signup
{
public void settingPassowrd()
{
users user1 = new users();
user1.setapassword( "player" );
sendmail mail1 = new sendmail();
mail1.Sendsmail(user1);
}
}
使用:
public class sendmail
{
public void Sendsmail(user usr)
{
usr.getpassword(); // getting password
System.out.println( usr.getpassword() ); // will be the proper value from now on.
}
}
答案 1 :(得分:0)
问题是,在您的sendmail课程中,您创建了一个新用户users user1 =new users();
- &gt;所以你不能访问你之前创建的用户,但你创建了一个显然没有密码的新用户。
相反,请将您的用户传递给注册类中的sendmail函数:
public void settingPassowrd(){
users user1 =new users();
user1.setapassword("player");
sendmail mail1 =new sendmail();
mail1.Sendsmail(user1);
}
并在课程中发送邮件:
public void Sendsmail(users user) {
System.out.println(user.getpassword());
}
顺便提一下,我建议你阅读一些Java编码指南。例如:
class users
- &gt; class User
)getpassword()
- &gt; getPassword()
)答案 2 :(得分:0)
请遵循标准编码惯例。我使用标准编码约定更改了代码。只需复制粘贴它,它将工作
用户类
public class Users {
private String password;
public users (){}
// GETTING PASSWORD
public String getpassword(){
return password;
}
// SETTING PASSWORD
public void setapassword(String password){
this.password=password;
}
}
注册课程
public class Signup {
public void settingPassowrd(){
Users user1 =new Users();
user1.setapassword("player");
SendMail mail1 =new SendMail(user1);
mail1.Sendsmail();
}
}
SendMail类
public class SendMail {
private Users user1;
SendMail(Users user1){
this.user1 = user1
}
public void sendMail(){
user1.getpassword(); //getting password
System.out.println(user1.getpassword()); // If print here I get null
}
}
测试代码的主要类
public class SignupMain {
public static void main(String[] args) {
Signup signup1= new Signup();
signup1.settingPassowrd();
}
}