This week's book giveaway is in the Design forum.
We're giving away four copies of Design for the Mind and have Victor S. Yocco on-line!
See this thread for details.
Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Access Modifiers

 
Samira Mastali
Ranch Hand
Posts: 74
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Folks,
Can anybody explain me why the following line in the code is Illegal?
class Complex {
private double real, imaginary;
public Complex (double r, double i) { real = r; imaginary = i;}
public Complex add (Complex c) {
return new Complex (real + c.real, imaginary + c.imaginary);
}
}
class Client {
void useThem () {
Complex c1 = new Complex (1,2);
Complex c2 = new Complex (3,4);
Complex c3 = c1.add(c2);
double d = c3.real; // Illegal!
}
}
what I don't understand is that c3 is an instance of class complex and we can have access to a private member of a class through an instance of that.What is difference between c3 and c1 and c2?
Thanks,
Samira
 
rahul kumar
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
class Complex {
private double real, imaginary;
public Complex (double r, double i) { real = r; imaginary = i;}
public Complex add (Complex c) {
return new Complex (real + c.real, imaginary + c.imaginary);
}
}
class Client {
void useThem () {
Complex c1 = new Complex (1,2);
Complex c2 = new Complex (3,4);
Complex c3 = c1.add(c2);
double d = c3.real; // Illegal!
}
}
Although c3 is an instance of complex but private variables can't be acessed outside the class.real is private variable thatwhy it can't be accessed in other class client
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic