黑马程序员————oc基础、类

本文介绍了Objective-C的基础概念,包括其与C语言的关系、面向对象的特点、基本语法元素如字符串处理和方法定义等,并通过示例代码展示了如何创建类和对象。
------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1,oc简介

1)C语言的基础上,增加了一层最小的面向对象语法。
2)完全兼容C语言。
3)可以在OC代码中混入C语言代码,甚至是C++代码。
4)可以使用OC开发Mac OS X平台和iOS平台的应用程序。

2,oc语法

1)关键字

@interface、@implementation、@end @public、@protected、@private、@selector @try、@catch、@throw、@finally @protocol、@optional、@required、@class@property、@synthesize、@dynamicself、super、id、_cmd、__block、__strong、__weak、

2)字符串

(1)表示字符串的类NSString
(2)字符串以@开头。

例如:@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串。

3)其他语法


其中NSlog()与printf()函数对比:
(1)NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
(2)NSLog输出后会自动换行,printf输出后不会自动换行
(3)使用NSLog需要#import <Foundation/Foundation.h>
(4)使用printf需要#include <stdio.h>

4)终端指令
一般形式:

编译cc –c main.m
链接cc main.o –framework Foundation
运行./a.out

  多个.m文件:

编译:cc –c main.m test.m
链接:cc main.o test.o –framework Foundation
运行:./a.out

  m文件和.c文件混用:(没有使用Foundation框架的话,就不用-framework Foundation)

编译:cc –c main.m test.m
链接:cc main.o test.o
运行:./a.out

5)#import与#include
相同:用来拷贝某个文件的内容
不同:#include完全复制,文件内容可能被拷贝多次;#import可以自动防止文件内容被拷贝多次。
6)BOOL
Object-c 提供了BOOL 类型,Object-c 里1 为true 并被宏定义为YES,0 为false 并被宏定义为NO。

3,面向对象

    OC是面向对象的,C是面向过程的。面向对象和面向过程只是解决问题的两种不同思想。区别:面向过程关注的是解决问题需要哪些步骤;面向对象关注的是解决问题需要哪些对象。

4,类的声明与实现

1)interface部分
描述类、类的数据成分以及类的方法。一般形式:

@interfac NewClassName : ParentClassName
{
	memberDeclarations;
}
methoddeclarations;
@end

命名规则:以字母或下划线开头,之后可以是任何字母,下划线或者0~9 数字组合。一般情况,类名以大写字母开头,实例变量、对象以及方法的名称以小写字母开始。
方法开头的(-)号或者(+)号表示:
(-) 该方法是实例方法(对类的特定实例执行一些操作);
(+)是类方法(即对类本身执行某些操作的方法,例如创建类的新实例)
举例:

@interface Stu : NSObject
{
    int num; 
	char name
    int age; 
}
- (void) learn; 
@end

2)implementation部分
实现这些方法的实际代码,一般形式如下:2)implementation部分
实现这些方法的实际代码,一般形式如下:

@implementation NewClassName
methodDefinitions;
@end

其中NewClassName表示的名称与interface部分的类名相同。
例如:

@implementation Stu
- (void) learn
{
	Nslog(@"学生在学习");
}
@end

3)创建对象
举例:

int main(int argc , const char *argv)
{
	Stu *stu = [Stu new];
}

5,方法

1)无参数

一般形式:

-(void)methodname

例如:

// 方法声明
-/+ (double)pi;
// 方法实现
- (double)pi
{
	return 3.14;
}

2)一个参数
一般形式:

-/+(return type)methodname : (parameter type) parameter

例如:

// 方法声明
- (double)square : (double)number;
// 方法实现
- (double)square : (double)number
{
    return number * number;
}

3)多个参数
一般形式:

-/+ (return type) methodname : (parameter type) parameter1 otherParameter : (parameter_type) parameter2 otherParameter :......

例如:

// 方法声明
- (double)sumOfNum1:(double)num1 andNum2:(double)num2;
// 方法实现
- (double)sumOfNum1:(double)num1 andNum2:(double)num2
{
    return num1 + num2;
}

4)方法调用
一般形式:

[classOrInstance method];

例如:

[stu learn]


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值