Using set and get methods in an inherited class

R

rleroux

Hello,

I have an inherited class where I'm acceptting input and setting the
input to my private variables in my superclass (in my acceptPay
method). If I display the variable by using the get method (see rem'd
line in the acceptPay method) there's no issue.

However, when I try to display the variable in my displayinfo method,
I get 0.0 instead of the value that should be in the variable.

What am I overlooking in the example below?
Tnx.



class CalPayroll extends Pay
{
//Display output
public void displayinfo()
{

System.out.println(getHours());
System.out.println();
}

//Accept input
public void acceptPay()throws IOException
{
//Set variables to use
float HoursWorked;
int StraightHours;
float HourlyRate;
char ex;

System.out.print("Enter number of hours worked (00.0):");
//Create a new object to access the acceptinputFloat in the Accept
Class

Accept passHoursWorked = new Accept();
HoursWorked = passHoursWorked.acceptInputFloat();


setHours(HoursWorked);
//System.out.println(getHours()); //THIS WORKS TO GET THE
HOURS THAT WAS SET ABOVE

CalPayroll display = new CalPayroll();
display.displayinfo();
}
}
 
H

Hal Rosser

Hello,

I have an inherited class where I'm acceptting input and setting the
input to my private variables in my superclass (in my acceptPay
method). If I display the variable by using the get method (see rem'd
line in the acceptPay method) there's no issue.

However, when I try to display the variable in my displayinfo method,
I get 0.0 instead of the value that should be in the variable.

What am I overlooking in the example below?
Tnx.



class CalPayroll extends Pay
{
//Display output
public void displayinfo()
{

System.out.println(getHours());
System.out.println();
}

//Accept input
public void acceptPay()throws IOException
{
//Set variables to use
float HoursWorked;
int StraightHours;
float HourlyRate;
char ex;

System.out.print("Enter number of hours worked (00.0):");
//Create a new object to access the acceptinputFloat in the Accept
Class

Accept passHoursWorked = new Accept();
HoursWorked = passHoursWorked.acceptInputFloat();


setHours(HoursWorked);
//System.out.println(getHours()); //THIS WORKS TO GET THE
HOURS THAT WAS SET ABOVE

CalPayroll display = new CalPayroll();
display.displayinfo();
}

Each instance of the class has its own copy of the instance variables.
You created a new CalPayroll and called its displayinfo method before you
set the instance variables, so having only been declared, but not 'set' the
value of your variable is 0.0.
 
M

Mark Space

This is pretty simple, actually.

//Accept input
public void acceptPay()throws IOException
{
//Set variables to use
float HoursWorked;
int StraightHours;
float HourlyRate;
char ex;

These are local variables, not class variables.

They only work inside this method.
System.out.print("Enter number of hours worked (00.0):");
//Create a new object to access the acceptinputFloat in the Accept
Class

Accept passHoursWorked = new Accept();
HoursWorked = passHoursWorked.acceptInputFloat();


setHours(HoursWorked);

I'm not sure exactly what's going on here. What is the Accept() object
for? You also don't show us what the routine "setHours() does.
CalPayroll appears to have no class variables at all. But it doesn't
matter....
//System.out.println(getHours()); //THIS WORKS TO GET THE HOURS THAT WAS SET ABOVE

CalPayroll display = new CalPayroll();
display.displayinfo();

You make a brand new object here, display, and you don't set any
variable for it. You don't call display.setHours() or anything, so of
course its internal variables are all still initialized to their
defaults (0.0 in the case of a float).
 
R

rleroux

This is pretty simple, actually.



These are local variables, not class variables.

They only work inside this method.






I'm not sure exactly what's going on here. What is the Accept() object
for? You also don't show us what the routine "setHours() does.
CalPayroll appears to have no class variables at all. But it doesn't
matter....



You make a brand new object here, display, and you don't set any
variable for it. You don't call display.setHours() or anything, so of
course its internal variables are all still initialized to their
defaults (0.0 in the case of a float).




- Show quoted text -

Hi,

To answer you question:
Accept passHoursWorked = new Accept();
Accept is yet another class (saved as Accept.java). This class
contains methods to take input from the users and parses the data to
be either a float, int or char and return the values back. In this
case when a person enters in hours worked, it will pass the input to
my Accept class and into the method of acceptInputFloat() to convert
the data to a float. This is being dong as I'm needing to use the
bufferedReader method and I have several more classes that is
accepting input and doing the conversion appropriately, Just creating
one class saves on having multiple BufferedReader statements.
 
R

rleroux

Hi,

To answer you question:
Accept passHoursWorked = new Accept();


Accept is yet another class (saved as Accept.java). This class
contains methods to take input from the users and parses the data to
be either a float, int or char and return the values back. In this
case when a person enters in hours worked, it will pass the input to
my Accept class and into the method of acceptInputFloat() to convert
the data to a float. This is being dong as I'm needing to use the
bufferedReader method and I have several more classes that is
accepting input and doing the conversion appropriately, Just creating
one class saves on having multiple BufferedReader statements.- Hide quoted text -

- Show quoted text -

Got it working. As Hal mentioned earlier I called displayinfo()
before setting the rate for that new object, so I moved my set routine
to after the new object and before calling display.displayinfo()
so I have it as display.setHours(HoursWorked);
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,825
Latest member
VernonQuy6

Latest Threads

Top