一般涉及到面向对象都会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];

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

Objective-C面向对象之实现类的更多相关文章

  1. Object-C面向对象之实现类

    Object-C面向对象之实现类 一般涉及到面向对象都会C#,Java都不可避免的涉及到类,C#中类的后缀名是.cs,Java中是.java,Object-C中一般用两个文件描述一个类,后缀名为.h为 ...

  2. day20面向对象三大特性 , 类嵌套

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 1.简述面向对象三大特性并用代码表示."""封装:class Account: ...

  3. python中的面向对象学习以及类的封装(这篇文章初学者一定要好好看)

    这篇文章对于初学者可以很有效的理解面对过程.面对对象 一.首先介绍一下面向过程和面向对象的比较: 面向过程 VS 面向对象 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何 ...

  4. Python面向对象编程、类

    一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一 ...

  5. C++ Primer 学习笔记_72_面向对象编程 --句柄类与继承[续]

    面向对象编程 --句柄类与继承[续] 三.句柄的使用 使用Sales_item对象能够更easy地编写书店应用程序.代码将不必管理Item_base对象的指针,但仍然能够获得通过Sales_item对 ...

  6. Python面向对象总结及类与正则表达式

    Python3 面向对象 一丶面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 方法:类中定义的函数. 类变 ...

  7. python学习笔记(七):面向对象编程、类

    一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一 ...

  8. Python面向对象之接口类(抽象类)

    Python面向对象之接口类(抽象类):就是制定一个规范. 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方 ...

  9. PHP中的面向对象 中的类(class)

    2.11 上午讲的是面向对象中的类(class),一个非常抽象的概念, 类里面成员的定义有 public$abc; private$abc(私有变量): protect $abc(受保护的变量): 下 ...

  10. Python面向对象-概念、类、实例

    OOP——Object Oriented Programming,面向对象编程,是一种程序设计思想.该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 区别于面向过程的程序设计即把计 ...

随机推荐

  1. 【知了堂学习笔记】java IO流归纳总结

    皮皮潇最近学到了IO流但是感觉这一块要记的东西太多了,所以重API上查阅并总结了以下几点关于IO的知识. 1.File(文件类): File类是文件以及文件夹进行封装的对象,用对象的思想来操作文件和文 ...

  2. String 与不可变对象

    什么是不可变对象 ?不可变对象指的是在创建一个对象之后 ,不能再改变它的状态 ,那么这个对象就是不可变的 .不能改变状态的意思是 ,不能改变对象内的成员变量 ,包括基本数据类型的值不能改变 ,引用类型 ...

  3. python opencv3 基于ORB的特征检测和 BF暴力匹配 knn匹配 flann匹配

    git:https://github.com/linyi0604/Computer-Vision bf暴力匹配: # coding:utf-8 import cv2 """ ...

  4. 递归与分治策略之棋盘覆盖Java实现

    递归与分治策略之棋盘覆盖 一.问题描述 二.过程详解 1.棋盘如下图,其中有一特殊方格:16*16 . 2.第一个分割结果:8*8 3.第二次分割结果:4*4 4.第三次分割结果:2*2 5.第四次分 ...

  5. 给HTML初学者的三十条最佳实践

    Nettuts +运营最困难的方面是为很多技能水平不同的用户提供服务.如果我们发布太多高级教程,我的新手用户将无法从中受益.相反也是如此.我们尽我们最大的努力,但如果你觉得你被忽略了请联系我们.这个网 ...

  6. python日常碎碎念

    关于取命令行中参数的方法 1,sys.argv 这个方法自动获取参数,并split.一般情况下第一个元素是程序的名字.即 python script.py arg1 arg2 然后sys.argv返回 ...

  7. python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用

    xml.etree.ElementTree模块实现了一个简单而有效的用户解析和创建XML数据的API. 在python3.3版本中,该模块进行了一些修改: xml.etree.cElementTree ...

  8. C# 7.0特性与vs2017

    下面是关于在C#7.0语言中计划功能的说明.其中大部分功能在Visual Studio “15” Preview 4中能运行.现在是最好的试用时期,请记录下你们的想法. C#7.0语言增加了许多的新功 ...

  9. Java_模拟comet的实现

    本文没有使用任何comet服务器, 只是利用tomcat模拟实现了一下comet, 不是真正的comet哦,因为不会有这样的应用场景, 只是模拟实现, 仅供参考. 一. 需求. 实现将服务端的时间推送 ...

  10. 通过adb把apk安装到系统分区

    通过adb把apk安装到系统分区 以谷歌拼音为例:GooglePinyin1.4.2.apk提取出so文件libjni_googlepinyinime_4.solibjni_googlepinyini ...