(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的内存管理封装继承和多态

(Object-C)学习笔记 --OC的懒加载和单例方法

(Object-C)学习笔记 --OC语言面向对象和基本概念

Swift 学习笔记 (函数)

小菜子linux周学习笔记 《01》

在51cto学习object-c课程读后感