954,170 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Help w/ constructors

I need urgent help with the following problem:

Suppose  there is a class  AirConditioner . The class  supports the following behaviors : turning the air conditioner on and off. The following methods  are provided for these behaviors : turnOn and turnOff . Both methods  accept no arguments  and return no value .
There is a reference variable  myAC to an object  of this class , which has already  been created. Send a message  to this object  using the reference variable , telling it to turn the air conditioner on.

I think the answer is:

sendMessage(turnOn);

but i'm worng.

PLEASE HELP!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ghost
Posting Whiz
352 posts since Aug 2004
Reputation Points: 12
Solved Threads: 2
 

If the object is myAC and the interface consists of turnOn and turnOff then there are only two things you can do with an existing object: call turnOn and call turnOff. The syntax to call a method of an object is a simple dot hierarchy .(). Because turnOn and turnOff don't take arguments, you can leave the list empty and replacing object with myAC and method with turnOn, you get this:

myAC.turnOn();
Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

CORRECT!

Thanks

Ghost
Posting Whiz
352 posts since Aug 2004
Reputation Points: 12
Solved Threads: 2
 

Can u help me w/ the next problem:

Suppose there is a class AirConditioner . The class supports the following behaviors : turning the air conditioner on and off. The following methods are provided for these behaviors : turnOn and turnOff . Both methods accept no arguments and return no value .
There is a reference variable officeAC of type AirConditioner . Create a new object of type AirConditioner using the officeACreference variable . After that, turn the air conditioner on using the reference to the new object .

I think the answer is:

AirConditioner of=new AirConditioner();
officeAC.turnOn();

Thanks!

Ghost
Posting Whiz
352 posts since Aug 2004
Reputation Points: 12
Solved Threads: 2
 

P.S. I have 2 books - none deal w/ messages

Ghost
Posting Whiz
352 posts since Aug 2004
Reputation Points: 12
Solved Threads: 2
 

>none deal w/ messages
You aren't up to a point where messages are meaningful, your instructor is just using weird terminology to confuse you.

Because the problem suggests that officeAC is a variable that already exists, you can simply do this:

officeAC = new AirConditioner();

officeAC.turnOn();

>P.S. I have 2 books
p.s. I don't know of any Java book that doesn't cover basic constructor usage.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

Correct!!!
Thanks!

One last question:

You are given  a class named  Clock that has three instance variables : One of type  int  called hours , another of type  boolean  called isTicking , and the last one of type  Integer  called diff . Write a constructor  for the class  Clock that takes three parameters  -- an int  , a boolean  , and another int  . The constructor  should set the instance variables  to the values  provided.

I think the answer is:

public Clock(int hours, boolean isTicking, Integer diff){
this.hours=hours;
this.isTicking=isTicking;
this.diff;
}

but I get this error message:

CTest.java:9: not a statement
this.diff;
^
1 error

Thanks.

Ghost
Posting Whiz
352 posts since Aug 2004
Reputation Points: 12
Solved Threads: 2
 

>this.diff;
This doesn't do very much, maybe you should assign diff to it:

public Clock ( int hours, boolean isTicking, Integer diff )
{
  this.hours = hours;
  this.isTicking = isTicking;
  this.diff = diff;
}

Though that might not be such a good idea because Integer is an object reference, and this.diff would then be a reference to the object that diff refers to. You might consider cloning diff and assigning it to this.diff:

public Clock ( int hours, boolean isTicking, Integer diff )
{
  this.hours = hours;
  this.isTicking = isTicking;
  this.diff = diff.clone();
}
Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

that isn't correct.

The error messages are:

To create an Integer  object  you would have to use the new keyword .

CTest.java:10: clone() has protected access in java.lang.Object
this.diff = diff.clone();
^
CTest.java:10: incompatible types
found : java.lang.Object
required: java.lang.Integer
this.diff = diff.clone();
^
2 errors

Thanks!!

Ghost
Posting Whiz
352 posts since Aug 2004
Reputation Points: 12
Solved Threads: 2
 

Show us the class, I'm tired of playing this guessing game.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You