视频iOS之03类的合理设计

以下代码为了充分学习理解类的合理设计

  1 /*
  2 学生
  3  成员变量:性别、生日、体重、最喜欢的颜色、养的狗(体重、毛色、吃、跑)
  4  方法:吃、跑步、遛狗、喂狗
  5
  6  */
  7
  8 #import <Foundation/Foundation.h>
  9
 10 // 性别枚举
 11 typedef enum {// 枚举类型常量一般是以枚举名开头(规范)
 12     SexMan,  //0
 13     SexWoman //1
 14 } Sex;
 15
 16 // 生日结构体
 17 typedef struct {
 18     int year;
 19     int month;
 20     int day;
 21 } Date;
 22
 23 // 颜色结构体
 24 typedef enum {
 25     ColorBlack,//0
 26     ColorRed,  //1
 27     ColorGreen //2
 28 } Color;
 29
 30 // Dog类的声明
 31 @interface Dog : NSObject
 32 {// 成员变量
 33     @public
 34     double weight; //体重
 35     Color curColor;//毛色
 36 }
 37 // 方法声明
 38 - (void)eat;
 39 - (void)run;
 40 @end
 41
 42 // Dog类的实现
 43 @implementation Dog
 44 // 狗吃东西的方法
 45 - (void)eat {
 46     weight++;
 47     NSLog(@"吃完这次后的体重是%.2f", weight);
 48 }
 49 // 狗跑的方法
 50 - (void)run {
 51     weight--;
 52     NSLog(@"跑完这次后的体重是%.2f", weight);
 53 }
 54 @end
 55
 56 // Student类的声明
 57 @interface Student : NSObject
 58 {
 59     @public
 60     char *name; // 名字
 61     Sex sex; // 性别
 62     Date birthday; // 生日
 63     double weight; // 体重(kg)
 64     Color favColor; // 最喜欢的颜色
 65     Dog *dog; // 养的狗
 66 }
 67 // 人吃东西的方法声明
 68 - (void)eat;
 69 // 人跑步的方法声明
 70 - (void)run;
 71 // 输出人的信息方法声明
 72 - (void)print;
 73 // 人遛狗方法声明
 74 - (void)liuDog;
 75 // 人喂狗方法声明
 76 - (void)feed;
 77 @end
 78
 79 // Student类的实现
 80 @implementation Student
 81
 82 // 人吃东西的方法实现
 83 - (void)eat {
 84     weight++;
 85     NSLog(@"狗吃完这次后的体重是%.2f", weight);
 86 }
 87
 88 // 人跑步的方法实现
 89 - (void)run {
 90     weight--;
 91     NSLog(@"狗跑完这次后的体重是%.2f", weight);
 92 }
 93
 94 // 输出人的信息方法实现
 95 - (void)print {
 96     NSLog(@"名字 = %s,性别 = %d,生日 = %d-%d-%d,体重 = %.2f,喜欢的颜色 = %d", name, sex, birthday.year, birthday.month, birthday.day, weight, favColor);
 97 }
 98
 99 // 人遛狗方法实现
100 - (void)liuDog {
101     // 让狗跑起来(调用狗的run方法)
102     [dog run];
103 }
104
105 // 人喂狗方法实现
106 - (void)feed {
107     // 让狗吃东西(调用狗的eat方法)
108     [dog eat];
109 }
110 @end
111
112 int main() {
113
114     // 创建一个学生对象
115     Student *s = [Student new];
116
117     // 人的属性赋值
118     s->name = "Jack";
119     s->weight = 50;
120     s->sex = SexMan;
121     // 生日;
122     /*
123      s->birthday.year = 2011;
124      s->birthday.month = 9;
125      s->birthday.day = 10;
126      */
127     Date d = {2011, 9, 10};
128     s->birthday = d;
129     // 喜欢的颜色
130     s->favColor = ColorRed;
131
132     // 人的方法调用
133     [s eat];
134     [s eat];
135     [s run];
136     [s run];
137     [s print];
138
139     // 创建一个狗的对象
140     Dog *dog = [Dog new];
141
142     // 狗的属性赋值
143     dog->weight = 20;
144     dog->curColor = ColorBlack;
145
146     // 将狗对象赋值给人的 狗属性
147     s->dog = dog;
148
149     // 人的方法调用
150     [s liuDog];
151     [s feed];
152
153     return 0;
154 }
时间: 2024-11-03 21:36:55

视频iOS之03类的合理设计的相关文章

视频iOS之02第一个OC的类

OC是一门面向对象的语言,因此它也有类.对象.静态\动态方法.成员变量的概念.这讲就来创建第一个OC的类. 第一个类的源码: 1 /* 2 人 3 类名:Person 4 属性(成员变量\实例变量):体重.年龄 5 行为(方法):走路.吃 6 */ 7 8 #import <Foundation/Foundation.h> 9 10 //1.类的声明 11 @interface Person : NSObject 12 { 13 @public 14 int age; 15 double we

iOS类的合理设计,面向对象思想

每天更新的东西可能有反复的内容.当时每一部分的知识点是不同的,须要大家认真阅读 这里介绍了iOS类的合理设计.面向对象思想 main.m #import <Foundation/Foundation.h> #import "Iphone.h" int main(int argc, const char * argv[]) { Iphone * phone = [Iphone new]; phone->_color = IphoneColorWhite; phone-&

多媒体编程——ios视频图像绘制工具类。

IOS上视频级的图像绘制 ios上的图像绘制常规的是 UIView的drawRect函数,但是这个函数是异步触发,并且由主线程执行.虽然可以通过一定技巧达到主动绘制的效果: 1.传递图像给UIView缓存着. 2.然后调用UIView的setNeedDisplay 改写重绘标志. (以上两步是讲图像丢给UIView,让它自己进行绘制,但是绘制的时机不可控,有时候我们需要它马上绘制,甚至有时候我们需要知道它什么时候绘制完成了,就需要下面两步) 3.在播放线程中调用UIView的 perfromOn

麦子学院干货 | iOS开发者需要的九大设计工具

麦子学院[www.maiziedu.com]干货 | iOS开发者需要的九大设计工具 1.AppCooker AppCooker是一款方便的iPad应用.它能够提供可点击的原型模板,集合了所有需要编码或渲染的重要部件,并且还可以帮助开发者无需任何代码编写就能够构思.设计和测试iOS应用.目前AppCooker在App Store上的售价为19.99美元. 主要功能: 全功能模型编辑器拥有所有iOS UI部件 位图图画.矢量形状和文本工具 带有链接的整体屏幕视图 收存箱和Box支持云服务 2.Sk

第十一周 项目四 类族的设计】

项目4 - 类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试: (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类

IOS上传图片方法类

IOS上传图片方法类 iPhone开发中遇到上传图片问题,找到多资料,最终封装了一个类,请大家指点,代码如下 // // RequestPostUploadHelper.h // demodes // // Created by 张浩 on 13-5-8. // Copyright (c) 2013年 张浩. All rights reserved. // #import <Foundation/Foundation.h> @interface RequestPostUploadHelper

C++第11周(春)项目4 - 类族的设计

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目4 - 类族的设计]按下面的提示,由基类的设计和測试開始,逐渐地完毕各个类的设计,求出圆格柱体的表面积.体积并输出而且完毕要求的计算任务:    (1)先建立一个Point(点)类,包括数据成员x,y(坐标点),实现须要的成员函数,并设计main函数完毕測试:    (2)以Point为基类,派生出一个Circle(圆)类,添加数据成员r

iOS.iPad.03.UIModal

1.案例介绍:iPad上使用多种风格的ModalView,如图01,02,03,04,05 图01图02 图03图04 图05 2.代码 ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController - (IBAction)onclick:(id)sender; @property (weak, nonatomic) IBOutlet UISegmentedControl *segCo

C# 文件中的类不能进行设计,因此未能为该文件显示设计器

vs 一直打不开设计界面  只能查看代码界面  这时候需要查看  代码中  是不是 从 form    继承 如果不是 窗体类型 改为 form 如: public partial class registerHomePage : template     这里的template    改为 FORM 就可以成功打开设计器窗口了 C# 文件中的类不能进行设计,因此未能为该文件显示设计器