oc基础:类的定义
作者:互联网
#import <Foundation/Foundation.h> //类的声明 NS_ASSUME_NONNULL_BEGIN //interface 类的开始 bread 类名 NSObject 父类 @interface Bread : NSObject{ //添加成员变量(属性) 外部无法直接访问 NSString *brand; NSString *flavor; //类是通过属性来保存变量的 } //如果外部需要访问成员变量 必须提供相应的方法或行为 //访问;设置 set 获取 get /* 方法分两种: 1.实例方法 - 只能用对象去调用(必须实例化这个类 然后用对象去调用) 2.类方法 + 不需要实例化对象,用这个类本身就可以调用 :例如:[Bread alloc];alloc就是类方法 */
-(void)setBrand: (NSString *)aBrand;//括号内是返回值类型 冒号后是参数类型和参数名 -(NSString *)getBrand;//没有参数则直接结束 -(void)setFlavor:(NSString *)aflavor; -(NSString *)getfFlavor; //合并为一个方法 -(void)setBrand:(NSString *)abrand andFlavor:(NSString *)aFlavor; //在这之间声明属性方法 @end//类的结束 NS_ASSUME_NONNULL_END
#import "Bread.h"//需要实现的类所在的头文件 //类的实现 @implementation Bread//实现哪个类 //(方法的具体实现) - (void)setBrand:(NSString *)aBrand{ //保存外部传递过来的值 brand = aBrand; } -(NSString *)getBrand{ return brand; } -(void)setFlavor:(NSString *)aflavor{ flavor = aflavor; } -(NSString *)getfFlavor{ return flavor; }
对象的创建和使用:
#import <Foundation/Foundation.h> #import "Bread.h"//在使用一个类之前 先导入 /* 类:一类事物的高度抽象 不实际存在(没有内存) 对象:一个类的具体实现 实际存在 (有内存) */ int main(int argc, const char * argv[]) { @autoreleasepool { //实例化bread //创建bread的一个具体对象 //1. Bread *bd = [Bread new];//与2,3等价 //2. Bread *bd4 = [[Bread alloc] init]; //或者3. Bread *bd2= [Bread alloc];//(先分配内存) Bread *bd3 = [bd2 init];//(初始化) [ bd4 setBrand:@"达利园"]; [bd4 setFlavor:@"蒜泥味"]; NSString *brand =[bd4 getBrand]; NSLog(@"%@",brand); NSLog(@"%@",[bd4 getBrand]); } return 0; }
标签:定义,oc,void,基础,bd4,NSString,getBrand,brand,Bread 来源: https://www.cnblogs.com/kinghyt/p/10388895.html