黑马程序员------object-c面相对象_类的实例化

来源:互联网 发布:新版mac如何强制关机 编辑:程序博客网 时间:2024/06/04 19:44

知识要点:isa,成员变量,函数

  • 在java里有8个基础数据类型,byte,short,int,long,float,double,char,boolean还有就是引用类型,这里引用类型就是指实例化(new)出的类。
  • 在c里有6个基础数据类型,short,int,long,float,double,char
  • 类:是一种结构,表示对象的类型。
  • 对象:它包含值和指向其类的隐藏指针。
  • 实例:“对像”的另一种称呼。

    下面是根据视频练习的代码:

    #import <Foundation/Foundation.h>typedef enum {    red,blue,green}DogColor;typedef enum{    male,femle}Sex;@interface Dog: NSObject{    @public    DogColor dogColor;    int speed;    double weight;    Sex sex;}-(void) eat;-(void) wang;-(void) run;-(BOOL) isSameColor:(Dog *) dog;-(int) compareSpeed:(Dog *) dog;@end@implementation Dog- (void) eat{    weight += 0.5;    NSLog(@"狗吃完长肉,%f",weight);}- (void) wang{    }-(void) run{    weight -= 0.5;    NSLog(@"狗跑完减肉,%f",weight);}- (BOOL) isSameColor:(Dog *) dog{        return dogColor == dog->dogColor;}-(int) compareSpeed:(Dog *) dog{    return speed - dog->speed;}void testDog(){    Dog *dog1 = [Dog new];    dog1->weight = 10;    dog1->speed = 100;    dog1->dogColor = red;        Dog *dog2 = [Dog new];    dog2->weight = 100;    dog2->speed = 80;    dog2->dogColor = red;    NSLog(@"The dog is same color?%i",[dog1 isSameColor:dog2]);    NSLog(@"The speed comapre: %d",[dog1 compareSpeed:dog2]);}int main(){    testDog();    return 0;}

    类的方法

    1.-实例函数,对象的方法

    2.对象的方法声明在@interface和@end之间

    3.对象的方法只能用对象来调用

    4.对象方法只能由对象调用

    函数

    1.函数能写在除@interface和@end之间的任意位置

    2.函数对象不依赖于对象

    3.函数内部不能直接通过成员变量名访问某个对象的成员变量

    2.+成员函数

    语法补充:

      NSLog(@"字符串:%@",name);

      NSLog(@"字符:%c",a);

      NSLog(@"布尔值:%i",isShow);
      NSLog(@"整形:%i",i);
      NSLog(@"单精度浮点数: %f",f);
      NSLog(@"精度浮点数,且只保留两位小数:%.2f",f);
      NSLog(@"科学技术法:%e",f);
      NSLog(@"科学技术法(用最简短的方式):%g",f);

    ISA

    任何一个对象继承或者间接继承NSObject的类,它的实例对象都会有一个isa指针,指向类的对象(已经实例实例化),这个里面包括了变量,方法,遵守的协议等(用于存放类的数据)。

    详解oc的对象模型(http://blog.devtang.com/blog/2013/10/15/objective-c-object-model/)

  • 0 0
    原创粉丝点击