溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Objective -C-代碼總結(jié)

發(fā)布時(shí)間:2020-07-02 06:19:46 來源:網(wǎng)絡(luò) 閱讀:291 作者:Im劉亞芳 欄目:開發(fā)技術(shù)
#import <Foundation/Foundation.h>    //---------.h
@interface Student : NSObject
{
    //沒有寫paublic都默認(rèn)為protected  (受保護(hù)都)
    NSString *_studentName;  //實(shí)例變量
    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;
 //-----------多參數(shù)方法------------//
- (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歲,他的愛好:%@,他的學(xué)號是:%ld", _studentName, _studentSex, _studentAge, _studentHobby, _studentNumber);
}
- (void)setName:(NSString *)name  //給實(shí)例賦值
{
    _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;   // 返回實(shí)例,
}
- (NSString *)sex
{
    return _studentSex;
}
- (NSInteger)age
{
    return _studentAge;
}
- (NSString *)hobby
{
    return _studentHobby;
}
- (NSInteger)num
{
    return _studentNumber;
}
//多參數(shù)實(shí)例賦值
- (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函數(shù)
#import "Student.h"
#import "AudiCar.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        Student *p = [[Student alloc] init];
        [p setName:@"泥煤"];     //對實(shí)例進(jìn)行逐一賦值
        [p setSex:@"不男不女"];
        [p setAge:112];
        [p setHobby:@"女生"];
        [p setNumber:201438];
        
        //打印名字
        NSString *name = [p name];  //有返回值,必須有接收器
        NSLog(@"直接調(diào)用 :%@", name);
        NSLog(@"%@", p);
        [p study];
    }
    return 0;
}

結(jié)果:
2014-08-16 20:49:29.035 LessonClass2[4384:303] 直接調(diào)用 :泥煤
2014-08-16 20:49:29.038 LessonClass2[4384:303] <Student: 0x100201630>
2014-08-16 20:49:29.038 LessonClass2[4384:303] 他的名字是:泥煤,他的性別是:不男不女,他今年:112歲,他的愛好:女生,他的學(xué)號是:201438
Program ended with exit code: 0

實(shí)例變量的可見度---能不能在外界訪問。。

@protected  (受保護(hù)的,默認(rèn)的)---實(shí)例變量只能在該類和其子類內(nèi)操作

@public   --------實(shí)例變量可以在類的外部和內(nèi)部操作

@private----------實(shí)例對象只能在該類內(nèi)訪問


為什么不能使用@public

  1. 使用@public關(guān)鍵字,暴露類類內(nèi)部的細(xì)節(jié)。

  2. 不符合面向?qū)ο笳Z言的三大特性之一--封裝

#import

  • 導(dǎo)入頭文件,即:導(dǎo)入文件中的內(nèi)容到當(dāng)前類

  • #import “ ”導(dǎo)入自定義類,#import < >導(dǎo)入類庫中的頭文件

  • 功能類似C語言中的#include,但是可以避免頭文件被重復(fù)導(dǎo)入

  • 容易出現(xiàn)循環(huán)導(dǎo)入問題


@class

  • 告訴編譯器@class后的字符串作為類名使用,并未導(dǎo)入類的接口內(nèi)容

  • 有效避免嵌套循環(huán)導(dǎo)入   記得咋.m文件中導(dǎo)入#import  "類名";


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI