OC 第一个OC类
来源:互联网 发布:手机淘宝如何删除差评 编辑:程序博客网 时间:2024/05/16 23:34
//
// main.m
// 第一个OC类
#import <Foundation/Foundation.h>
/*
事物名称:MacBook
属性:CPU键盘鼠标
方法:打字玩游戏
*/
//oc中定义一个类,分为声明和实现
//1 类的声明:以@interface开头 @end结尾类名以大写字母开头
//属性必须以{}包围为了符合规范,在属性名称前面加_
//方法分为类方法和对象方法有参数无参数又返回值无返回值
//添加:NSObject是为了使类可以创建对象
@interface Macbook : NSObject
{
//类的属性是受保护的,通过@public来使类的属性可以被类的对象调用修改
@public
int _cpu;
int _mouse;
}
-(void) getCpu;
//多参数的方法,每个参数前面都得加冒号,所有的数据类型必须用()包起来
//第一个参数以后的参数冒号前可以加上标签,说明参数的含义,防止参数过多赋值不明确,标签也是方法名的一部分
//如果不想每次使用方法都开辟存储空间,并该方法没有使用类的属性,可以定义成类方法
+(int) getMouse : (int)mou cpu:(int)cpu;
@end
//2 类的实现以@implementation开头,以@end结尾
//声明类方法就得实现类方法,声明对象方法就实现对象方法
/*
1 类方法只能通过类调用,对象方法只能通过对象调用
2 对象方法中可以访问类的属性,类方法中不能直接访问类的属性
3 调用类方法的效率比调用对象方法的效率高
4 类方法和对象方法可以相互调用
4.1对象方法可以直接调用类方法
4.2类方法调用对象方法的时候需要先创建对象,再调用对象方法(在企业开发中不建议这么使用)
*/
@implementation Macbook
-(void)getCpu{
//可以在对象方法中直接使用类的属性
NSLog(@"sum = cpu + mouse : %i",_cpu+_mouse);
//NSLog(@"sum = cpu + mouse : %i",[Macbook getMouse:1 cpu:1]);
}
//有参数和没参数是完全不同的两个方法
+(int)getMouse:(int)mou cpu:(int)cpu{
Macbook *mac = [Macbooknew];
[mac getCpu];
return mou+cpu;
}
@end
int main(int argc,constchar * argv[]) {
//通过类创建对象给类发个new消息
//发送消息的格式 [类名/对象名类方法/对象方法];
//系统做三件事:为类创建出来的对象分配存储空间初始化属性返回对象的地址
Macbook *mac = [Macbooknew];
//oc中的类本质是结构体,所以指针其实就是指向结构体
mac->_cpu = 1;
mac->_mouse = 2;
NSLog(@"cpu:%i,mouse:%i",mac->_cpu,mac->_mouse);
[mac getCpu];
//调用类方法
int i = [MacbookgetMouse:10cpu:10];
NSLog(@"getMouse %i",i);
//OC中的NSLog对c语言的字符串支持不是很好
NSString *name =@"你好傻";
NSLog(@"oc字符串 %@",name);
return 0;
}
- OC 第一个OC类
- OC -- 第一个类
- 第一个OC类
- 第一个OC的类
- 03第一个OC类
- 第一个OC的类
- 第一个OC的类
- 第一个OC类-方法
- OC-第一个类
- OC-第一个类
- 第一个OC程序
- 第一个oc程序
- 第一个oc程序
- OC第一个周六
- 第一个OC程序
- 第一个OC程序
- OC-第一个方法
- OC学习那些事:第一个OC类
- [leetcode]70. Climbing Stairs
- 编译udhcpc for ARM_linux
- SQLite详解
- Windows系统中Eclipse C/C++环境搭建
- my代码跟踪之driver_register
- OC 第一个OC类
- cookies的用法
- 强大的Spring缓存技术(下)
- 打造平台
- No %s entity with id %s exists! Spring JPA 删除(delete) 报错
- bootstrap/angularjs 日期控件
- How-To set up a serial console on Debian
- SSM框架——使用MyBatis Generator自动创建代码
- android webview与H5混合开发,webview自定义缓存