日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

类的设计

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 类的设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

類的設計

  c語言是面向過程的編程語言,c語言中的代碼是"祈使句",強調的是存儲數據,管理數據,程序員通過寫代碼操作cpu進行數據存儲,數據管理

  oc語言是面向對象的編程語言,oc語言的代碼是強調主語的語言.oc程序中,會添加很多可以接收消息的單元(對象),每個單元具有一個單獨的功能,這些單元相互配合,完成一個完整的應用程序

  oc語言(objective-c)是ios應用開發的核心語言?

  [oc的用途]

    oc語言可以用來編寫mac os操作系統

    oc語言可以用來編寫基于mac os系統的應用程序

    oc語言可以用來編寫ios操作系統

    oc語言可以用來編寫基于ios操作系統的應用程序?

  同樣是面向對象的語言有c++,java,oc

  公認的第一個面向對象的程序設計語言是 simula 67 語言,而c++就是基于 simula 67 誕生的新的面向對象的語言

  公認的第二個面向對象的程序設計語言是 smalltalk 語言,而oc,java就是基于 smalltalk 誕生的新的面向對象的語言?

  區別:

  [繼承性]

    c++,支持多繼承

    oc,java只支持單繼承

  [動態性]

    c++,靜態語言.在編譯期,編譯器會做靜態語法檢查,靜態編譯,運行起來的程序安全性比較高

    oc,動態語言.在程序運行期間可以根據字符串的內容決定調用哪個方法,加載哪個類,運行起來的oc程序靈活性較高

?

一.類和對象

  通過上面的了解,知道oc程序中充斥著各種各樣的對象,而這些對象都要由對應的類來創建

  什么是類?什么是對象?類和對象的關系?

  [從生活角度看]

  類    對象

  人    你,我

  書    你桌上的那本書,我桌上的那本書

  球    你家的那個籃球,我家的那個籃球

  機器人  R2-D2,BB8

  [從代碼角度看]

    [創建oc工程]?

      工程名:可以是中文,但是如果后期創建ios的工程,工程名必須是英文,因為ios工程使用中文工程名會產生一些無法預 料的錯誤

?      語言類型:選擇Foundation或者Objective-c?

    [oc工程的特點]

      #import <Foundation/Foundation.h>

      <1>自動包含Foundation.h頭文件,Foundation.h文件寫有常用的絕大部分頭文件的包含語句
      <2>使用#import指令來包含Foundation.h頭文件

        oc語言的程序是基于Foundation框架的,Foundation框架是oc的基礎框架,脫離Foundation框架幾乎無法寫出一個 完整的ios應用程序

?        import,可以保證被包含的頭文件只被包含一次

      <3>oc默認的源代碼文件是.m結尾的文件
      <4>oc特有的打印語句,和oc特有的字符串

        NSLog(@"Hello, World!");

        oc中打印字符串,使用NSLog函數

        oc中字符串,都是@開頭的字符串(c中的字符串在oc中依然可以使用)

        [注] oc語言是完全兼容于c語言的

      <5>NSLog打印字符串,帶有特殊的日志字符串
?

二.類的創建

  c語言的結構體和oc語言的非常相似

  oc中為了描述一個事物,使用類來實現

  c中的結構體:負責存儲數據

  c中的函數:負責管理數據

  oc中的類,就是c中的結構體和函數的結合,既負責存儲數據,又負責管理數據

//Person是我們創建的類的名字 //:表示繼承關系 //NSObject是Person類的父類 //在oc語言中,NSObject類是所有其他類的直接/間接的父類 @interface Person : NSObject {//年齡int age;//身高int height;//名字char name[20]; }//oc中的函數一般稱為“方法”method //oc中的方法,分兩類:對象方法 和 類方法 //對象方法,減號(-)開頭的方法,必須由對象進行調用 //類方法,加號(+)開頭的方法,必須由類名進行調用 //吃飯 - (void)eat;//睡覺 - (void)sleep;@end

  通過File -> New -> File,使用模板創建的類都會自動生成.h和.m文件

  [類的.h文件] 類的聲明,類的聲明關鍵字:interface

    <1>添加成員變量

    <2>添加成員方法(方法的聲明)

    [注] 類的聲明,是由 成員變量 + 成員方法聲明 構成

  [類的.m文件] 類的實現(具體指 方法的實現),類的實現關鍵字:implementation

    一個類一旦創建成功,就可以使用類名來創建對象

?

三.對象的創建?

//創建對象方法一:Person *liyifeng=[Person alloc];//在堆區創建對象liyifeng=[liyifeng init];//給堆區的對象初始化//創建對象方法二:Person *linzhiling=[[Person alloc] init];//創建對象的同時給堆區初始化

?

四.方法的調用?

  //oc中的函數一般稱為方法”method

  //oc中的方法,分兩類:對象方法 類方法

  //對象方法,減號(-)開頭的方法,必須由對象進行調用

  //類方法,加號(+)開頭的方法,必須由類名進行調用

  調用類的方法必須用[]的方式

  [liyifeng eat];?

  [注] 在同一個類的.h和.m文件中相互切換,ctrl+win+??/??

  [注] 在一個類的所有對象方法(減號方法)中,都可以直接使用成員變量

  一旦某個對象調用了對象方法,這個對象方法內部使用到的這些成員變量一定是屬于這個對象的

  [ selfsuper ]?

-(id)init {if (self=[super init]){//給當前對象的成員變量賦值(初始化)age = 10;height = 1.7;strcpy(name, "liyifeng");}return self; }

    [注] self,代表當前對象(誰調用這個方法,self就代表誰)

    [注] super,super關鍵字用來調用父類的方法

轉載于:https://www.cnblogs.com/firstsky/p/5892897.html

總結

以上是生活随笔為你收集整理的类的设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。