ios开发-OC的初步学习
来源:互联网 发布:数据分析实验室 编辑:程序博客网 时间:2024/05/20 16:09
今天开始我们正式学习OC了,OC是在C语言基础上进行封装的,是一门面向对象的语言,而之前学的C语言是面向过程语言,今天初步学习下OC的基本知识:
1.c和oc的区别:
oc属于面向对象:面向过程关注的是解决问题需要哪些步骤
c属于面向过程:面向过程关注的是解决问题需要哪些步骤
2.类和对象的关系:
类和对象是面向对象中两个非常重要的概念:
类指的是具有一定属性的元素的集合,对象是直接用来操作的操作者.
3.oc中用到类的时候用如下步骤:
1.声明文件
#import <Foundation/Foundation.h>
// 类的声明
@interface Car : NSObject//这个使得Car类型具有创建对象的能力
{ //大括号,初始化成员变量为0!
@public//可以让Car对象的成员变量/实例变量属性被外界访问
int wheels; // 多少个轮子
int speed; // 时速
}
- (void)run; // 跑的行为,类型一定有小括号(定义的方法类型)
@end
2.类的实现
@implementation Car
- (void) run
{
NSLog(@"%i个轮子,%i时速的车子跑起来了", wheels, speed);
}
@end
3.创建对象
// 主函数
int main()
{
// 创建车子对象
Car *c = [Car new];//定义一个Car类型的指针c,指向[Car new]地址
c->wheels = 3;//进行赋值
c->speed = 300;
[c run];//
return 0;
}
创建类的练习题:
#import <Foundation/Foundation.h>
//typedef-枚举性别
typedef enum {
Sexman,
Sexwoman,
}Sex;
//typedef-年龄结构体
typedef struct {
int year;
int month;
int day;
}Date;
//typedef-枚举颜色
typedef enum {
ColorBlack,
ColorRed,
ColorGreen,
}Clor;
//声明,构造类-Dog
@interface Dog : NSObject
{
@public
double weight;
Clor curcolor;
}
- (void)eat;//声明方法
- (void)run;
@end
//Dog-方法的实现
@implementation Dog
- (void)eat
{
weight += 1;
NSLog(@"吃完这次的体重是%f", weight);
}
- (void)run
{
weight -=1;
NSLog(@"跑完这次的体重是%f", weight);
}
@end
//声明,构造结构体-Student
@interface Student : NSObject//允许Student可以创造对象
{
@public//允许外部指针改变变量
Sex sex;
Date birthday;
double weight;
Clor favColor;
char *name;
//重点:狗,构造一个Dog类型的变量,使得每个人都有一个dog
Dog *dog;
}
- (void)eat;//方法的声明
- (void)run;
- (void)printf;
@end
//Student-方法的实现
@implementation Student
//方法eat
- (void)eat
{
weight += 1;
NSLog(@"吃完这次的体重是%f", weight);
}
//方法run
- (void)run
{
weight -=1;
NSLog(@"跑完这次的体重是%f", weight);
}
//方法myprint
- (void)printf
{
NSLog(@"性别是%d,喜欢的颜色是%d,体重是%f,姓名是%s,生日是%d-%d-%d", sex, favColor, weight, name, birthday.year, birthday.month, birthday.day);
}
@end
//main函数主体
int main(int argc, const char * argv[]) {
@autoreleasepool {
//构造一个Student类型的指针s,指向[Student new]
Student *s =[Student new];
//构造一个Dog类型的狗
Dog *d = [Dog new];
d->curcolor = ColorGreen;
d->weight = 50;
s->dog =d;
s->weight =50;
//性别
s->sex = Sexman;
//生日
s->birthday.year = 2012;
s->birthday.month = 12;
s->birthday.day = 29;
//喜欢的颜色
s->favColor = ColorBlack;
//名字
s->name = "jack";
[s printf];
}
return 0;
}
总结:
要注意一下几点:
1)充分理解面向对象的含义;
2)注意OC中是如何定义类的,以及类的声明,实现等.
- ios开发-OC的初步学习
- ios开发-OC的学习
- ios开发-OC内存管理的学习
- ios开发-OC-Fondation框架的学习
- 【IOS 开发学习总结-OC-61】IOS 的自动旋转
- 【IOS 开发学习总结-OC-62】IOS 应用的生命周期
- 【IOS 开发学习总结-OC-61】IOS 的自动旋转
- OC学习之初步对象的建立
- 黑马程序员——ios学习笔记 OC 初步认识
- ios开发-OC类方法和self关键字的学习
- ios开发-OC核心语法的学习-1
- ios开发-OC核心语法的学习-2
- ios开发-OC中ARC、block和protocol的学习
- 【IOS 开发学习总结-OC-6】objective-c 的数组
- iOS开发学习之OC篇1、类的创建
- IOS开发学习之OC的消息机制。
- iOS开发学习笔记① - OC基础
- IOS开发之OC学习笔记(上)
- poj 2555 Drink, on Ice 物理坐标计算
- 编码实践五要诀
- C++学习之【使用位操作符求素数分析】
- MINA源码简易剖析(一)
- Java学习之-动态编译-DynamicCompile_反射调用
- ios开发-OC的初步学习
- #define XXX do{ XXX } while(0) 为什么会有这种用法
- android IntentService生命周期问题
- 就这么开始吧
- 设计模式之策略模式——角色游戏
- SQL 行列倒置
- CLUVFY工具
- 新功能:Azure 负载平衡器的空闲超时现可配置了
- 花生壳&IIS发布网站-----花生壳绑定自己电脑IP问题