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#
随机推荐
- vs2010/2013项目的C++所在文件夹越来越大如何解决?
vs2010/2013项目所在文件夹越来越大如何解决? Tools->Options->Text Editor->C/C++->Advanced,在 Fallback Loca ...
- spark 简介
spark 是基于内存计算的 大数据分布式计算框架,spark基于内存计算,提高了在大数据环境下处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将spark部署在大量廉价的硬件上,形成集群. 1 ...
- (转载)(收藏)Awk学习详细文档
awk命令 本文索引 [隐藏] awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术 ...
- sql异步执行
/// <summary> /// 按钮事件 异步执行 /// </summary> /// <param name="sender">< ...
- .NET XML序列化与反序列化
闲着没事,写了两个通用的XML序列化与反序列化的方法. 贴出来当作笔记吧! /// <summary> /// XML序列化 /// </summary> /// <ty ...
- U家面试prepare: Serialize and Deserialize Tree With Uncertain Children Nodes
Like Leetcode 297, Serialize and Deserialize Binary Tree, the only difference, this is not a binary ...
- Intellij IDE 常用设置
1· 去除代码提示的Case sensitive(比如Sprite,键入sprite不进行任何提示) Editor->Code Completion->Case sensitive com ...
- 日志时间格式有s,ms,us,如何排序最大10行
这个比较繁琐,谁有更好方法?告诉我 [root@module tmp]# cat oldboy.txt 12s120001ms12000000us13s[root@module tmp] ...
- SASS 初学者入门
SASS 初学者入门 Sass 是什么? Sass 是Syntactically Awesome Stylesheete Sass的缩写,是由Hampton Catlin开发的. Sass可以简化你的 ...
- java 中构造函数 的理解
构造方法就是与类同名的那个方法,它的作用是可以用来初始化 class Person{ public Person(String n,int a) {//构造方法 name = n; age = a; ...