(Object-C)学习笔记 --OC语言面向对象和基本概念
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Object-C)学习笔记 --OC语言面向对象和基本概念相关的知识,希望对你有一定的参考价值。
现在的高级编程语言大部分都是面向对象编程的。
那么什么是面向对象呢?我用我的见解举个例子:假设你正在用word编辑这么两件事 1.一个人走到桌子前面(1)拿起可乐(2)打开盖子(3)喝光(4)放下瓶子(5)。 2.一个人走到桌子前面(1)拿起点心(2)吃了(3)。
那么如果是用面向过程的方式来编程,第一件事是一个大括号,里面写着这5步。第二件事是一个大括号,里面写着3步。写这么两件事全部手写,不允许黏贴复制,一共8步。
如果使用面向对象的方式来编程,把这个过程分为了动作和物品,把这些步骤写出来但是放到一边,需要什么就复制粘贴什么,相同的动作或者物品不需要写两遍。上面两件事一共写7步就行,当然如果你第二件事喝雪碧的话,你只需要5步+一瓶雪碧就行了。
1.面向过程
数据结构+算法
2.面向对象
属性+行为
为什么使用面向对象的编程思想
使用面向对象的编程思想,可以大大降低开发周期和成本,提高开发效率,提升代码的复用性,降低开发难度,提高了代码的可读性和可维护性。
什么是类
面向对象的重要概念。类是一个抽象的概念,我们常说的一类人,就是这个意思。比如说学生,工人这都是代表的一大部分人。具体到OC语言中,类(class)是一对相关联的.m .h文件(名字相同)。这一对就是一个类。
什么是对象
对象就是一个实例化的类,比如学生当中有一个张三,跟抽象化的学生不一样,你可以准确知道张三的ID、姓名、身高、体重等。
变量
在.h里面声明的叫做公共变量,在.m里面声明的叫做私有变量。
@public 可以在任意位置访问
@package 可以在包内部访问
@protect 可以在本类及子类中访问
@practice 只能在本类在访问
成员变量和实例变量
在类中声明的变量就叫成员变量,当类被实例化成一个实例时,这个实例里的变量就叫实例变量。
方法
方法是类的一部分,代表类可以干什么,类似于c的函数。
方法定义:-(void)show; 多参方法:-(void)show:(NSString)name andAge:(int)age;
括号里面的void是返回值 返回什么类型的 写什么类型
实例方法与类方法
-开头的是实例方法,一般只能由实例对象调用。+开头的是类方法,由类名直接调用。
什么是属性
属性有三部分组成,分别是setter和getter方法,以及一个存放值的实例变量。在如今的ios版本中,setter和getter是隐藏的,我们定义属性时 只在.h或.m中
@property NSString* name; 定义就行.
示例代码:
#import <Foundation/Foundation.h> @interface TRStudent : NSObject @property NSString* name; @property int age; @property int ID; @property NSString* address; -(id)initWithName:(NSString*)name andAge:(int)age andID:(int)ID andAddress:(NSString*)address; -(void)show; @end
#import "TRStudent.h" @implementation TRStudent -(id)init { if (self=[super init]) { self.name=@"liu"; self.age=45; self.ID=123456; self.address=@"趵突泉"; } return self; } -(id)initWithName:(NSString *)name andAge:(int)age andID:(int)ID andAddress:(NSString *)address { if (self=[super init]) { self.name=name; self.age=age; self.ID=ID; self.address=address; } return self; } -(void)show { NSLog(@"%@ %d %d %@",self.name,self.age,self.ID,self.address); } @end
int main(int argc, const char * argv[]) { @autoreleasepool { TRStudent *trs=[[TRStudent alloc]init]; [trs show]; TRStudent *trs1=[[TRStudent alloc]initWithName:@"wang" andAge:15 andID:1234 andAddress:@"红叶谷"]; [trs1 show]; }//cocoa .h .m 分开放的 return 0; }
以上是关于(Object-C)学习笔记 --OC语言面向对象和基本概念的主要内容,如果未能解决你的问题,请参考以下文章
(Object-C)学习笔记 --OC的内存管理封装继承和多态