Objective-C-代码总结-创新互联

#import     //---------.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     //---------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] 
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  "类名";

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:Objective-C-代码总结-创新互联
分享路径:http://hbruida.cn/article/jchcg.html