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#
随机推荐
- Python基础-字符编码与转码
***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...
- 谈谈LoveLive SIF以及即将诞生的LL练习器
由于课程需要和自身需求以及广大的LLer的需求,这个学期我将做一个造福全世界LLer的安卓app,它的名字是——还没想好(喂),总之是个LL SIF的练习器.什么?你问我LL SIF是什么?看来你不是 ...
- 手机移动端WEB资源整合
meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...
- JVM内存结构---《深入理解Java虚拟机》学习总结
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域的用途各不相同,同时也依据着各自的执行规则,独立的创建和销毁数据. 虚拟机内存的划分,如图所示: 线程之间 ...
- 【转】Android各大发布市场
前言 如果只有一个或者少许的两三个Android市场,本文也没用存在的必要性,本文谨献给同在Android奋战的同仁. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnbl ...
- MiniUI中DataGrid数据的载入
本文将介绍一下,在ASP.NET MVC环境下,如何用Jquery MiniUI中的Datagrid控件载入数据. 1.效果展示: 2.具体步骤: 1> 既然是在MVC里,那我们的界面自然选择 ...
- Qt qml 模拟iphone slide to unlock 的聚光动画文字效果
模拟iphone slide to unlock 的聚光动画文字效果 /底层放淡文字 /前景放高亮文字+半透明遮罩 /动画移动遮罩 Author: surfsky.cnblogs.c ...
- C语言 05 数组
数组作为函数参数,可以省略元素个数. 数组作为函数参数,传递是整个数组的地址,修改函数形参数组的值,会影响到外面的 实参数组. 基本数据类型作为函数参数,传递是数值.
- 常用快捷键(WebStorm, Eclipse, Sublime)
WebStorm 常用快捷键 Ctrl + / 单行注释// Ctrl + Shift + / 块注释/*…*/ Ctrl + D 复制行 Ctrl + Y 删除行 Ctrl + X 剪切(删除)行, ...
- mac_snailSVN
作者:潘捷链接:https://www.zhihu.com/question/19705164/answer/119484169来源:知乎著作权归作者所有,转载请联系作者获得授权. Mac下之前也有类 ...