oc中函数的声明

本文详细介绍了Objective-C中类的定义方式、成员变量的作用域以及类方法与实例方法的区别。通过具体的代码示例,展示了如何声明和实现方法,包括设置和获取实例变量的setter与getter方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值