iOS之03-类的合理设计
2016-03-12 21:11
435 查看
以下代码为了充分学习理解 类与对象
对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。
类与对象的定义
类就是将事物的共有属性和方法抽离出来形成的;类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。
类对象的关系
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。/* 学生 成员变量:性别、生日、体重、最喜欢的颜色、养的狗(体重、毛色、吃、跑) 方法:吃、跑步、遛狗、喂狗 */ #import <Foundation/Foundation.h> // 性别枚举 typedef enum {// 枚举类型常量一般是以枚举名开头(规范) SexMan, //0 SexWoman //1 } Sex; // 生日结构体 typedef struct { int year; int month; int day; } Date; // 颜色结构体 typedef enum { ColorBlack,//0 ColorRed, //1 ColorGreen //2 } Color; // Dog类的声明 @interface Dog : NSObject {// 成员变量 @public double weight; //体重 Color curColor;//毛色 } // 方法声明 - (void)eat; - (void)run; @end // Dog类的实现 @implementation Dog // 狗吃东西的方法 - (void)eat { weight++; NSLog(@"吃完这次后的体重是%.2f", weight); } // 狗跑的方法 - (void)run { weight--; NSLog(@"跑完这次后的体重是%.2f", weight); } @end // Student类的声明 @interface Student : NSObject { @public char *name; // 名字 Sex sex; // 性别 Date birthday; // 生日 double weight; // 体重(kg) Color favColor; // 最喜欢的颜色 Dog *dog; // 养的狗 } // 人吃东西的方法声明 - (void)eat; // 人跑步的方法声明 - (void)run; // 输出人的信息方法声明 - (void)print; // 人遛狗方法声明 - (void)liuDog; // 人喂狗方法声明 - (void)feed; @end // Student类的实现 @implementation Student // 人吃东西的方法实现 - (void)eat { weight++; NSLog(@"狗吃完这次后的体重是%.2f", weight); } // 人跑步的方法实现 - (void)run { weight--; NSLog(@"狗跑完这次后的体重是%.2f", weight); } // 输出人的信息方法实现 - (void)print { NSLog(@"名字 = %s,性别 = %d,生日 = %d-%d-%d,体重 = %.2f,喜欢的颜色 = %d", name, sex, birthday.year, birthday.month, birthday.day, weight, favColor); } // 人遛狗方法实现 - (void)liuDog { // 让狗跑起来(调用狗的run方法) [dog run]; } // 人喂狗方法实现 - (void)feed { // 让狗吃东西(调用狗的eat方法) [dog eat]; } @end int main() { // 创建一个学生对象 Student *s = [Student new]; // 人的属性赋值 s->name = "Jack"; s->weight = 50; s->sex = SexMan; // 生日; /* s->birthday.year = 2011; s->birthday.month = 9; s->birthday.day = 10; */ Date d = {2011, 9, 10}; s->birthday = d; // 喜欢的颜色 s->favColor = ColorRed; // 人的方法调用 [s eat]; [s eat]; [s run]; [s run]; [s print]; // 创建一个狗的对象 Dog *dog = [Dog new]; // 狗的属性赋值 dog->weight = 20; dog->curColor = ColorBlack; // 将狗对象赋值给人的 狗属性 s->dog = dog; // 人的方法调用 [s liuDog]; [s feed]; return 0; }
相关文章推荐
- ios数据存储(一)
- ios开发中的基本设计模式(代理,观察者,MVC,单例,策略,工厂,MVVM,原型,Target-Action,通知(notification)机制)
- iOS之02-第一个OC的类
- iOS开发--打印NSRange,CGRect,CGPoint等结构体
- iOS中MD5加密
- Image I/O
- iOS导航栏颜色,任务栏颜色
- iOS_崩溃日志分析(定位崩溃代码)
- 增强版——Firemonkey运行时更改锁定iOS显示方向
- ios layout相关方法
- iOS 图片编辑——涂鸦
- iOS runtime 运行时( 二 深谈)
- iOS导航栏配置问题
- iOS 火星坐标相关整理及解决方案汇总
- Firemonkey访问iOS的钥匙串Keychain
- iOS runtime 运行时( - 俗谈)
- iOS GCD使用
- nil、Nil、NULL和NSNull区别
- cookie
- 获取IOS屏幕尺寸大小