OC第二讲成员变量可见度与方法——复合
来源:互联网 发布:godaddy域名绑定ip 编辑:程序博客网 时间:2024/05/18 12:37
第二题 矩形计算
1、定义一个新的类XYPoint,成员变量:x、y。
方法:初始化方法、赋值方法(setter)、取值方法(getter)
2、定义一个新的类Rectangle,成员变量:width、height、XYPoint类型的point(原始点)、XYPoint类型的center(中心点)。
方法:赋值方法、取值方法、计算周长、计算面积
3、主函数实现周长、面积的计算,以及中心点的计算。
// 首先创建新的类XYPoint
// XYPoint.h 文件
#import <Foundation/Foundation.h>@interface XYPoint : NSObject{ int _x; int _y;}///初始化- (id)initWithX:(int)x y:(int)y;///赋值- (void)setX:(int)x y:(int)y;///取值- (int)x;- (int)y;@end
// 方法实现
// XYPoint.m 文件#import "XYPoint.h"@implementation XYPoint///初始化- (id)initWithX:(int)x y:(int)y{ _x = x; _y = y; return self;}///赋值- (void)setX:(int)x y:(int)y{ _x = x; _y = y;}///取值- (int)x{ return _x;}- (int)y{ return _y;}@end
#import <Foundation/Foundation.h>#import "XYPoint.h"@interface Rectangle : NSObject{ int _width; // 宽 int _height; // 长 XYPoint *_point; // XYPoint型的原始点point XYPoint *_center; // XYPoint型的中心点center}///赋值- (void)setWidth:(int)width height:(int)height point:(XYPoint *)point;///取值- (int)width;- (int)height;- (XYPoint *)point;- (XYPoint *)center;///计算周长- (int)perimeter;///计算面积- (int)area;///计算中心点- (int)centerX;- (int)centerY;@end
// Rectangle.m 文件
#import "Rectangle.h"@implementation Rectangle///赋值- (void)setWidth:(int)width height:(int)height point:(XYPoint *)point{ _width = width; _height = height; _point = point;}///取值- (int)width{ return _width;}- (int)height{ return _height;}- (XYPoint *)point{ return _point;}- (XYPoint *)center{ return _center;}///计算周长- (int)perimeter{ int m = (_width + _height) * 2; return m;}///计算面积- (int)area{ int s = _width * _height; return s;}///中心点- (int)centerX{ return ([_point x] + _width / 2);}- (int)centerY{ return ([_point y] + _height / 2);}@end
// 更改的Rectangle.m文件:
#import "Rectangle.h"#import "XYPoint.h"@implementation Rectangle/// 初始化- (id)initWithPoint:(XYPoint *)point height:(float)height width:(float)width{ _point = point; _height = height; _width = width; float x = [_point x] + width / 2.0; float y = [_point y] + height / 2.0; _center = [[XYPoint alloc] initWithX:x y:y]; return self;}/// 打印- (void)printInfo{ NSLog(@"原始点:(%.2f, %.2f) 中心点:(%.2f, %.2f) 宽(%.2f) 高(%.2f)", [_point x], [_point y], [_center x], [_center y], _width, _height);}@end
// 主函数main.m
#import <Foundation/Foundation.h>#import "XYPoint.h"#import "Rectangle.h"int main(int argc, const char * argv[]){ @autoreleasepool { // 创建XYPoint类型的对象叫point(原始点),并初始化; XYPoint *point = [[XYPoint alloc] initWithX:10 y:20]; // 创建Rectangle类型的对象叫rect; Rectangle *rect = [[Rectangle alloc] init]; // 给rect对象赋值; [rect setWidth:60 height:100 point:point]; // 创建XYPoint类型的对象叫center(中心点),并初始化,初始化的x坐标是通过给rect发送centerX消息,y坐标是通过给rect发送centerY消息; XYPoint *center = [[XYPoint alloc] initWithX:[rect centerX] y:[rect centerY]]; // 打印周长,面积,中心点 NSLog(@"周长:%d,面积:%d,中心点:(%d, %d)", [rect perimeter], [rect area], [center x], [center y]); } return 0;}
// 更改后的主函数main.m
#import <Foundation/Foundation.h>#import "XYPoint.h"#import "Rectangle.h"int main(int argc, const char * argv[]){ @autoreleasepool { XYPoint *point1 = [[XYPoint alloc] initWithX:10 y:10]; Rectangle *rect1 = [[Rectangle alloc] initWithPoint:point1 height:30 width:20]; [rect1 printInfo]; } return 0;}
// 运行结果
0 0
- OC第二讲成员变量可见度与方法——复合
- OC第二讲成员变量可见度与方法——复合
- OC第二讲成员变量可见度与方法——复合
- OC第二讲成员变量可见度与方法
- (OC)基础第二讲:实例变量可见度、方法
- 成员变量可见度与方法
- 成员变量可见度与方法
- oc 第二讲 成员变量和方法
- OC 成员变量与方法
- OC之实例变量可见度和方法
- OC第二天-实例变量可见度,setter和getter方法,导入头文件
- OC实例变量可见度 setter方法和getter方法
- OC第二讲(InstanceVariableAndMethod实例变量和方法)
- OC基础----类与对象、实例变量的可见度、继承
- OC之实例变量可见度
- OC 实例变量的可见度
- Java基础:第二十八讲 成员变量
- OLE技术专题——第二讲:复合文件
- 技术书是怎么写出来的
- Xcode帮助文档使用
- RMQ算法:区间最值问题
- 反编译器 java
- ubuntu常见问题及解决汇总
- OC第二讲成员变量可见度与方法——复合
- 详细讲解Java中的类加载器
- 【COGS】257 动态排名系统 【动态第K小】树状数组+主席树
- c++ 中文分词介绍
- DIV 灰色透明遮罩层,显示,隐藏
- 面向对象的三个基本元素,五个基本原则
- 快速学习shell脚本语言
- 无法执行该操作,因为链接服务器 "......." 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。
- 网页版<2048>游戏