2015-11-10 73 views
0

所有JFrames对于我的PAT上学方法编辑它,我做我的默认构造函数和这里看到参数化的构造函数:默认/参数化的构造函数=如何在包装

public class Client 
{ 

//attributes 
private String clientName; 
private String clientPass; 
private double currentBal; 
private double savingsBal; 
private boolean verify; 

//default constructor 

public Client() 
{ 
      clientName = ""; 
      clientPass = ""; 
      currentBal = 0.0; 
      savingsBal = 0.0; 
      verify = false; 
} 
//parameterised constructor 
private Client(String username,String password,int accNum, 
      double curBal,double savBal, boolean ver) 
{ 
      clientName = username; 
      clientPass = password; 
      currentBal = curBal; 
      savingsBal = savBal; 
      verify = ver; 
} 

的问题是,我有在此之后创建了几个方法,为了让它们正常工作,它们需要更改我的构造函数中为包中的所有不同表单分配的值。 不幸的是,这似乎并不奏效。无论我做什么,变量只是暂时改变。 我错过了什么吗?有什么我应该在我的构造函数中完成不同的工作,还是需要在我的方法中做一些额外的工作才能更改。

所有帮助非常感谢。 :)

编辑: 这里是我的方法之一:

public void newClient(String username,String password) throws IOException 
    { 
     //Sets username and password to user input and assigns the Client 
account balances. 
     clientName = username; 
     clientPass = password; 
     savingsBal = (int)((Math.random()*100000000))/100.0; 
     currentBal = (int)((Math.random()*100000000))/100.0; 
     //Calls BufferedWriter to write a line to the text file with all 
user information. 
     BufferedWriter bw = new BufferedWriter (new 
FileWriter("ClientDatabase.txt",true)); 

bw.write(clientName+"_"+clientPass+"_"+currentBal+"_"+savingsBal); 
      bw.newLine(); 
      //Closes BufferedWriter 
      bw.close(); 
       } 
    //Verifies new Client via their username and password. 

这工作正常,并且它是所有写入文本文件。但是,当我尝试在我的任何其他JFrames中使用这些值中的任何一个值时,似乎它们已被重置为0或空值...

+0

你不在示例中引用'Client'类的实例。 'newClient'是什么类的方法的一员?可能不是“客户”。你只能在这个类中使用像这样的类变量。在你需要引用的地方(比如'Client c = new Client()'),然后你可以改变那些实例成员(比如'c.setName(aName)') – Fildor

回答

0

它在我看来像你没有实际使用过的值在newClient方法(用户名和密码)中获得,用你的参数化构造函数初始化一个新的Client对象;你只需将它们分配给一些全局值。确保你创建了一个新的Client实例,并让其余的JFrames引用该对象。

+0

Hi @Jochem Kleine,我会怎么做呢?我相信你可以告诉我,我对此很新。 :) – newbee8751

+0

我假设newClient与客户端本身在不同的类中,这是真的吗? (如果不是,它应该可能是)你想要newClient做什么是建立一个新的Client对象; Client类的一个实例。这是你的参数化构造函数进场的地方。而不是'Client c = new Client();',你可以像这样创建一个客户端对象:'Client c = new Client(username,password,accNum,curball,savBall,ver)'。 如果您还没有这样做,请创建getter和setter(方法如'public String getName()'),以便从您的客户端对象中检索客户端名称,如@Fildor –

+0

我试图详细说明,请求如果有什么不清楚,请离开。 –