程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> OC學習01-類和對象

OC學習01-類和對象

編輯:C++入門知識

OC學習01-類和對象


面向對象編程

基本:

概念:對象 類 封裝 多態 主要語言有 C++,Java,OC

面向過程與面向對象的區別

  面向過程 面向對象 特點 分析步驟,實現函數 分析問題找出參與並得出對象及其作用 側重 實現功能 對象的設計(具體指功能) 例子 C語言 OC,C++,java

基本代碼:

    // OC打印
    NSLog(@Lanou);

    // NSInteger 整型,CGFloat 浮點型,NSString 字符串
    NSInteger i = 100;
    NSLog(@i = %ld,i);
    CGFloat f = 3.14;
    NSLog(@f = %g,f);

    // OC的字符串可以放中文
    NSString *str= @喲喲;
    NSLog(@%@,str);

    // OC的數組
    // 與for循環遍歷一樣,直接用NSLog進行遍歷
    NSArray *arr = @[@1,@2,@3];
    NSLog(@%@,arr);
    for (NSInteger i = 0 ; i < 3; i++) {
        NSLog(@%@,arr[i]);
    }

類和對象

類和對象是面向對象編程的核心 類就是具有相同特征以及行為事物的抽象

對象

對象是類的實例 類是對象的類型

OC中類的定義

先定義類,再創建對象,然後使用對象 定義有兩個部分,接口與實現(注意分開寫) 文件: .h的為接口文件, .m的為實現文件
接口
@interface Student : NSObject
@end

實現

// 對應的實現文件
@implementation Student

創建對象

任何對象都要占用空間 創建對象分為兩步
①分配空間 ②初始化 初始化
// 1.分配空間
Student *stu = [Student alloc];
// 2.初始化
stu = [stu init];
// 可以把上兩個步驟合成一個語句
Student *stu = [[Student alloc] init];

初始化中返回的self指的是返回完成的自己

- (id)init
{
    _stuName = @俊寶寶;
    _stuSex = @女;
    _stuHobby = @男;
    _stuAge = 20;
    _stuScore = 100;
    return self;
}

使用對象

    Student *stu = [[Student alloc] init];
    [stu sayHi];

實例變量操作

實例變量初始化的時候只做少量的設置,後期完善 實例變量的可見度分為三種
@public 公有 @private 私有 @protected 受保護的
@interface Student : NSObject
{
    // 成員變量的可見度
    @public
    // 成員變量,或實例變量
    NSString *_stuName; // 名字
    NSInteger _stuAge;  // 年齡
    NSString *_stuSex;  // 性別
    CGFloat _stuScore;  // 分數
    NSString *_stuHobby;// 愛好
}
@end

操作成員

    // 操作成員變量
    // 對象通過->來訪問自己的成員變量
    NSLog(@%ld,stu -> _stuAge);
    // 修改年齡
    stu -> _stuAge = 100;
    NSLog(@%ld,stu -> _stuAge);
    // 修改姓名,直接修改字符串直接賦值
    stu -> _stuName = @切克鬧;
    NSLog(@%@,stu -> _stuName);

注意:public修飾的實例變量,可以直接使用” ->”訪問

部分代碼

main.m

int main(int argc, const char * argv[]) {
    // 通過手機的類,創建對象,並且對對象的成員變量進行修改
    MobilePhone *mPhone = [[MobilePhone alloc] init];
    mPhone -> _phoneBrand = @samsung;
    mPhone -> _phoneColor = @白色;
    mPhone -> _phoneModel = @S100;
    mPhone -> _phonePrice = 4800;
    mPhone -> _phoneSize = 1080;
    NSLog(@品牌為%@,顏色:%@,型號:%@,價格:%ld,屏幕:%ld,mPhone->_phoneBrand,mPhone->_phoneColor,mPhone->_phoneModel,mPhone->_phonePrice,mPhone->_phoneSize);
     return 0;
}

MobilePhone.h

@interface MobilePhone : NSObject
{
    @public
    NSString *_phoneBrand;
    NSString *_phoneModel;
    NSInteger _phoneSize;
    NSString *_phoneColor;
    NSInteger _phonePrice;
}
- (void)buyPhone;
- (void)call;
- (void)sendMessage;
- (void)surfInternet;
- (void)watchVideo;

// 寫一個用來打印全部信息的功能
- (void)sayHi;

@end

MobilePhone.m

@implementation MobilePhone
- (void)buyPhone
{
    NSLog(@買了個手機);
}
- (void)call
{
    NSLog(@打了個電話);
}
- (void)sendMessage
{
    NSLog(@發了個短信);
}
- (void)surfInternet
{
    NSLog(@上了個網);
}
- (void)watchVideo
{
    NSLog(@看了個視頻);
}
// 重寫電話的初始化方法
- (id) init
{
    _phoneBrand = @Apple;
    _phoneColor = @red;
    _phoneModel = @S5;
    _phonePrice = 4000;
    _phoneSize = 1080;
    return self;
}
- (void)sayHi
{
    NSLog(@%@ , %@ ,%@  ,%ld ,%ld ,,_phoneBrand,_phoneColor,_phoneModel,_phonePrice,_phoneSize);
}

文章總結了今天學習的基本內容

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved