OC第二天-实例变量可见度,setter和getter方法,导入头文件
来源:互联网 发布:java或者符号 编辑:程序博客网 时间:2024/05/17 02:11
实例变量可见度、方法、setter、getter
Person.h
#import <Foundation/Foundation.h>@interface Person : NSObject{// 在声明成员变量的时候,如果没有使用关键字进行说明,默认是受保护类型 NSString *_address; @public//公开的 可以在本类和类外面访问和修改;可以在任何地方访问和修改; NSString *_name; @protected//受保护的 作用域 在本类和子类 ; NSString *_sex; @private//私有的 只能在本类里面对他修饰的成员进行访问 和 修改 int _age; @package//作用于整个框架Cocoa框架}//setter(设置器)的书写格式:实例前面的_去掉,将首字母大写,然后前面加上set;设置器方法没有返回值//即set+首字母⼤写的实例变量名(忽略下划线)-(void) setAge:(int)age;-(void) setName:(NSString *)name;-(void) setAddress:(NSString *)address;-(void) setSex:(NSString *)sex;//getter(访问器)书写格式:变量名字去掉下划线 加上返回值类型-(int)age;-(NSString *)name;-(NSString *)sex;-(NSString *)address;//声明一个 自定义的初始化方法-(id)initWithName:(NSString *)name;//方法标识后面的括号中的类型是返回值类型;void表示空类型,没有返回值;-(void) print;//获取年龄-(int) getAge;//id 和instancetype比较: 1、都表示对象类型;2、id在编译阶段不确定类型,instancetype在编译阶段已经确定类型 3、id可以当做参数类型来使用,而instancetype不可以,只能当做返回值类型-(instancetype) printf;//:冒号表示方法有参数;:冒号后面就是这个方法的参数 ()里面是参数的类型,()后面是参数的名字;冒号前面是参数的修饰词,就是对参数的解释//方法名字:initWithName:age:::-(id) initWithName:(NSString *)name age:(int)age ;//声明一个设置方法-(void) setName:(NSString *)name age:(int)age address:(NSString *)address;@end//学生类的声明部分@interface Student : Person@end
Person.m
#import "Person.h"@implementation Person//设置器的实现-(void) setAge:(int)age{ _age = age;}-(void) setName:(NSString *)name{ _name = name;}-(void) setAddress:(NSString *)address{ _address = address;}-(void) setSex:(NSString *)sex{ _sex = sex;}//访问器(获取器)的实现-(int)age{ return _age;}-(NSString *)name{ return _name;}-(NSString *)sex{ return _sex;}-(NSString *)address{ return _address;}//实现一个 自定义的初始化方法-(id)initWithName:(NSString *)name{// 先让父类执行一次初始化方法 self = [super init];// 然后判断,并对实例变量进行设置 if (self) { _name = name; } return self;}-(void) print{ NSLog(@"_age = %d",_age);}-(int) getAge{ return 20;}-(void) setName:(NSString *)name age:(int)age address:(NSString *)address{ _name = name; _age = age; _address = address;}@end@implementation Student-(void)print{ Person *p = [[Person alloc] init]; p -> _sex = @"man";}@end
AudiCar.h
#import <Foundation/Foundation.h>@interface AudiCar : NSObject{ @public NSString *_color; NSString *_brand; float _price;}//setter设置器-(void)setColor:(NSString *)color Brand:(NSString *)brand Price:(float)price;//声明两个方法-(void) print;//+(void) run;@end
AudiCar.m
#import "AudiCar.h"@implementation AudiCar-(void)setColor:(NSString *)color Brand:(NSString *)brand Price:(float)price{ _color = color; _brand = brand; _price = price;}-(void) print{ NSLog(@"sf");}+(void) run{ self;//表示类本身,就是类的名字 // 不能在+方法中访问实例变量 // _address;}@end
Man.h
#import <Foundation/Foundation.h>//#import "Woman.h"@class Woman;//用class关键字声明类,解决用import导入文件时产生的循环编译的问题class只是一个声明的作用,就是告诉编译器 这个类是存在的,但是不编译;@interface Man : NSObject{ Man *_woman;}@end
Man.m
#import "Man.h"@implementation Man@end
Woman.h
#import <Foundation/Foundation.h>//#import "Man.h"@class Man;@interface Woman : NSObject{ Man *_MAN;}@end
Woman.m
#import "Woman.h"@implementation Woman@end
main.m
#import <Foundation/Foundation.h>#import "Person.h"#import "AudiCar.h"#import "Man.h"#import "Woman.h"//#include "Person.h"//是C语言中导入头文件的方法,如果在一个文件中重复导入相同的文件,就会出错//#include "Person.h"#import "Person.h"//解决了重复导入头文件的问题,避免重复编译的错误;#import "Person.h"#import "Person.h"int main(int argc, const char * argv[]) { Person *person = [[Person alloc]init]; [person setName:@"zhangdan" age:20 address:@"北京"]; AudiCar *p = [[AudiCar alloc] init]; [p setColor:@"red" Brand:@"audi" Price:1111111]; [p print]; Man *man = [[Man alloc] init]; Woman *woman =[[Woman alloc] init]; return 0;}
0 0
- OC第二天-实例变量可见度,setter和getter方法,导入头文件
- OC实例变量可见度 setter方法和getter方法
- OC中实例变量可见度、setter、getter方法和自定义初始化方法
- 实例变量可见度和方法(setter,getter 方法)
- day2:实例变量可见度、方法、setter、getter
- 进击的KFC:OC(二)实例变量可见度、方法、setter、getter
- 1.实例变量可见度2.方法3.setter, getter
- OC之实例变量可见度和方法
- iOS开发学习第十四课——实例变量可见度、方法、setter、getter
- (OC)基础第二讲:实例变量可见度、方法
- swift头文件与变量getter和setter的学习见解
- OC之实例变量可见度
- OC 实例变量的可见度
- OC第二讲成员变量可见度与方法
- OC2_实例变量可见度和方法
- OC02 实例变量可见度和方法-1
- getter和setter方法
- setter和getter方法
- [c++]基类对象作为函数参数(赋值兼容规则)
- C语言简介
- 02-线性结构2. Reversing Linked List (25)
- DOS攻击
- 以品类生存,以品质发展—武汉至盛护栏配件厂
- OC第二天-实例变量可见度,setter和getter方法,导入头文件
- 0604
- Chisel实验笔记(四)
- 有关浏览器几种宽高的汇总
- Android中的volley_6_volley的核心RequestQueue类
- 在线OJ读取文件防止出错的代码
- Eclipse 一直提示 loading descriptor for 解决
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- C#获取邮件客户端保存的邮箱密码