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#
随机推荐
- 简单的js菜单
<!DOCTYPE html> <html> <head> <title>hovertree</title><base target= ...
- Issue 4:分布式的基础性问题
最近打算聊一聊分布式的基本思想.定了个大致的技术路线. 分布式难点 分片和元数据管理 多副本策略 多副本一致性方案 并发和事务支持
- logstash插件
codec 插件 goeip插件 input { file { path => ["/data/nginx/logs/access.log"] type =>&qu ...
- XPath 语法
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. XML 实例文档 我们将在下面的例子中使用这个 XML 文档. & ...
- poj 2251 Dungeon Master
http://poj.org/problem?id=2251 Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submis ...
- cmd光标移动
ESC:清除当前命令行.F1: 单字符输出上次输入的命令 相当于方向键上的 → 的作用.F2: 可复制字符数量 , 输入上次命令中含有的字符,系统自动删除此字符后的内容.F3: 重新输入前一次输入的命 ...
- 25个实用的jQuery技巧和解决方案
1. 去除页面的右键菜单 $(document).ready(function(){ $(document).bind(“contextmenu”,function(e){returnfalse;}) ...
- Windows下USB磁盘开发系列二:枚举系统中所有USB设备
上篇 <Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>介绍了很简单的获取系统U盘盘符的办法,现在介绍下如何枚举系统中所有USB设备(不光是U盘). 主要调用的API如下: 1 ...
- (function(){})()是什么意思?
JS里面(function(){})()function外面的括号是什么意思? 定义了一个函数,并马上执行这个函数.这是js中常用的方式.好处呢.参考:js 闭包
- 170105、MySQL 性能优化的最佳 20+ 条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数 ...