[英]Accessing variables from another classes with setter and getter JAVA
这是我的项目的一个非常简单的示例,它的规模要大得多。
任务:
密码将通过setpassword方法设置。
getpassword方法将返回密码。
密码在sendmail类中调用,以便通过电子邮件发送给用户以使用新凭据登录。
但是,当我运行整个代码时,除了sendmail类不会从users类的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();
}
}
注册类和sendmail类中的user1
对象不同。 当然,它们的变量以相同的方式命名,但是它们引用不同的对象。 要从用户访问密码,您必须将用户传递给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.
}
}
问题是,在sendmail类中,您创建了一个新用户users user1 =new users();
->这样就不会访问先前创建的用户,而是创建一个显然没有密码的新用户。
而是将您的用户传递给注册类中的sendmail函数:
public void settingPassowrd(){
users user1 =new users();
user1.setapassword("player");
sendmail mail1 =new sendmail();
mail1.Sendsmail(user1);
}
在课堂上sendmail:
public void Sendsmail(users user) {
System.out.println(user.getpassword());
}
顺便说一句,我建议您阅读一些Java编码指南。 例如:
class users
-> class User
) getpassword()
-> 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 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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.