//
// 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;
}
网友评论