温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Objective -C-代码总结

发布时间:2020-07-02 06:19:46 来源:网络 阅读:336 作者:Im刘亚芳 栏目:开发技术
#import <Foundation/Foundation.h>    //---------.h @interface Student : 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 *)name sex:(NSString *)sex age:(NSInteger)age hobby:(NSString *)hobby num:(NSInteger)num ; //=-------------自定义初始化方法---------------// - (id)init; - (id)initWithName:(NSString *)name sex:(NSString *)sex; @end #import "Student.h"   //----------------------.m @implementation Student - (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 *)name sex:(NSString *)sex age:(NSInteger)age hobby:(NSString *)hobby num:(NSInteger)num {     _studentName = name;     _studentSex = sex;     _studentAge = age;     _studentHobby = hobby;     _studentNumber = num; } //自定义方法赋值 - (id)init {     _studentSex = @"女";     return self; } - (id)initWithName:(NSString *)name sex:(NSString *)sex {     _studentName = name;     _studentSex = sex;     return self; } @end #import <Foundation/Foundation.h>    //---------main函数 #import "Student.h" #import "AudiCar.h" int main(int argc, const char * argv[]) {     @autoreleasepool {                  Student *p = [[Student alloc] init];         [p setName:@"泥煤"];     //对实例进行逐一赋值         [p setSex:@"不男不女"];         [p setAge:112];         [p setHobby:@"女生"];         [p setNumber:201438];                  //打印名字         NSString *name = [p name];  //有返回值,必须有接收器         NSLog(@"直接调用 :%@", name);         NSLog(@"%@", p);         [p study];     }     return 0; } 结果: 2014-08-16 20:49:29.035 LessonClass2[4384:303] 直接调用 :泥煤 2014-08-16 20:49:29.038 LessonClass2[4384:303] <Student: 0x100201630> 2014-08-16 20:49:29.038 LessonClass2[4384:303] 他的名字是:泥煤,他的性别是:不男不女,他今年:112岁,他的爱好:女生,他的学号是:201438 Program ended with exit code: 0

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

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

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

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


为什么不能使用@public

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

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

#import

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

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

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

  • 容易出现循环导入问题


@class

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

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI