1、关于头文件
  #include <stdio.h>    
  #import <Foundation/Foundation.h>

  区别:#import指令导入更快更有效率。#include指令告诉编译器做呆板的复制粘贴,将包含的内容粘贴到目标文件中来。而#import则会先检查之前是否已经导入过这个文件或是已经包含到目标文件中了。

  再仔细观察两个头文件名
  Foundation.h我们称之为主头文件, 主头文件中又拷贝了该工具箱中所有工具的头文件, 我们只需要导入主头文件就可以使用该工具箱中所有的工具, 避免了每次使用都要导入一个对应的头文件。
  规律: 所有的主头文件的名称都和工具箱的名称一致
          所有的主头文件都是导入了该工具箱中所有工具的头文件

2、第一个oc程序

 /*
因为OC完全兼容C, 所以可以在OC程序中编写C语言代码
并且可以将C语言的源文件和OC的源文件组合在一起生成可执行文件
*/
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
printf("c hello world\n");
/*
printf和NSLog的区别:
NSLog会自动换行
NSLog在输出内容时会附加一些系统信息
NSLog和printf接收的参数不一样
*/
NSLog(@"OC hello World"); return ;
}

3、oc类

  C语言中函数分为声明和实现,OC中定义一个类也分为声明和实现

  1)类声明

// 以@interface开头 , 以@end结尾, 然后再class name对应的地方写上 事物名称, 也就是类名即可
// 声明一个类的目的就是为了告诉系统, 我们这个类中有哪些属性和行为
// OC类声明中属性只能在写@interface和@end之间的{}中
@interface Person : NSObject
{
//注意: 默认情况下, OC对象中的属性是不能直接访问的
int _height; // 注意: 编写OC类属性的时, 建议将所有属性的名称前面都加上_
int _weight;
int _age;
} // 行为
@end

  2)类实现

// 以@implementation开头, 以@end结尾, 然后在class对应的地方写上声明时声明的类的名称, 须和声明的类名相同
@implementation Person // 行为的实现 @end

  3) 方法的声明和实现

@interface Person : NSObject
{
//此处代码省略
}
// 行为
/*
OC中的行为和C语言中的函数一样, 都是用来保存一段特定功能的代码
C语言中定义一个函数, 分为声明和实现, 声明写在.h中, 实现写在.c中
OC中定义一个方法, 也分为声明和实现, 声明写在@interface中, 实现写在@implementation C语言的函数分为两种: 内部函数和外部函数
OC中的方法也分为两种; 类方法和对象方法
类方法只能用类名调用, 对象方法只能用对象调用
OC中的类方法用+表示, OC中的对象方法用-表示 编写OC方法的规律和C语言一模一样: 1.确定函数名称 2.确定形参 3.确定返回值 4.确定返回值类型
*/
// 注意: OC中的方法, 如果没有形参不需要写(), 而是直接写一个;OC方法中的()是放数据类型的 - (void)about; @end // 类的实现
@implementation Person
// 行为的实现
- (void)about
{
NSLog(@"此人信息");
}
@end

  

  4)main函数

int main(int argc, const char * argv[]) {
// 在OC中想要通过一个类来创建一个对象, 必须给类发送一个消息
// 发送消息的语法是 [类名称/对象名称 方法名称];
/*
只要通过一个类调用类的new方法, 也就是给类发送一个叫做new的消息之后
系统创建对象的过程如下
1. 为Person类创建出来得对象分配存储空间
2. 初始化Person类创建出来的对象中的属性
3. 返回Person类创建出来的对象对应的地址
*/
// 通过一个Person类型的指针接收了 Person对象的地址
// 利用Person类型的指针保存了Person对象的地址, 那么我们就称Person类型的指针p之为Person对象
// OC中的类其实本质就是一个结构体, 所以p这个指针其实就是指向了一个结构体
Person *p = [Person new];
// p->_height= 70; c语言中我们可以这样做,但是在oc中不允许直接访问成员变量,  

[p  about]; //调用对象方法

    return ;
}

  最后说一下Objective-C推荐命名规则

  指向实例的变量使用"骆驼拼写法(camel case)"来命名。以小写字母开头,接下来每个单词的第一个字母使用大写。

  方法的命名也是用骆驼拼写法。

  类的名称以大写字母开头,但是接下来的单词继续使用骆驼拼写法。

OC-类的更多相关文章

  1. OC 类簇与复合

    OC 类簇与复合 类簇: 类簇是Foundation框架中广泛使用的设计模式.类簇将一些私有的.具体的子类组合在一个公共的.抽象的超类下面,以这种方法来组织类可以简化一个面向对象框架的公开架构,而又不 ...

  2. 第一个OC类、解析第一个OC程序

    01第一个OC 类 本文目录 • 一.语法简介 • 二.用Xcode创建第一个OC的类 • 三.第一个类的代码解析 • 四.添加成员变量 • 五.添加方法 • 六.跟Java的比较 • 七.创建对象 ...

  3. Objective-c 总结(一):OC类的设计

    (一)学习目标: 1.面向对象基本概念: OOP的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题步骤中的行为. 2.熟悉OC类的定 ...

  4. OC学习那些事:第一个OC类

    一.创建一个新的OC类: 1.点击File->New File,打开Choose a template for your new file窗口,选择Objective-C class,点击Nex ...

  5. iOS学习10之OC类和对象

    本次是OC的第一节课,主要是学习和理解类与对象 1.面向对象 1> OOP(Object Oriented Programming)面向对象编程. 面向对象以事物为中心,完成某件事情都需要哪些事 ...

  6. [Objective-c 基础 - 1.1] OC类

    Obj-C中没有包得概念,使用前缀进行区分 自带类用NS开头命名 关键字使用@开头   A. 第一个OC程序 1. 导入Foundation框架的主头文件 #import <Foundation ...

  7. 向OC类中添加默认的协议实现(ProtocolKit)

    以forkingdog的PorotocolKit举例 举例 ProtocolKit Protocol extension for Objective-C Usage Your protocol: @p ...

  8. 【IOS学习基础】OC类的相关

    几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一 ...

  9. OC——类

    1.Objective-C是C语言的超集,完全兼容C语言 2.所有的关键字都以“@”开头,例如:@interface,@class,@implementation 3.Objective-C的所有对象 ...

  10. 04:第一个OC类

    1.类与对象的关系 面向对象的核心就是对象,那怎么创建对象? OC中创建对象比较复杂, 首先要理解一个概念叫做类. 现实生活中是根据一份描述,一份模板创建对象,编程语言也一样,也必须先有一份描述,在这 ...

随机推荐

  1. 生成ssl证书文件

    网上关于生成SSL证书文件的方法有很多,但我查了几个,发现有或多或少的错误,如下我图文并茂的展示,亲测无任何问题,分享给大家,谢谢. 1.创建根证书密钥文件(自己做CA)root.key openss ...

  2. AAC ADTS解析

    1.ADTS ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC ...

  3. NodeJS初学者实战之旅(I) —— 介绍、目录

    旅行之初 作为一个工作了两年多后端开发人员,未接触过NodeJS,对它的认知也仅仅停留在“可以使用JavaScript代码编写服务端程序”上.最近空闲时间 较多,便想来啃它一啃.但是没有一个实际的玩意 ...

  4. jdbc select

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  5. 手把手教你使用Git(转)

    Git使用教程 2014-10-25 14:29 by 云溪0707, 10532 阅读, ... 评论, 收藏, 编辑 Git使用教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系 ...

  6. Win7 64位系统上配置使用32位的Eclipse(转)

    Win7 64位系统上配置使用32位的Eclipse 博客分类: Eclipse eclipse  最近工作电脑换成了64位的win7系统,之前个人电脑上安装的jdk和Eclipse都是32位的.而新 ...

  7. java数据导出成 EXCEL

    /** * * @param out 输出流 * @param maplist 数据 * @param title 标题 * @param headers 表头 * @param keys 表头对应的 ...

  8. 2015.4.7-C#入门基础(一)

    一. .net framework 的特点 1.两个主要组件 1> CLR 表示运行时的环境,同时也保证了.net 中的一种一种语言具有的功能其他语言也都具有: 2> 统一的类库集 2.M ...

  9. js 去掉字符串最后一个字符

    var str = str.substring(0,str.length-1); alert(str); 注:length 需小写.

  10. python核心编程-第五章-个人笔记

    1.用del删除对对象的引用 >>> a = 123 >>> a 123 >>> del a >>> a Traceback ( ...