//
// main.m
// ObjectiveC1
//
// Created by scjy on 15/10/30.
// Copyright © 2015年 lizhipeng. All rights reserved.
//
#import <Foundation/Foundation.h>
//引入头文件(也就是类的.h文件,不能引入.m文件)
#import "person.h"
#import "Dinosaur.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//********* oc第一讲 ***********//
//类和对象
//面向对象的核心是 类 和 对象。
//类:具有相同特征和行为的事物的抽象。特征,行为
//器官
//特性:长在人身上;
//行为:保证人体的正常生活;
//人
//特性:白种人、黑种人、黄种人
//行为:会说会笑会吃饭,会跑会跳会学习。会穿衣会打扮会呼吸,会选择会欣赏会杀生。
//oc中类的定义(定义类分为两个部分)
//.h接口部分(头文件):对外声明类的特征和行为(说明书)
//.m实现部分(文件):对内实现类的行为
//接口部分标志:@interface
//类是模板,对象是具体表现,任何对象需要占用内存空间
//创建对象分两步:分配内存空间和初始化。
//分配内存空间:根据类中声明的实例变量为对象分配内存,将所有实例变量置为默认值0,并返回首地址person *p = [person alloc];
//初始化:为对象的实例变量设置初始值 p = [p init];
//创建对象
//+(id)alloc:表示这个方法属于类,只能类执行。id返回值类型,表示任意类型的对象,即创建好的对象。
//-(id)init:表示这个方法属于对象,只能对象执行。id返回值类型,表示初始化完成的对象。
/*
-(id)init
{
_age = 18;
return self;
}
*/
//指针储存对象的首地址,代指对象。
//1.[[person alloc]init]返回值是对象的首地址,即对象。
//2.p是跟对象同类型的指针变量,储存对象首地址,代指对象。
//创建对象或实例化对象
//person *xiaoming =[person alloc];分配内存空间
//person *xiaoming =[person init];给成员变量赋值
person *xiaoming =[[person alloc]init];
//成员变量赋值用
xiaoming->_name =@"小米摩纳哥";
xiaoming->_sex =@"男";
xiaoming->_age =100;
xiaoming->_height =30;
xiaoming->_hobby =@"学习";
//使用对象,打招呼
[xiaoming eat];
[xiaoming sleep];
[xiaoming teach];
[xiaoming sayHellow];
person *zhangsan =[[person alloc]init];
[zhangsan eat];
[zhangsan sayHellow];
Dinosaur *konglong = [[Dinosaur alloc]init];
// konglong->_name =@"恐龙";
[konglong speak];
//实例变量操作
//实例变量区分可见度,常见的有三种。
//其一为@public(公开的)
//@protected(受保护的,默认的)
//@pritave(私有的)
}
return 0;
}