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#
随机推荐
- SpringMVC常用配置-添加静态资源处理器-针对SpringMVC中静态资源无法访问的问题
- 使用CXF框架集成Spring实现SOAP Web Service
- VC6.0中友元函数无法访问类私有成员的解决办法
举个例子: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #inclu ...
- VS2010 LINK1123:failure during conversion to COFF:file invalid or corrupt
今天用Visual Studio 2010编译一个C工程时突然遇到下面这个编译错误.fatal error LINK1123:failure during conversion to COFF:fil ...
- 基于Java Netty框架构建高性能的部标808协议的GPS服务器
使用Java语言开发一个高质量和高性能的jt808 协议的GPS通信服务器,并不是一件简单容易的事情,开发出来一段程序和能够承受数十万台车载接入是两码事,除去开发部标808协议的固有复杂性和几个月长周 ...
- Hadoop基础知识
摘要:Hadoop的安装目录了解.etc的核心配置项.hadoop的启动.HDFS文件的block块级副本的存放策略.checkpoint触发设置. 1.hadoop目录了解 bin:可执行文件,命令 ...
- ElasticSearch基本学习
ES介绍 维基百科使用Elasticsearch来进行全文搜做并高亮显示关键词,以及提供search-as-you-type.did-you-mean等搜索建议功能. 英国卫报使用Elasticsea ...
- 批处理——服务器的web文件备份
首先建立三个文本文件,稍后会变成.bat结尾的批处理文件. 第一个文件:copyfile.bat[复制需要备份的文件到tmp文件下,等待压缩时使用] xcopy "D:\Webhost\*. ...
- CentOs中yum安装LAMP+PHPMYADMIN
对于租用以及VPS,提供在Linux安装LAMP(Linux+Apache+mysql+PHP),对于这个组件,不做过多的解释,网上很多这方面的资料.下面只介绍一种安装方法,作为以后使用的一个简单文档 ...
- eBox(stm32) 之中断结构
eBox的中断结构参考了mbed,和我们平时所用的中断结构有些差异,不容易理解,最近仔细看了底层代码,终于搞清楚了,总结一下 一 首先要要搞清楚的几个概念:类的静态成员,实例成员 ...