object-c 学习(面向对象)
来源:互联网 发布:excel表格导入数据库 编辑:程序博客网 时间:2024/05/16 15:50
main.m
实现代码
extern void drawshape(__strong id shape[],int num);int main(int argc, const char * argv[]){ id shape[3]; //创建一个数组,存放具体的图形对象 ShapEgg *egg = [[ShapEgg alloc]init]; //对象的初始化,先分配内存,在调用init方法初始化
//把egg对象赋给shape数组的第一个元素 shape[0] = egg;
//创建一个circle对象 Circle *circle = [[Circle alloc]init]; shape[1] = circle; Rectangle *rectangle = [[Rectangle alloc]init]; shape[2] = rectangle; drawshape(shape,3); return 0}void drawshape(__strong id shape[],int num) { for(int i = 0; i < num; i++) { [shape[i] draw]; }}
定义一个Circle类
@interface Circle : NSObject{ShapColor fillColor; // 定义成员变量或者实例变量ShapRect bounds;}-(Circle *)init; //对象方法(重构init方法)-(void)draw;@end //end of Circle
实现代码
@implementation Circle-(Circle *)init{ if (self = [super init]) { //super ShapRect rect = {1,32,35,56}; bounds = rect; fillColor = kRedColor; } return self;}-(void)draw{ NSLog(@"Circle is draw at (%d,%d,%d,%d) in %@",bounds.x,bounds.y,bounds.width,bounds.height,[self colorName:fillColor]); }-(NSString *)colorName:(ShapColor)color //circle的私有方法(其他对象不能访问){ NSString *colorName = nil; switch (color) { case kRedColor: colorName = @"Red"; break; case kBlueColor: colorName = @"Blue"; break; case kGreenColor: colorName = @"Green"; break; default: break; } return colorName;}@end
补充:
1.方法前的加减号为:减号为实例化对象的方法,加号是类的方法
2.实例是对的对象的另一种说法
3.对象是一种包含值和指向其来得隐藏指针的结构体
4.消息是对象要执行的操作
5.过程式程序建立在函数之上,数据为函数服务;面向对象的思想是以程序的数据为中心。函数为数据服务。在OOP中,不再重点关注程序中的数据,而是专注于数据
(狗为一个类的话,那么我家的兜兜(金毛)就是一个对象,会叫就是他的方法,我发送一个消息叫她叫,她就叫了)
0 0
- object-c 学习(面向对象)
- Object-C学习笔录(二)面向对象
- Object-c面向对象(上)
- Object-c 面向对象(一)
- Object-c 面向对象(二)
- Object-c 面向对象(三)
- Object-c 面向对象(四)
- object-c面向对象语言
- Object-C面向对象编程
- Object-C 面向对象基础
- Object-C学习笔记二-----面向对象编程基础知识
- Object-c 学习之面向对象的理解
- object-c 之面向对象语法
- Object-C 面向对象的基本特征
- Object-c 面向对象之封装
- object-c面向对象-成员变量
- object-c 学习第二天(类对象和方法)
- object-c 学习第五天(对象块)
- 内置锁
- Python模块学习之hashlib
- What does the [Flags] Enum Attribute mean in C#?
- mysql 查看表占用空间的大小
- ios UIKit框架分析 第2天
- object-c 学习(面向对象)
- ORA-00445: background process "J000" did not start after 120 seconds
- java 正则表达式量词
- java代码动态生成控件
- html、htm、shtml
- 【容易打工网】职场领悟八句话可帮你少奋斗十年
- Android的Handler总结
- hadoop-2.2.0警告 (Unable to loadnative-hadoop library for your platform... using ...)
- ios--UIAlertView多种带输入控件的弹出框