OC从入门到精通-1.类和对象

类和对象

类和对象的基本概念

想必学过面向对象语言的,对类和对象都会有了解。
百度解释:
对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型,其定义为:

class 类名{
}

它们的关系是,对象是类的实例,类是对象的模板。
通俗的说,引入类和对象,是为了能够使程序开发更加高效,使得代码分工,代码重用,代码维护更加高效。把具有相同属性和方法的一类实物抽象为类,再通过类的对象衍生出新的实例,这些在学习中会慢慢深入理解这些概念。
不了解的可以多去查看其他主流面向对象语言如C++,Java,C#中类和对象的概念。它们其实都具有三大特性(封装,继承,多态),只是在实现语法上有细微差别。
C++类和对象
Java中的类和对象
C#中 的类和对象

Objective-C跟C的区别与联系

Objective这个单词的中文解释就是对象,所以OC就是面向对象C的意思。
OC是一个面向对象的语言(封装、继承、多态) OC相当于C的一个超集 即OC允许使用任何C语言代码 但增加了许多C没有的特点 。

OC中的类与对象

OC中类由声明@interface实现 @implementation两部分构成,interface这个单词的中文解释是接口,但是专业的说,@interface那一部分应该叫做类的声明。

我们来看类声明和实现的代码

类的声明和实现及对象方法

#import <Foundation/Foundation.h>
//声明
@interface Student : NSObject
{
    //成员变量名
    int _no;
    Sex  _sex;
}
- (void)setSex:(Sex)Sex;
@end
//实现
@implementation Student
- (void)setSex:(Sex)sex{
    _sex=sex;
}
- (Sex)sex
{
    return _sex;
}
@end

类与对象的一些细节注意

  • 类的声明一定要在@interface@end之间,成员变量一定要在{}之间
  • 类的实现一定要在@implementation@end之间。
  • 对象方法使用- (void)这里的void是类型,可以指定为int,double,NSString等其他类型。
  • 类方法使用+ (void)这里的void是类型,可以为其他类型。和对象方法一样,对象方法还可以称为实例方法。
  • 如果你的类不继承任何类的话,至少要继承NSObject类,这是OC中的一个根类。不要忘记加入#import <Foundation/Foundation.h>,这是引入OC框架类里的头文件
  • 命名规则:成员变量最后以下划线_开头,set方法和get方法的命名规则最好set+方法名(首字母大写),get方法名就取变量名。

    OC中的对象创建

    下面我们对上面的程序写一个主函数,


int main(int argc, const char * argv[]) {
    @autoreleasepool {

        Student *s =[Student new];
        [s setSex:(Sexman)];
        Sex se=[s sex];
        NSLog(@"%d",se);
    }
    return 0;
}

注意OC和C++等不同的地方在于,它是用[]来新建一个对象空间的。
[ 类名 new]就是新建一个类对象,[对象名 对象方法 ]就是某对象执行一个对象方法。

类方法

声明
@interface Student : NSObject
+ (void)printHello;
@end

实现

@implementation Student
+ (void)printHello{
    NSLog(@"我是类方法");
}
@end

调用

int main(int argc, const char * argv[]) {
        [Student printHello];
    return 0;
}

输出为我是类方法

类方法的语法就是+ (类型),调用的时候就是[类名 类方法]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值