黑马程序员_OC学习之面向对象理解
来源:互联网 发布:手机自律软件 编辑:程序博客网 时间:2024/05/22 14:13
------- IOS培训、android培训、期待与您交流! ----------
1、面向对象
Objective-c是c语言的母集合,它的原意就是在原始的c语言的主体上加入面向对象的特性。面向对象,简称OOP,它
是以事物为中心,参与事件的事物是核心,完成事件只是事物的一个小任务。
说直接点,就是程序只关心谁可以做什么,不关心你内部是怎么做的。
2.类是一组具有相同(特征)属性和行为(功能)的事物的集合(抽象)。对象就是类的具体实现,在面向对象的世界
里万物都是对象。我们是操控一个一个对象去完成某些事情。
3.在OC语言中,创建类和其他语言,如Java,C#是有区别的,例如C#创建一个类是:
public class CouponModel
{
成员变量...
方法..........
}
而在OC中,一个类的创建,是需要两部分的:
1> .h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。只是说明一下方法名、方法的返回值类型、方法接收的参数类型而已,并不会编写方法内部的代码。
2> .m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation和@end。
4.类中的方法:OC中的方法一般是一"-" 或者 "+" 开头,
+ 表示类方法(静态方法)
- 表示对象方法(动态方法)
5.类中的成员变量
@public 全局都可以访问
@protected 只能在类内部和子类中访问
@private 只能在类内部访问
6.下面试OC创建类的举例
在 .h文件里声明:
#import <Foundation/Foundation.h>
@interface Student : NSObject {
int age;
@public
int no;
int score;
@protected
float height;
@private
float weight;
}
// age的get方法
- (int)age;
// age的set方法
- (void)setAge:(int)newAge;
@end
该类的实现:
#import "Student.h"
@implementation Student
// age的get方法
- (int)age {
return age;
}
- (void)setAge:(int)newAge {
age = newAge;
}
- (void)setAge:(int)newAge andHeight:(float)newHeight {
age = newAge;
height = newHeight;
}
@end
7.对象的创建以及使用
内存分配:为对象动态的分配内存地址。
初始化:在内存中填上的初始值。
例如:Student * stu =[[Student alloc] init];
说明:向类发送alloc消息,就是为该类分配一块足够大内存,用于存放实例变量,同时初始化内存,填上的初始值。
使用代码案例:
#import "Student.h"
int main ()
{
Student * student = [[Student alloc] init];
student->age = @"20";
student->no = 1;
}
------- IOS培训、android培训、期待与您交流! ----------
- 黑马程序员_OC学习之面向对象理解
- 黑马程序员学习笔记_OC之面向对象思想
- 黑马程序员_OC面向对象之继承和多态
- 黑马程序员_OC面向对象之核心语法
- 黑马程序员_OC面向对象的特性
- 黑马程序员_OC面向对象之类和对象基础
- 黑马程序员_OC学习之点语法
- 黑马程序员_OC学习之block,protocol
- 黑马程序员学习笔记_OC之self
- 黑马程序员学习笔记_OC之继承
- 黑马程序员学习笔记_OC之NSString
- 黑马程序员_OC语言之面向对象的三大特性(封装、继承、多态)
- 黑马程序员_ios基础总结8_OC面向对象
- 黑马程序员_OC语言的面向对象特性
- 黑马程序员_OC基础01_面向对象
- 黑马程序员_oc面向对象三大特性
- 黑马程序员_OC面向对象思想和类的创建
- 黑马程序员_OC面向对象的三大特性
- 散养土鸡野外天敌的防护
- fastjson生成和解析json数据
- 第七周项目2继续体验深复制
- ActionScript 正弦函数图像绘制
- 破解凯撒密码(离散数学)
- 黑马程序员_OC学习之面向对象理解
- eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法
- Eclipse上安装GIT插件EGit及使用
- 看Techmeme怎么造就科技界必读新闻网站
- 转:java与各种数据库的链接
- 第6周作业1-闰年之循环判断
- 最全的Android源码目录结构详解
- iOS -UINavigationControllerPush动画丢失
- COM技术内幕学习笔记---第八章---组件复用:包容和聚合