#import<Foundation/Foundation.h>//---------.h@interfaceStudent:NSObject{//没有写paublic都默认为protected(受保护都)NSString*_studentName;//实例变量NSString*_studentSex;NSString*_studentHobby;NSUInteger_studentAge;NSInteger_studentNumber;}-(void)study;-(void)setName:(NSString*)name;//seter方法-(void)setSex:(NSString*)sex;-(void)setAge:(NSInteger)age;-(void)setHobby:(NSString*)hobby;-(void)setNumber:(NSUInteger)num;-(NSString*)name;//geter方法,,印着get在OC中还有别的方法,这里不写-(NSString*)sex;-(NSInteger)age;-(NSString*)hobby;-(NSInteger)num;//-----------多参数方法------------//-(void)setName:(NSString*)namesex:(NSString*)sexage:(NSInteger)agehobby:(NSString*)hobbynum:(NSInteger)num;//=-------------自定义初始化方法---------------//-(id)init;-(id)initWithName:(NSString*)namesex:(NSString*)sex;@end#import"Student.h"//----------------------.m@implementationStudent-(void)study{NSLog(@"他的名字是:%@,他的性别是:%@,他今年:%ld岁,他的爱好:%@,他的学号是:%ld",_studentName,_studentSex,_studentAge,_studentHobby,_studentNumber);}-(void)setName:(NSString*)name//给实例赋值{_studentName=name;}-(void)setSex:(NSString*)sex{_studentSex=sex;}-(void)setAge:(NSInteger)age{_studentAge=age;}-(void)setHobby:(NSString*)hobby{_studentHobby=hobby;}-(void)setNumber:(NSUInteger)num{_studentNumber=num;}-(NSString*)name{return_studentName;//返回实例,}-(NSString*)sex{return_studentSex;}-(NSInteger)age{return_studentAge;}-(NSString*)hobby{return_studentHobby;}-(NSInteger)num{return_studentNumber;}//多参数实例赋值-(void)setName:(NSString*)namesex:(NSString*)sexage:(NSInteger)agehobby:(NSString*)hobbynum:(NSInteger)num{_studentName=name;_studentSex=sex;_studentAge=age;_studentHobby=hobby;_studentNumber=num;}//自定义方法赋值-(id)init{_studentSex=@"女";returnself;}-(id)initWithName:(NSString*)namesex:(NSString*)sex{_studentName=name;_studentSex=sex;returnself;}@end#import<Foundation/Foundation.h>//---------main函数#import"Student.h"#import"AudiCar.h"intmain(intargc,constchar*argv[]){@autoreleasepool{Student*p=[[Studentalloc]init];[psetName:@"泥煤"];//对实例进行逐一赋值[psetSex:@"不男不女"];[psetAge:112];[psetHobby:@"女生"];[psetNumber:201438];//打印名字NSString*name=[pname];//有返回值,必须有接收器NSLog(@"直接调用:%@",name);NSLog(@"%@",p);[pstudy];}return0;}结果:2014-08-1620:49:29.035LessonClass2[4384:303]直接调用:泥煤2014-08-1620:49:29.038LessonClass2[4384:303]<Student:0x100201630>2014-08-1620:49:29.038LessonClass2[4384:303]他的名字是:泥煤,他的性别是:不男不女,他今年:112岁,他的爱好:女生,他的学号是:201438Programendedwithexitcode:0

实例变量的可见度---能不能在外界访问。。

@protected (受保护的,默认的)---实例变量只能在该类和其子类内操作

@public --------实例变量可以在类的外部和内部操作

@private----------实例对象只能在该类内访问


为什么不能使用@public

使用@public关键字,暴露类类内部的细节。

不符合面向对象语言的三大特性之一--封装

#import

导入头文件,即:导入文件中的内容到当前类

#import “ ”导入自定义类,#import < >导入类库中的头文件

功能类似C语言中的#include,但是可以避免头文件被重复导入

容易出现循环导入问题


@class

告诉编译器@class后的字符串作为类名使用,并未导入类的接口内容

有效避免嵌套循环导入 记得咋.m文件中导入#import "类名";