黑马程序员——OC基础---简单的OC程序

原创 2015年07月10日 11:09:05

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

OC简介

C语言的基础上增加了一层最小的面向对象语法

完全兼容C语言

可以在OC代码中混入C语言代码甚至是C++代码

可以使用OC开发Mac OS X平台和iOS平台的应用程序



OC语法预览

关键字

基本上所有关键字都是以@开头

下面列举一些常见的关键字

@interface@implementation@end 

@public@protected@private@selector 

@try@catch@throw@finally  

@protocol@optional@required@class

@property@synthesize@dynamic

selfsuperid_cmd__block__strong__weak


字符串以@开头

比如@"Hello"OC中的字符串"Hello"则是C语言中的字符串


OC程序的开发过程

C语言类似:


示例:


1OC程序

代码编写

C语言一样,OC程序的入口依然是main函数,只不过写到一个.m文件中。比如这里写到一个main.m文件中(文件名可以是中文)

#include <stdio.h>

// OC程序的入口:main函数
int main()
{
    printf("第1个OC程序\n");
    return 0;
}

运行结果:




2OC程序

代码编写

来点跟C语言不一样的,使用NSLog函数输出内容

<pre name="code" class="plain">#import <Foundation/Foundation.h>

int main()
{
    // NSLog输出内容会自动换行
    NSLog(@"第2个OC程序!!!");
    
    return 0;
}



运行结果:

NSLogprintf的区别

NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数

NSLog输出后会自动换行,printf输出后不会自动换行

使用NSLog需要#import<Foundation/Foundation.h>

使用printf需要#include<stdio.h>

#import的作用

#include一样,用来拷贝某个文件的内容

可以自动防止文件内容被拷贝多次,也就以为着头文件中不用加入下面的预处理指令了

#ifndef _STDIO_H_

#define _STDIO_H_

#endif

Foundation框架的作用

开发OCiOSMac程序必备的框架

此框架中包含了很多常用的API(应用编程接口)

框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可

#import <Foundation/Foundation.h>

BOOL的使用

BOOL类型的本质

typedef signed char BOOL;

BOOL类型的变量有2种取值:YESNO

#define YES (BOOL)1

#define NO  (BOOL)0

BOOL的输出(当做整数来用)

NSLog(@"%d %d",YES, NO);

示例:

3OC程序

多个.m文件的开发

C语言中多个.c文件的开发是一样的

编写3个文件

#import "two.h"

int main()
{
    test();
    return 0;
}

void test();

#import <Foundation/Foundation.h>

void test()
{
    NSLog(@"调用了test函数");
}

运行结果:



示例:


.m文件和.c文件混用开发

编写3个文件

main.m


#import "two.h"

int main()
{
    test();
    return 0;
}

#include <stdio.h>

void test()
{
    printf("调用了test函数\n");
}

void test();

运行结果:




BOOL的使用

BOOL类型的本质

typedef signed char BOOL;

BOOL类型的变量有2种取值:YES、NO

#define YES ( BOOL)1

#define NO (BOOL)0

BOOL的输出(当做整数来用)

NSLog(@"%d %d", YES, NO);


示例:

#import <Foundation/Foundation.h>


BOOL test(BOOL mybool)
{
    return NO;
}

int main()
{
    BOOL b = YES;
    
    BOOL b2 = NO;
    
    BOOL b3 = 1; // YES
    
    BOOL b4 = 0; // NO
    
    
    //NSLog(@"%i", b);
    
    NSLog(@"%d", test(YES));
    return 0;
}

运行结果:


黑马程序员 _5 OC基础 简单语法

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- OC语言就是C语言加上了一层面向对象的语法的...
  • liuthou
  • liuthou
  • 2014年03月25日 11:20
  • 579

黑马程序员-IOS-OC基础-Foundation框架的简单使用

-------------------------------------- android培训、java培训、ios培训期待与您交流! -----------------------------...

黑马程序员——OC基础:类和对象

一、面向对象 1.什么是面向对象? 答:面向对象其实是现实世界模型的自然延伸,世界万物都是对象。应用到计算机编程中,面向对象是编程的一种开发思想,比如OC,C++,java等语言,相对应的是面向过程,...
  • Big_Zzq
  • Big_Zzq
  • 2015年04月27日 14:46
  • 282

黑马程序员——OC基础学习(二)---对象方法和类方法的学习知识总结

对象方法学习总结 类方法学习总结

黑马程序员——OC基础---类方法的总结

黑马程序员——OC基础---类方法的总结 ------- android培训、java培训、期待与您交流! ----------...

黑马程序员——OC语言基础---对象和方法

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------ 一、对象的存储细节  1、对象的存储细节  类创建对象,每个对象在内存中都占据一定的存储...

黑马程序员——OC语言基础:面向对象三大特性,封装、继承、多态

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、封装性 1.set方法 #import @interface Student :...
  • Big_Zzq
  • Big_Zzq
  • 2015年04月27日 18:51
  • 383

黑马程序员——OC语言基础---封装的概念及原理

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 封装的概念及原理 面向对象的特性之一:封装(OC最小的封装体就是函数)  1、封装 ...

黑马程序员——OC基础:内存管理和自动引用计数(ARC)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、内存管理 1.第一种方式 #import #import "Book.h" @inter...
  • Big_Zzq
  • Big_Zzq
  • 2015年04月27日 21:18
  • 553

黑马程序员 ——OC基础知识

C语言学完了,马上开始学OC,以下是我对oc基础知识的一点简要了解。 一、C语言和OC的区别面向对象和面向过程 OC语言是面向对象的,c语言是面向过程的,这是他们之间最大的不同。面向对象和面向过程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——OC基础---简单的OC程序
举报原因:
原因补充:

(最多只允许输入30个字)