OC类的定义和使用
来源:互联网 发布:日照淘宝代运营 编辑:程序博客网 时间:2024/05/19 17:58
第一节 类的定义和使用
<1> 第一个OC工程的建立
<2> 类和对象的基本概念
Objective-C语言
OC就是C语言的基础上做了一个扩展
B语言开发了系统unix操作系统
发明C语言----重写unix操作系统
面向过程的编程思想
实例: 计算两数之和
定义变量-->输入-->计算--->输出
面向对象的编程思想
什么是对象?
什么是类?
世界上的任何事物都可以称作对象
张三,李四,王麻子... ...
窗口,按钮,文件... ...
每个对象都有它自己的属性和行为
狗的属性:名字,身高,体重,性别......
狗的行为:吃饭eat,跑run,叫bark......
同一种对象的抽象就是类
<3> 类的设计和使用(相对语法知识比较多, 追求熟练度)
需求: 描述和处理狗这种事物
1) 类的定义
//<1>定义一个类, 使用@interface定义一个类
//@interface 表示定义了一个类
//Dog 表示这个类的类名为 Dog
//
// : NSObject 语法表示Dog类继承了一个类NSObject
// (学习继承的时候详细说)
// 学习继承之前每个类默认继承 NSObject
// 添加属性的时候放在大括号中
//OC中类定义的时候有两部分: 接口@interface和实现@implementation
// 定义在main函数的外面
@interface Dog : NSObject
{
//类添加一些 实例变量(也就是属性)
int age;
char gender;
double weight;
}
@end
//Dog类的实现
@implementation Dog
@end
2) 对象的创建
3) 使用方法(发送消息)
//xiaocao设置年龄
//[xiaocao setAge:5];
//[xiaocao setGender:'B'];
//[xiaocao setWeight:20];
重构与编程规范
4) 多参数方法
//-(void)say;
//-(void)setAge:(int)age
//-(void)setAge:(int)age andGender:(char)gender;
-(void)setAge:(int)age
andGender:(char)gender
andWeight:(double)weight;
5) 访问控制
//添加三个实例变量
//访问控制: 拥有访问的权限
//默认情况: 实例变量外界不能访问
//默认的权限受保护的@protected
// 类自己的方法能直接访问
// 类外不能直接访问,通过获取和设置方法访问
@protected
int _age;
char _gender;
double _wegiht;
//私有的
// 类自己的方法能直接访问
// 类外不能直接访问,通过获取和设置方法访问
@private
int _var;
//公有的
// 类自己的方法能直接访问
// 类外也能直接访问, 通过obj->var形式直接访问
// 设置为受保护的,添加设置方法和获取方法
// 对数据做出各种保护
@public
int _num;
//总结:
// (1)默认是受保护的, 类外不能直接访问
// 通过设置和获取方法访问
// (2)公有权限尽量不要使用,会破坏类的封装性
// (3)访问控制针对实例变量的,类中的方法默认都是可以直接访问的
6) 自定义初始化方法
//重新实现init方法
// id表示通用类型的指针,可以指向任意类型对象
-(id)init
{
//初始化方法的模板(先知道这样写)
// self表示当前对象
// super表示父类对象
if(self = [super init])
{
// 年龄的默认值是1岁
// 性别的默认值是'B'
// 体重的默认值是10kg
_age = 1;
_gender = 'B';
_weight = 10;
}
return self;
}
//添加带有参数的init方法
-(id)initWithAge:(int)age
andGender:(char)gender
andWeight:(double)weight
{
if(self = [super init])
{
_age = age;
_gender = gender;
_weight = weight;
}
return self;
}
7) 类方法
方法分为两种:
<1>实例方法(-方法): 需要通过对象指针使用
[xiaohua setAge:100];
需求: 使用一个方法的时候直接通过类名使用
<2>类方法(+方法), 方法的前面是+号, 就是一个类方法
特点: 直接通过类名使用这个方法
实例: 实现一个类, 添加计算阶乘的方法
//添加一个方法, 计算n的阶乘
//语法: 类方法, 直接通过类名调用
+(int)factorial:(int)n;
<4> 编程实践
<1> 第一个OC工程的建立
<2> 类和对象的基本概念
Objective-C语言
OC就是C语言的基础上做了一个扩展
B语言开发了系统unix操作系统
发明C语言----重写unix操作系统
面向过程的编程思想
实例: 计算两数之和
定义变量-->输入-->计算--->输出
面向对象的编程思想
什么是对象?
什么是类?
世界上的任何事物都可以称作对象
张三,李四,王麻子... ...
窗口,按钮,文件... ...
每个对象都有它自己的属性和行为
狗的属性:名字,身高,体重,性别......
狗的行为:吃饭eat,跑run,叫bark......
同一种对象的抽象就是类
<3> 类的设计和使用(相对语法知识比较多, 追求熟练度)
需求: 描述和处理狗这种事物
1) 类的定义
//<1>定义一个类, 使用@interface定义一个类
//@interface 表示定义了一个类
//Dog 表示这个类的类名为 Dog
//
// : NSObject 语法表示Dog类继承了一个类NSObject
// (学习继承的时候详细说)
// 学习继承之前每个类默认继承 NSObject
// 添加属性的时候放在大括号中
//OC中类定义的时候有两部分: 接口@interface和实现@implementation
// 定义在main函数的外面
@interface Dog : NSObject
{
//类添加一些 实例变量(也就是属性)
int age;
char gender;
double weight;
}
@end
//Dog类的实现
@implementation Dog
@end
2) 对象的创建
3) 使用方法(发送消息)
//xiaocao设置年龄
//[xiaocao setAge:5];
//[xiaocao setGender:'B'];
//[xiaocao setWeight:20];
重构与编程规范
4) 多参数方法
//-(void)say;
//-(void)setAge:(int)age
//-(void)setAge:(int)age andGender:(char)gender;
-(void)setAge:(int)age
andGender:(char)gender
andWeight:(double)weight;
5) 访问控制
//添加三个实例变量
//访问控制: 拥有访问的权限
//默认情况: 实例变量外界不能访问
//默认的权限受保护的@protected
// 类自己的方法能直接访问
// 类外不能直接访问,通过获取和设置方法访问
@protected
int _age;
char _gender;
double _wegiht;
//私有的
// 类自己的方法能直接访问
// 类外不能直接访问,通过获取和设置方法访问
@private
int _var;
//公有的
// 类自己的方法能直接访问
// 类外也能直接访问, 通过obj->var形式直接访问
// 设置为受保护的,添加设置方法和获取方法
// 对数据做出各种保护
@public
int _num;
//总结:
// (1)默认是受保护的, 类外不能直接访问
// 通过设置和获取方法访问
// (2)公有权限尽量不要使用,会破坏类的封装性
// (3)访问控制针对实例变量的,类中的方法默认都是可以直接访问的
6) 自定义初始化方法
//重新实现init方法
// id表示通用类型的指针,可以指向任意类型对象
-(id)init
{
//初始化方法的模板(先知道这样写)
// self表示当前对象
// super表示父类对象
if(self = [super init])
{
// 年龄的默认值是1岁
// 性别的默认值是'B'
// 体重的默认值是10kg
_age = 1;
_gender = 'B';
_weight = 10;
}
return self;
}
//添加带有参数的init方法
-(id)initWithAge:(int)age
andGender:(char)gender
andWeight:(double)weight
{
if(self = [super init])
{
_age = age;
_gender = gender;
_weight = weight;
}
return self;
}
7) 类方法
方法分为两种:
<1>实例方法(-方法): 需要通过对象指针使用
[xiaohua setAge:100];
需求: 使用一个方法的时候直接通过类名使用
<2>类方法(+方法), 方法的前面是+号, 就是一个类方法
特点: 直接通过类名使用这个方法
实例: 实现一个类, 添加计算阶乘的方法
//添加一个方法, 计算n的阶乘
//语法: 类方法, 直接通过类名调用
+(int)factorial:(int)n;
<4> 编程实践
0 0
- 5 、OC 类的定义和使用
- OC类的定义和使用
- oc中block的定义和使用
- oc002---定义OC的类和创建OC的对象
- 定义OC的类和创建OC的对象
- OC 中类的声明和定义
- OC定义类的和方法
- OC中的数组定义和方法使用
- OC - 类的基本定义与方法的使用
- OC学习(一)类的定义和对象的创建
- 黑马程序员--oc:类的基本定义与使用
- 黑马程序员————OC基础——定义OC的类和创建OC的对象
- OC类和对象-定义类
- OC类的成员变量的定义
- OC语言基础内容 类的定义 第一个OC
- OC学习篇之---类的定义
- OC学习篇之---类的定义
- OC学习篇之---类的定义
- MyEclipse Eclipse 关联源码
- form:options遍历
- Loadrunner测试json接口
- PHP垃圾回收机制
- platform 架构
- OC类的定义和使用
- 7、黑马程序员——泛型、集合框架工具类
- Picked up JAVA_TOOL_OPTIONS (Ubuntu 15.04)
- http协议学习以及简单应用服务器编写
- Spring @Transactional
- CAS+SSO原理浅谈
- UIGravityBehavior的属性关系
- apt-get: Could not resolve 'archive.ubuntu.com'
- Android 系统快捷开关