您的位置:首页 > 其它

oc中函数的声明

2015-07-30 11:40 141 查看
@interface Teacher : NSObject
{

//    @public
//    NSString *_name;
//    //类的外部内部都可以使用,尽量不要使用
//
//
//
//    @protected

//
//    NSString *_gender;
//    //只能在类的内部和子类中才能使用,如果没有写关键字,默认为protected。
//
//    @private
//    NSInteger _age;      //在java中是类,在objective-c中是基本类型,只是typedef了一下;
//    //只能在类的外部和子类中使用,除非特殊的情况下才能用到。

NSString *_name;
NSString *_gender;
NSInteger _age;
}

//oc中的方法分两种,类方法,实例方法

/*类方法只能用类调用   [ 类名  类方法名],   用  +   开头

实例方法只能用对象调用, [对象 实例方法名];
*/

+(void)sayHi;
-(void)sayHello;

//函数名是由修饰词组成的,就是冒号:前面的词.
//方法名使用驼峰命名法:首字母小写,第一个参数修饰符,第二个参数修饰符首字母小写,同样使用驼峰命名法
-(void)setname:(NSString *)name setAge:(NSInteger )age;

//有返回值,无参数
-(NSString *)getName;

//无返回值有参数(1个参数),参数以:开头,类型用()括起来
-(void)eat:(NSString *)food;

//操作实例变量的setter和getter方法,这是一个特殊的方法,编译器在@property时会自动给你提供。
/*
1 .设置_name的值,
2. 是实例方法,只有一个参数跟操作的实例变量有关。
3. 方法名  set + 实例变量名(忽略_,遵守驼峰命名法)
4. 参数类型跟操作的实例变量的类型一致
5. 参数名是    实例变量名(忽略下划线_)
*/

-(void)setname:(NSString *)name;

//getter方法不用get开头。因为!@#¥%……&*(

//getter方法不用get开头。因为!@#¥%……&*(
/*
1.getter方法是实例方法
2.没有参数
3.有返回值,返回值类型与操作的实例变量保持一致
4.方法名  实例变量名(忽略_)  切记:不要以get开头
*/

-(NSString *)name;
-(NSString *)name;


.m文件中的实现

#import "Teacher.h"

@implementation Teacher

+(void)sayHi
{

//类方法中,不能使用实例变量(调用类方法时,没有创建对象,所以不能调用实例变量)
NSLog(@"hello,class");
}

//无返回值,方法的返回值用()括起来。无参数
-(void)sayHello
{
NSLog(@"hello,instance");
}

//有参数,无返回值
-(void)setname:(NSString *)name  setAge:(NSInteger)age
{
_name = name;
_age = age;
}

//有返回值,无参数
-(NSString *)getName
{
return _name;
}

//无返回值有参数(1个参数),参数以:开头,类型用()括起来
-(void)eat:(NSString *)food
{
NSLog(@"The food I eat is %@",food);
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: