Object-C
#import <Foundation/Foundation.h> #pragma mark 狗类的声明 @interface Dog:NSObject { @public NSString *color; float speed; NSString *sex; float weight; } -(void) eat:(NSString *) foodName;//吃 -(void) jiao;//叫 -(void) run;//跑 -(BOOL) isCompareColorWithOther:(Dog *) Dog;//传一个狗对象,与之前的狗颜色进行比较 -(float) isCompareSpeedWithOther:(Dog *) Dog;//速度进行比较 @end #pragma mark 狗类的实现 @implementation Dog //吃的方法 -(void) eat:(NSString *) foodName { weight+=0.5f; NSLog(@"狗正在吃%@,狗的体重为%.2f",foodName,weight); } -(void) jiao { NSLog(@"狗的颜色为%@,速度为%.2f,性别为%@,体重为%.2f",color,speed,sex,weight); } -(void) run { weight-=0.5; NSLog(@"跑完之后的速度为%.2f,跑完之后的体重为%.2f",speed,weight); } -(BOOL) isCompareColorWithOther:(Dog *)Dog { if(color == Dog->color) { return YES; } else { return NO; } } -(float) isCompareSpeedWithOther:(Dog *)Dog { return (speed - Dog->speed); } @end #pragma mark 人类的声明 @interface Person:NSObject { @public NSString *name; Dog *dog; } -(void)feedDog:(NSString*)feedName; -(void)liuGou; @end @implementation Person -(void)feedDog:(NSString*)feedName { [dog eat:feedName]; } -(void)liuGou { [dog run]; } @end int main(int argc, const char * argv[]) { @autoreleasepool { Dog *dog1= [Dog new]; dog1->color=@"金色"; dog1->speed=37.0f; dog1->weight=27.0f; dog1->sex=@"公"; Dog *dog2= [Dog new]; dog2->color=@"银色"; dog2->speed=28.0f; dog2->weight=20.0f; dog2->sex=@"公"; [dog1 eat:@"骨头"]; [dog1 jiao]; [dog1 run]; BOOL isSameColor=[dog1 isCompareColorWithOther:dog2]; NSLog(@"颜色是否相同 = %d", isSameColor); float speedCha=[dog1 isCompareSpeedWithOther:dog2]; NSLog(@"速度差 = %.2f", speedCha); NSLog(@"----------------------"); Person *person=[Person new]; person->name=@"张三"; person->dog = dog2; [person feedDog:@"大骨头"]; [person liuGou]; } ; }
_dog 人遛狗
#import <Foundation/Foundation.h> @interface Person:NSObject { @public int _age; float _weight; } -(float) eat:(float)x; -(float) walk:(int)y; @end @implementation Person -(float) eat:(float)x { ) { return _weight+0.6; } else { return _weight; } } -(float) walk:(int)y { ) { )); } else { return _weight; } } @end int main(int argc, const char * argv[]) { @autoreleasepool { Person *P= [Person new]; P->_weight=; ]; ]; NSLog(@"人吃食物后的体重为%.2f,人散步后的体重为%.2f",E,W); } ; }
_person 人散步
#import <Foundation/Foundation.h> @interface Car:NSObject { //成员的声明 @public int speed; NSString *color; } //方法的声明 -(void) run; @end @implementation Car //方法的实现 -(void) run { speed=; color=@"blue"; NSLog(@"speed=%d,color=%@",speed,color); } @end int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... Car *c=[Car new]; // c->speed=100; // c->color=@"red"; [c run]; } ; }
声明实现及调用
#import <Foundation/Foundation.h> #pragma mark 子弹类的声明 @interface Bullet : NSObject { @public int bulletCount; } @end #pragma mark 子弹类的实现 @implementation Bullet @end #pragma mark 枪类的声明 @interface Gun : NSObject { @public NSString *size; } -(void) shoot:(Bullet *) bullet; @end #pragma mark 枪类的实现 @implementation Gun -(void) shoot:(Bullet *) bullet { ) { bullet->bulletCount --; NSLog(@"%@正在射击,剩余子弹:%d", size, bullet->bulletCount); } else { NSLog(@"没子弹了!"); } } @end #pragma mark - @interface Soldier:NSObject { @public NSString *name; int level; int life; } -(void) fireByGun:(Gun *)gun andBullet:(Bullet *)bullet; @end @implementation Soldier -(void) fireByGun:(Gun *)gun andBullet:(Bullet *)bullet { [gun shoot:bullet]; } @end //#pragma mark 士兵类声明 //@interface Soldier : NSObject //{ // @public // NSString *name; // int level; // int life; //} //-(void) fireByGun:(Gun *) gun andBullet:(Bullet *) bullet; //@end //#pragma mark 士兵类实现 //@implementation Soldier //-(void) fireByGun:(Gun *) gun andBullet:(Bullet *) bullet //{ // [gun shoot:bullet]; //} //@end int main(int argc, const char * argv[]) { @autoreleasepool { Gun *g = [Gun new]; g->size = @"小米加步枪"; Soldier *s = [Soldier new]; s->name = @"斯沃特"; s->life = ; s->level = ; Bullet *_bullet = [Bullet new]; _bullet->bulletCount = ; [s fireByGun:g andBullet:_bullet]; [s fireByGun:g andBullet:_bullet]; [s fireByGun:g andBullet:_bullet]; [s fireByGun:g andBullet:_bullet]; } ; }
CrossFire
// Calculator.h #import <Foundation/Foundation.h> #import "Car.h" @interface Calculator : NSObject -(int) Add:(int)num1 and:(int)num2; +(int) Add:(int)num1 and:(int)num2; -(void) dxdydx; -(void) dxdylei; -(void) _self; +(void) leidydx; +(void) leidylei; -(void) dxdydx:(Car *)_car; //格式化字符串 -(void) _NSString; @end ----------------------------------------------------------------------------------------- // Calculator.m #import "Calculator.h" #import "Car.h" @implementation Calculator -(int) Add:(int)num1 and:(int)num2 { return num1+num2; } +(int) Add:(int)num1 and:(int)num2 { return num1+num2; } -(void) _NSString { ; i<; i++) { NSString *str=[NSString stringWithFormat:@"%02d.jpg",i]; NSLog(@"%@",str); } } -(void) dxdydx { //对象方法调用对象方法 Car *car=[Car new]; [car run]; [self _self];//self代表当前类的一个对象,调用自己的对象方法 } -(void) _self { NSLog(@"用self调用自身"); } -(void)dxdylei { //对象方法调用类方法 [Car run]; } +(void)leidydx { //类方法调用对象方法 Car *car=[Car new]; [car run]; } +(void)leidylei { //类方法调用类方法 [Car run]; } //通过传参 -(void)dxdydx:(Car *)_car { Car *car=[Car new]; [car run]; } @end ----------------------------------------------------------------------------------------- // // Car.h #import <Foundation/Foundation.h> @interface Car : NSObject -(void) run; +(void) run; @end ----------------------------------------------------------------------------------------- // // Car.m #import "Car.h" @implementation Car -(void) run { NSLog(@"Car的对象方法被调用"); } +(void) run { NSLog(@"Car的类方法被调用"); } @end ----------------------------------------------------------------------------------------- // // main.m #import <Foundation/Foundation.h> #import "Calculator.h" #import "Car.h" int main(int argc, const char * argv[]) { @autoreleasepool { Calculator *c1=[Calculator new]; and:]; and:]; NSLog(@"对象方法加=%d",res1); NSLog(@"类方法加=%d",res2); NSLog(@"------------------"); //生成类的一个对象,然后调用 [c1 dxdydx]; [c1 dxdylei]; //作为一个参数调用 Car *car=[Car new]; [c1 dxdydx:car]; NSLog(@"--------------------"); [Calculator leidydx]; [Calculator leidylei]; NSLog(@"------------------------"); [c1 _NSString]; } ; }
Calculator
// // Employee.h #import <Foundation/Foundation.h> @interface Employee : NSObject { NSString * _name; int _age; float _salary; } -(void)setName:(NSString *)name; -(NSString *)name; //@property NSString * name; -(void)setAge:(int)age; -(float)salary; @end ----------------------------------------------------------------------------------------- // // Employee.m // P1 #import "Employee.h" @implementation Employee -(void)setName:(NSString *)name { _name=name; NSLog(@"设置的名字为%@",_name); } -(NSString *)name { _name=@"osay"; return _name; } -(void)setAge:(int)age { _age=age; NSLog(@"设置的年龄为%d",_age); } -(float)salary { _salary=5687.8; return _salary; } @end ----------------------------------------------------------------------------------------- // // main.m // 封装 #import <Foundation/Foundation.h> #import "Employee.h" int main(int argc, const char * argv[]) { @autoreleasepool { Employee *e=[Employee new]; NSString * na=[e name]; NSLog(@"名字为%@",na); [e setName:@"iosay"]; [e setAge:]; float sa=[e salary]; NSLog(@"工资为%.2f",sa); } ; }
封装
// // Car.h #import <Foundation/Foundation.h> @interface Car : NSObject { @public int _speed; } -(void)start; -(void)stop; @end ----------------------------------------------------------------------------------------- // // Car.m #import "Car.h" @implementation Car -(void)start { NSLog(@"车已启动,速度为%d",_speed); } -(void)stop { NSLog(@"车已熄火"); } @end ----------------------------------------------------------------------------------------- // Person.h // P1 #import <Foundation/Foundation.h> #import "Car.h" @interface Person : NSObject -(void)goHome:(Car*)car; @end ----------------------------------------------------------------------------------------- // // Person.m // P1 #import "Person.h" @implementation Person -(void)goHome:(Car*)car { [car start]; } @end ----------------------------------------------------------------------------------------- // // main.m // 匿名类的使用 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; Car *c= [Car new]; c->_speed=; [c start]; [Car ; [p goHome:[Car new]]; } ; }
匿名类的使用
// // Dog.h #import <Foundation/Foundation.h> @interface Dog : NSObject -(void)run; @end ----------------------------------------------------------------------------------------- // // Dog.m // P1 #import "Dog.h" @implementation Dog -(void)run { NSLog(@"-run->狗在跑"); } @end ----------------------------------------------------------------------------------------- // // Person.h // P1 #import <Foundation/Foundation.h> #import "Dog.h" @interface Person : NSObject { //关联关系 @public Dog *_dog ; } -(void)liuDog:(Dog *)dog;//依赖关系 -(void)liuDog; @end ---------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person //依赖关系 -(void)liuDog:(Dog *)dog { [dog run]; } //关联关系 -(void)liuDog { [_dog run]; } @end ---------------------------------------------------------------------------------------- // // main.m // 关联和依赖-人遛狗 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person * p =[Person new]; Dog * d1 = [Dog new]; //[p liuDog:d1]; p->_dog=d1; [p liuDog]; } ; }
关联和依赖-人遛狗
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject -(void)run; -(void)eat; +(void)sleep; +(void)music; @end ----------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person -(void)run { NSLog(@"人在跑"); [self eat]; NSLog(@"run:self:%p",self); } -(void)eat { NSLog (@"人在吃"); } +(void)sleep { NSLog(@"人在睡"); [self music]; NSLog(@"sleep:self:%p",self); } +(void)music { NSLog(@"人在听歌"); } @end ----------------------------------------------------------------------------------------- // // Static.h #import <Foundation/Foundation.h> @interface Static : NSObject -(void)count; @end ----------------------------------------------------------------------------------------- // // Static.m #import "Static.h" @implementation Static -(void)count { ; NSLog(@"count=%d",count); count++; } @end ----------------------------------------------------------------------------------------- // // main.m // self的使用 #import <Foundation/Foundation.h> #import "Person.h" #import "Static.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p run]; NSLog(@"当前对象:%p",p); NSLog(@"----------------------"); [Person sleep]; NSLog(@"当前类Person:%p",[p class]); NSLog(@"----------------------"); Static *s=[Static new]; [s count]; [s count]; [s count]; } ; }
self的使用
// // Child.h #import "Person.h" @interface Child : Person -(void)play; -(void)show; @end ----------------------------------------------------------------------------------------- // // Child.m #import "Child.h" @implementation Child -(void)play { NSLog(@"child play"); } -(void)eat:(NSString *)foodName { NSLog(@"child eat %@",foodName); } -(void)run { NSLog(@"child run"); } -(void)show { _name=@"zhangyu"; } @end ----------------------------------------------------------------------------------------- // // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { int age; @public NSString * _name; @private float _salary; @protected float _weight; } -(void)setAge:(int)age; -(int)Age; -(void)eat:(NSString *)foodName; -(void)run; @end --------------------------------------------------------------------------------------- // // Person.m #import "Person.h" NSString *blog=@"www.iosyu.com"; @implementation Person -(void)setAge:(int)age { self->age=age; } -(int)Age { return self->age; } -(void)eat:(NSString *)foodName { NSLog(@"一个人在吃%@",foodName); } -(void)run { NSLog(@"一个人在跑步"); [self blog]; } -(void)blog { NSLog(@"博客地址:%@",blog); } @end --------------------------------------------------------------------------------------- // // test.h #import "Child.h" @interface test : Child @end --------------------------------------------------------------------------------------- // // test.m #import "test.h" @implementation test @end --------------------------------------------------------------------------------------- // // main.m // 类的继承 #import <Foundation/Foundation.h> #import "Person.h" #import "Child.h" #import "test.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p setAge:]; NSLog(@"年龄为:%d",[p Age]); [p eat:@"苹果"]; [p run]; NSLog(@"--------------------------"); Child *c=[Child new]; [c setAge:]; NSLog(@"child年龄为:%d",[c Age]); [c eat:@"apple"]; [c run]; [c play]; NSLog(@"--------------------------"); test *t=[test new]; [t eat:@"banana"]; } ; }
类的继承
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { int _age; } -(void)setAge:(int)age; -(int)age; @end ----------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person -(void)setAge:(int)age { _age=age; } -(int)age { return _age; } -(NSString *)description { NSString *str= [NSString stringWithFormat:@"age=%d",_age]; return str; } @end ----------------------------------------------------------------------------------------- // // main.m // description方法 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p= [Person new]; [p setAge:]; NSLog(@"age=%d",[p age]); NSLog(@"p:%@",p); Class c1=[p class]; NSLog(@"Person:%@",c1); NSLog(@"Person:%@",[p class]); } ; }
description方法
// Animal.h #import <Foundation/Foundation.h> @interface Animal : NSObject -(void)run; @end ----------------------------------------------------------------------------------------- // // Animal.m #import "Animal.h" @implementation Animal -(void)run { NSLog(@"动物在跑"); } @end ----------------------------------------------------------------------------------------- // // Cat.h #import "Animal.h" @interface Cat : Animal @end ----------------------------------------------------------------------------------------- // // Cat.m #import "Cat.h" @implementation Cat -(void)run { NSLog(@"Object-C的更多相关文章
- CoreCLR源码探索(一) Object是什么
.Net程序员们每天都在和Object在打交道 如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" 这个答案是对的 ...
- JavaScript Object对象
目录 1. 介绍:阐述 Object 对象. 2. 构造函数:介绍 Object 对象的构造函数. 3. 实例属性:介绍 Object 对象的实例属性:prototype.constructor等等. ...
- javascript之Object.defineProperty的奥妙
直切主题 今天遇到一个这样的功能: 写一个函数,该函数传递两个参数,第一个参数为返回对象的总数据量,第二个参数为初始化对象的数据.如: var o = obj (4, {name: 'xu', age ...
- c# 基础 object ,new操作符,类型转换
参考页面: http://www.yuanjiaocheng.net/webapi/config-webapi.html http://www.yuanjiaocheng.net/webapi/web ...
- APEX:对object中数据进行简单处理?
在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...
- 笔记:Memory Notification: Library Cache Object loaded into SGA
笔记:Memory Notification: Library Cache Object loaded into SGA在警告日志中发现一些这样的警告信息:Mon Nov 21 14:24:22 20 ...
- Selenium的PO模式(Page Object Model)[python版]
Page Object Model 简称POM 普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...
- Object是什么
Object是什么 .Net程序员们每天都在和Object在打交道如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" ...
- a different object with the same identifier value was already associated with the session:
hibernate操作: 实例化两个model类,更新时会提示 a different object with the same identifier value was already assoc ...
- CSharpGL - Object Oriented OpenGL in C#
Object Oriented OpenGL in C#
随机推荐
- Sublime Text3 以及 SublimeREPL使用Virtualenv执行python
1. SublimeText3 安装Virtualenv插件(Crtl+Shift+P) 2. 新建python虚拟环境: Crtl+Shift+P,选中Virtualenv:New选项,在底部Vir ...
- Spring事务传播属性
Spring 对事务控制的支持统一在 TransactionDefinition 类中描述,该类有以下几个重要的接口方法: int getPropagationBehavior():事务的传播行为 i ...
- HDU 5053 the Sum of Cube(简单数论)
http://acm.hdu.edu.cn/showproblem.php?pid=5053 题目大意: 求出A^3+(A+1)^3+(A+2)^3+...+B^3和是多少 解题思路: 设f(n)=1 ...
- Mysql数据库的使用总结之ERROR 1146 (42S02)
在使用mysql数据库过程中,遇到了错误ERROR 1146 (42S02):Table doesn't exist,经过了两天,终于解决了这个问题.引起该错误的原因不同,对应的解决方法也不同.这里只 ...
- C++之流与文件
C++中,输入输出采用流来进行,例如iostream库中的 cin 和 cout .对文件进行读写操作也使用流.可以将文件与流关联起来,然后对文件进行操作.要将流与文件关联起来,必须像声明变量那样声明 ...
- Web 播放声音 — Flash 篇 (播放 AMR、WAV)
本文主要介绍 Flash 播放 AMR 格式 Base64码 音频. 在此之前么有接触过 Flash ,接触 AS3 是一头雾水,不过幸好有 TypeScript 和 JavaScript 的基础看起 ...
- 在Ubuntu14.04_ROS_indigo上安装Kinect2驱动和bridge
小乌龟:大乌龟,你这两周干么呢? 大乌龟:在Ubuntu14.04 ROS_indigo上装Kinect2的驱动和bridge 小乌龟:就装个驱动有什么难的 大乌龟:你说的对小乌龟,这确实不是问题,但 ...
- css浮动与绝对定位小记
浮动 float属性可以设置的值为none,left,right.对于设置了浮动的元素,会向其父元素的左侧或右侧紧靠,默认情况下,盒子的宽度不再伸展,而是根据盒子里面的内容来确定.浮动可以让一个元素移 ...
- CSS之float样式总结
从四大开始开始慢慢接触前端,大概半年多过去了,虽然做了一些东西,但感觉有些点始终不是很清晰.有时候为了赶进度,没有太多时间对某个点进行全面深入思考分析,只能从网上搜一搜,试一试,只要效果出来了,任务就 ...
- 总结/PSP初体验—排球计分程序1.0
要做一个排球计分程序,墨迹了很长时间才做出个的东西,过程很不爽: 功能:这个软件有两个页面,可以实现窗体A的部分变化控制窗体B的部分变化.A是操作人员使用看到的,B是投放给观众的,完全由A操控: 学到 ...