啟程Objectvie-C(綠檸檬學習筆記)

來源:互聯網
上載者:User
20世紀80年代就出現了Objectvie-C.
千年萬精油  hello Objective-C
#import<Foudation/Foundation.h>            //告訴編譯器查看Fondation架構中的Foudation.h標頭檔。
int main(int argc,const char*arg【】)

     NSLog(@“hello,Object-C!”);     // NSLog()接受一個字串作為其第一個參數作為其第一個參數,
                                                             該字串包含格式說明符         
                                                      return(0);
   }//main
.m----object-C   .c-----c編譯器  .cpp-----C++    .m代表message
所有這些編譯工作由GCC(GNU Compiler Colection)
NS首碼說明函數來自cocoa工具包。
@說明引用的應該作為Cocoa的NSString元素來處理
NSString功能:
1告知其長度;2將自身與其他字串比較;3將自身轉換為整形值或浮點值。
  BOOL不是true和false而是yes和no
BOOL areIntsDifferent(int tihng1 int thing2)   //接受兩個整形參數,返回BOOL值。、
{
   if(thing1==thing2){                           reture(NO);
   }else{
   return(yes);
   }
NSString *boolString(BOOL yesNo){              
//boolString()返回的類型是一個指向NSString的指標
if(yesNo==No){
    return(@"No");}
else{
    return(@"Yes")
}
}
int main(int argc,const char *argv[])
{
BOOL areTheyDifferent(5.5);
NSLog(@"are%d and%d differnt?%@",    //%d=5,%@=boolString(areTheyDifferent)
5.5.boolString(areTheyDifferent));
BOOL areTheyDifferent(23.542;
NSLog(@"are%d and%d differnt?%@",
23.42.boolString(areTheyDifferent));
return(0);
)

oop
1.Indirection.
#import<Foundation/Foundation.h>
int main(int argc,const char*arg【】)
{
   NSLog(@“The numbers from 1 to 5:”);
   int i;
   for(i=1;i<=5;i++){                              //添加一個間接層,用count代替5,這樣就可以方便修改,變數的間接。
      NSLog(@"%d\n",i);
   }
   return(0);
}

2
#import<Foundation/Foundation.h>
int main(int argc,const char*arg【】)
{
   const char *words【4】={"abcde","def","jxyzs","kl"};
   int wordCount=4;
   int i;
   for(i=0;i<wordCount;i++)
      {
      NSLog(@"%s is %d characters long",words[i],strlen(words[i]));
      }
   return(0);
}

3.現在可以開始oop 了
類:一種結構,表示對象的類型;
對象:一種結構,它包含值和指向其他類的隱藏指標;
執行個體:比如circle對象也可以稱作circle類的一個執行個體;
訊息:對象可以執行的操作;
方法:響應訊息而啟動並執行代碼;訊息可以調用多個方法;
介面:是對象的類應該提供特性的描述;
實現:是使介面正常工作的代碼;

。。下面來一個標準的OOP
#interface Circle:NSObject      //這是為命名為Circle的新類定義的介面。
{
   ShapeColor fillColor;
   ShapeRect bounds;
}
-(void)setFillColorshapeColor)fillColor;                  //(傳回值) 方法 :(參數類型 )參數
-(void)setBoundsshapeRect)bounds;
-(void)draw
@end

#implementation Circle                                     //定義類的公用介面。
-(void)setFillColorshapeColor) C
{
   fillColor=C;
}
-(void)setBounds;(shapeRect)b
{
    bounds=b
}
-(void)draw;
{  
   NSLog(@"drawing a circle at(%d %d %d %d) in %@"),
   bounds.x,bounds.y,bounds.widh,bounds.height,
   colorName(fillColor);
}
@end

int main(int argc,const char *argv[])    //執行個體化,
{
   id shapes[3];

   ShaeRect rect0={0.0.10.30};
   shapes[0]=[Circle new];
   [shapes[0] setBounds: rect0];
   [shapes[0] setFillColor:kRedColor];

   ShaeRect rect1={30.40.50.36};
   shapes[1]=[Rectangle new];
   [shapes[1] setBounds: rect1;
   [shapes[1] setFillColor:kGreenColor];

   ShaeRect rect2={15.19.37.29};
   shapes[2]=[OblateSphereoid new];
   [shapes[2] setBounds: rect2];
   [shapes[2] setFillColor:kBlueColor];
  
  drawShapes (shapes.3);
   return(0);
}

本文轉自www.35java.com

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.