• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Objective-C面向对象之实现类

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一般涉及到面向对象都会C#,Java都不可避免的涉及到类,C#中类的后缀名是.cs,Java中是.java,Object-C中一般用两个文件描述一个类,后缀名为.h为类的声明文件,用于声明成员变量和方法,.m文件主要用于实现声明中的方法,Java和C#声明类用的是Class关键字,OC声明类用的字@interface和@end,实现类用的是@implementation和@end,跟其他的有点不同,方法定义,方法调用都不太一样,具体一点点的看吧:

新建Cocoa Class:

语言选择OC,类名Book:

Book.h中的代码:

#import <Foundation/Foundation.h>

@interface Book : NSObject
{
    NSString *_author;
    NSString *_publishDate;
}
@property int Number;
- (void)getDetial;

@end

 Book.m中的代码:

#import "Book.h"

@implementation Book
@synthesize Number;
-(void)getDetial
{
    NSLog(@"论程序员的职业素养");
}
@end

 main函数中的调用:

    
    Book *book=[Book new];
    [book getDetial];
    book.Number=100;
    NSLog(@"图书的数量为:%d",book.Number);

这里的代码暂时先不分析,看下另外一段代码:

typedef enum {
    man,
    woman
} Sex;

@interface Person : NSObject
{
    @public
    NSString *Name;
    NSString *School;
    Sex sex;
    int Age;
}
- (void)say;
- (int)sum:(int)numA secondNumber:(int)numB;

@end

@implementation Person
- (void)say
{
    NSLog(@"多说多错,少说少错");
}
-(int)sum:(int)numA secondNumber:(int)numB
{
    return numA+numB;
}
@end

  main函数中的调用,具体代码如下:

Person *person=[Person new];
    person->Age=25;
    person->sex=man;
    

    NSLog(@"年龄:%d,性别为:%@",person->Age,@"测试");
    [person say];
    int b=[person sum:10 secondNumber:10];
    NSLog(@"两个数字相加的和是:%d",b);

 类中的成员变量都是在{}中的,如果初始化类的时候想要调用的话直接使用->符号进行访问,前提是变量的作用域可以访问,一般来说作用范围是@public,@protected,@private,如果接触过其他语言,public都可以访问,protected是父类和子类都可以访问,private是类本身中才可以访问。

C#通过操作属性来保护字段,OC中也可以,所以第一段代码就出现了@property和@synthesize;

方法定义+表示类方法也就是静态方法,-是对象方法:

-(int)sum:(int)numA secondNumber:(int)numB

 int 是返回值类型,方法后面跟一个函数就是:(类型)名称,如果是多个就空格之后重复,跟上面一样,很好理解;new其他语言中用的很多,不过一般新建一个对象的形式是:

 Person *person=[[Person alloc] init];

行笔匆匆,难免遗漏,如有不当,多多指教,先行谢过~  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
objective-c(一)关于基本数据类型打印输出方式发布时间:2022-07-12
下一篇:
Objective-C_类的扩展发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap