黑马程序员技术交流社区
标题:
类方法问题?
[打印本页]
作者:
远人
时间:
2014-4-24 11:58
标题:
类方法问题?
如下,计算两点之间距离的类方法,
// 计算两个点之间的距离
+ (double)distanceBetweenPoint1:(Point2D *)p1 andPoint2:(Point2D *)p2
{
// 两点距离公式:( (x1-x2)的平方 + (y1-y2)的平方 )开根
// x1-x2
double xDelta = p1.x - p2.x;
// (x1-x2)的平方
double xDeltaPingFang = pow(xDelta, 2);
// y1-y2
double yDelta = p2.y - p2.y;
// (y1-y2)的平方
double yDeltaPingFang = pow(yDelta, 2);
return sqrt(xDeltaPingFang + yDeltaPingFang);
}
复制代码
老师
讲课的时候有明显讲解:类方法中不能访问成员变量,这里的x 和 y 都是Point2D创建的成员变量,测试时没有任何错误。
想问:为什么这里的类方法能用成员变量?
作者:
周宇华
时间:
2014-4-24 13:56
不能访问成员变量的意思是:不能访问类方法的自身的成员变量,即不能访问自身的成员变量x或自身的成员变量y等;而p1和p2是作为参数传进来,可以访问参数的成员变量。
作者:
李烨
时间:
2014-4-24 22:52
+ (double)distanceBetweenPoint1:(Point2D *)p1 andPoint2:(Point2D *)p2
看这里,这里传入的都是Point2D *指针,而且调用x,y的时候p1.x,p1.y都是根据这个指针操作的,而不是直接调用,老师讲的是不能直接掉用,这里就像一个函数调用对象的成员变量一样
void test(Person *p)
{
p.age = 10; // 这样就可以操作成员变量
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2