Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用setter和getterjava从其他类访问变量_Java_Methods_Get_Set_Getter Setter - Fatal编程技术网

使用setter和getterjava从其他类访问变量

使用setter和getterjava从其他类访问变量,java,methods,get,set,getter-setter,Java,Methods,Get,Set,Getter Setter,这是我的项目的一个非常简单的例子,它的规模要大得多 任务: 密码将在setpassword方法中设置 getpassword方法将返回密码 在sendmail类中调用密码,以便通过电子邮件发送给用户以使用新凭据登录 但是,当我运行整个代码时,除了sendmail类不会从users类中的getpassword方法访问密码之外,其他一切都正常工作 我将我的代码放在一个简单的版本中: 用户类别>>>>>> public class users { private String passwor

这是我的项目的一个非常简单的例子,它的规模要大得多

任务:

  • 密码将在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);

  }
}
与:


注册类和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);

  }
}
与:


问题是在sendmail类中创建了一个新用户
users user1=new users()-->因此,您不访问以前创建的用户,而是创建一个显然没有密码的新用户

而是将用户传递给注册类中的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编码指南。例如:

  • 类名应始终以大写字母开头
  • 类名通常是单数(
    类用户
    -->
    类用户
  • 方法名称始终以小写字母开头,并使用CAMELCASSE(
    getpassword()
    -->
    getpassword()

    • 问题在于,在sendmail类中,您创建了一个新用户
      users user1=new users()-->因此,您不访问以前创建的用户,而是创建一个显然没有密码的新用户

      而是将用户传递给注册类中的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编码指南。例如:

      • 类名应始终以大写字母开头
      • 类名通常是单数(
        类用户
        -->
        类用户
      • 方法名称始终以小写字母开头,并使用CAMELCASSE(
        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();
      }
      
      }
      

      请遵循标准编码惯例。我用标准编码惯例更改了你的代码。只要复制粘贴它,它就会工作

      用户类

      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();
      }
      
      }
      

      您可以在sendmail类的构造函数中传递user1.getpassword()。请确保您将遵循,以便其他人可以更轻松地阅读和理解您的代码。谢谢。我在哪里可以读到更多关于上述问题的信息?这样我才能更好地理解这个概念。您可以在sendmail类的构造函数中传递user1.getpassword()。请确保您将遵循,以便其他人能够更轻松地阅读和理解您的代码。谢谢。我在哪里可以读到更多关于上述问题的信息?这样我才能更好地理解这个概念。脱帽致敬,老兄!!我花了整整一天的时间试着去做!!最后,我发送了带有用户凭据的电子邮件!谢谢!好了,来吧。你可以参考我关于Java/J2EE设计模式的博客文章-脱帽致敬!!我花了整整一天的时间试着去做!!最后,我发送了带有用户凭据的电子邮件!谢谢!好了,你可以参考我关于Java/J2EE设计模式的博客文章-