第一个oc对象

2015-05-28  本文已影响23人  孙国庆

//
// main.m
// 01-第一个oc类
//
// Created by zhaokai on 15/4/29.
// Copyright (c) 2015年 zhaokai. All rights reserved.
//

/**
//描述一个类
名字:首字母大写,其他的遵循驼峰原则(GoodPerson)
属性:最好以_开头,其他的遵循驼峰原则
行为(方法):遵守驼峰原则

//人
名字:Person
属性:身高(_height) 年龄(_age)
行为:跑(run)

//车
名字:Car
属性:轮子(_wheel) 颜色(_color)
行为:跑(run)

//苹果手机
名字:Iphone
属性:颜色(_color) 型号:(_model)
行为:打电话(callPhone) 发信息(sendMessage)

对比c语言的函数
要实现函数的声明和函数的定义
实现类的声明和定义

*/

//类的声明

//写一个枚举,表示手机的颜色 typedef给枚举起一个别名
typedef enum{
IphoneColorWithWhite = 1,//枚举的第一个元素最好不要从零开始
IphoneColorWithBlack,
IphoneColorWithTuHaoJin
}IphoneColor;

//注意:NSObject的作用:使类拥有创建对象的能力
@interface Iphone : NSObject//类名
//写属性的声明
{
//注意:属性的声明必须放在{}里面
@public //使在类的外部可以调用类的成员变量
int _model;//型号
IphoneColor _color;//颜色
}

//方法的声明 放在{}的后面 @end的前面 暂时先不写

@end//声明的结束,不可以省略

//类的实现
@implementation Iphone//类名

//写方法的实现
//注意:实现当中只能写自己的声明中的方法的实现(定义)

@end

import <Foundation/Foundation.h>

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

//自动释放池
@autoreleasepool {
    
    //创建一个具体的Iphone类的对象
    
    //注意:要想让类或对象去做一些事情,必须这样写[方法的调用者  方法名称]  也可以这样写[对象/类名  方法列表]
    
    //方法分类:通过对象调用的方法叫对象方法
    //通过类名调用的方法叫类方法

// [Iphone new];//创建一个对象

    /**
     new方法做的事情
     1.开辟一块存储空间
     2.初始化成员变量(简单数据类型会初始化成0)
     3.返回当前空间的地址
     */

// NSObject *
//用IPhone类型的指针保存Iphone类的对象
//注意:在oc中创建的每个类都可以看做一个新的数据类型

    //一般我们习惯上将iphone1当做后面的Iphone对象
    //实际上iphone1是一个对象指针
    
    //iphone1是一个局部变量
    //局部变量是相对于全局变量的  成员变量是类的属性的固有称呼
    Iphone * iphone1 = [Iphone new];
    
    //给对象赋值
    
    struct Student {
        int _age;
    };
    
    struct Student mystudent = {3};
    
    struct Student *studentP = &mystudent;
    
    studentP->_age = 6;
    
    //oc中给对象赋值与结构体类似
    
    iphone1->_model = 5;
    iphone1->_color = IphoneColorWithBlack;

// printf("%i",a);
NSLog(@"%i",iphone1->_model);

    //创建第二个Iphone类的对象
    Iphone *iphone2 = [Iphone new];
    
    iphone2->_color = IphoneColorWithTuHaoJin;
    iphone2->_model = 4;
    
    NSLog(@"iphone2->_model:%i",iphone2->_model);
    
    
    //总结:一个类可以创建多个对象,对象之间互不影响
    //方法只能通过对象指针/类名调用,不可以直接使用
    
    
    // insert code here...
    NSLog(@"Hello, World!");
    
}
return 0;

}

上一篇 下一篇

猜你喜欢

热点阅读