Objective-C 基本语法(1)
来源:互联网 发布:中国足球 知乎 编辑:程序博客网 时间:2024/05/16 11:46
1.头文件名称的写法:例如 demo.h
实现文件的写法(c++中cpp文的写法) demo.m
2.NSLog和printf这两种打印的方式
NSLog:NSLog(@"我的姓名"); 注意:要加上@
printf:printf("我的姓名");
相对于printf来说,NSLog更好些,它添加了特性,例如时间戳,日期戳和自动附加换行符;
@表示引用的字符串应该作为Cocoa的NSString元素来处理
只要有@,那么就可以看作是c语言的扩展
3.头文件的声明方式
#import <Foundation/Foundation.h> //告诉编译器查看Foundation框架中的Foundation.h头文件
#import "demoClass.h"
@implementation demoClass // @implementation是一个编译器指令,表明你将为某个类提供代码,注意最后没有分号
4.头文件中成员变量定义的方式
@interface demoClass : NSObject//做为接口的存在,NSObject告诉编译器,demoClass这个类是基于NSObject这个(所有类的)超类的,并继承NSObject类定义的所有行为 { int _id; int _age; }
5.关于函数方法
(1)声明方式
+ 代表这个方法是类的方法,也就是说只能用类名调用
- 代表这个方法是对象的方法,就是说只能用类的对象来调用
+(方法类型)方法名 : (成员变量的类型)变量名
例如:
- (void)demoClass:(int)id andAge:(int)age;
+ (void)demoC:(int)id andAge:(int)age;
(2)实现 //在实现的时候不用加 类名:: 这种标识
- (void)demoClass:(int)id andAge:(int)age
{
//直接赋值
_id = id;
_age = age;
}
(3)在main函中的 调用
[demoC demoC:1 andAge:22];//调用的是 +(void)demoC:(int)id andAge:(int)age; [demoClass *d = [demoClass new];//或 demoClass *d1 = [[demoClass alloc]init];//创建对象的方法 [d demoClass:2 andAge:33];//调用的是 -(void)demoClass:(int)id andAge:(int)age;
6.set和get方法
(1)声明
set方法:
- (void)setId:(int) id;
- (void)setAge:(int) age;
get方法:
- (int)id; //就是类型名+属性名
- (int)age;
(2)实现
//set方法
- (void)setId:(int)id
{
_id = id;
}
- (void)setAge:(int)age
{
_age = age;
}
//get方法
-(int)id
{
return _id;
}
-(int)age
{
return _age;
}
(3)在main函数种调用
demoClass *d = [demoClass new]; [d set_id:3423]; //调用 -(void)setId:(int)id NSLog(@"id= %d",[d _id]); //[d _id]调用 -(int)id [d set_age:555555]; //调用 -(void)setAge:(int)age NSLog(@"age= %d",[d _age]); //[d _age]调用 -(int)age
关于set和get方法,系统可以自动 生成
.h 文件中: @property(nonatomic,assign) int _id,_age;
.m 文件中: @synthesize _id,_age;
这样系统就会自动生成关于_id和_age的set和get方法
注意:在main中还有 另外一种调用的方式
d._id = 3423; //相当于[d set_id:3423]
NSLog(@"id= %d",d._id);
当d._id 作为左值的时候 调用set方法
否则调用get方法
方法名必须相同的情况下:如果用了系统自动生成set和get方法,而自己同时也定义了set和get方法,这时候会 调用自己写的,因为自己写的会覆盖系统自动生成的
如果自己写的方法名与系统自动生成的方法名不相同,就会调用系统自动生成的方法名
7.在一个类内调用类内的其他的方法 [self 方法]
通过set方法来赋值:(在有参的构造中 调用set方法)
[self setId:id];
[self setAge:age];
打印方法中
-(void)print
{
NSLog(@"id= %d",_id);
NSLog(@"age= %d",[self age]);
}
8.关于字符串的定义
NSString *_name;
实现系统自动生成set和get方法:
.h中: @property(nonatomic,assign) NSString *_name;
.m中: @synthesize _name;
main函 数中调用
[d set_name:@"张三"];//赋值
NSLog(@"我的名字是:%@",[d _name]); //打印
- Objective-C 基本语法(1)
- Objective-C 基本语法(1)
- Objective-c基本语法
- Objective C基本语法
- Objective-C基本语法
- C和objective-C基本语法(1)
- 1、Objective-C语法之基本数据类型
- Objective-C基本语法简介
- Objective-C的基本语法
- 1.Objective-C基本语法
- Objective-C基础 (基本语法)
- Objective-C语法-基本数据类型
- Objective - C 语法1
- Objective-C语法之基本数据类型
- 浅谈Objective-C基本语法(函数)
- Objective-C语法之基本数据类型
- Objective-C语法之基本数据类型
- 2,Objective-C语法之基本数据类型
- splunk处理数据流
- mysql convert() cast()函数
- WINCE中的bib文件 .
- C语言多文件编译时,编译器不检测其声明的变量类型与定义时的类型是否匹配
- 当内部类定义在局部时
- Objective-C 基本语法(1)
- 学习hibernate 所遇到的一些Exception
- 有向图基本算法 -- 遍历算法
- seo每日学习1
- (短信、彩信、语音)协议
- splunk解析数据动作
- linux 各文件的含义
- Linux 信号
- python __set__ __get__ 等解释