Object-c学习总结
1.类的声明和定义
//创建类之前需要告知编译器对象的数据成员和它提供的特性,表示为新类Circle定义的接口。
@interface Circle:NSObject
{
ShapeColor fillColor;
ShapeRect bounds;
}
//下面是三个方法声明
//先行短线,是区别于函数原型和方法声明的标记,函数原型没有先行短线
//方法声明中使用了中缀符语法技术,方法的名称及其参数是合在一起的
//可以这样调用带一个参数的方法[circle setFillColor:kRedColor]
//调用两个参数的方法 [textString setStringValue: @"hello here" color: kBuleColor];
//冒号也是名称的一部分,告诉编译器后面会出现参数
- (void) setFillColor:(ShapeColor)fillColor;
- (void) setBounds:(ShapeRect)bounds;
- (void) draw;
//告知编译器,已完成类型Circle的声明。
@end //Circle
//可以在实现中添加interface中没有声明的方法,但是这些方法都不是私有化的,
//Objective-c中不存在真正的私有方法,也无法把某个方法标识为私有方法,这是object-c动态本质的副作用。
@implementation Circle
- (void) setFillColor:(ShapeColor)c
{
fillColor = c;
}//setFillColor
- (void) setBound: (ShapeRect) b
{
bounds = b;
}// setBounds
- (void) draw
{
NSLog(@"drawing a circle at(%d %d %d %d) in %@",bounbs.x,bounds.y,bounds.width,bounds.height,colorName(fillColor));
}//draw
@end //Circle
2.实例化对象时可以直接向类发送消息创建对象[Circle new];
3.继承中子类因逻辑需要重写父类的方法 写法如下
@implemtation Circle
- (void) setFillColor: (ShapeColor)c
{
if(c == kRedColor){
c= kGreenColor;
}
[super setFillColor: c];
}//setColor
@end //Circle
4.复合
@interface Car:NSObject
{
Engine *engine;
Tire *tires[4];
}
- (void) print;
@end //Circle
@implementation Car
- (void) init
{
//如果超类可以完成所需的一次性初始化,需要调用[super init],init返回值(id型数据,即泛型对象指针)描述了初始化的对象
//赋值的原因是防止超类在初始化过程中返回的对象不同于原先创建的对象。
if(self = [super init]){
engine = [Engine new];
tires[0] = [Tire new];
tires[1] = [Tire new];
tires[2] = [Tire new];
tires[3] = [Tire new];
}
return (self);
}//init
- (void) print{
NSLog(@"%@",engine);
NSLog(@"%@",tires[0]);
NSLog(@"%@",tires[1])
NSLog(@"%@",tires[2]);
NSLog(@"%@",tires[3])
}//print
@end //Car
5.setter与getter方法
为了动态设定汽车的轮胎和引擎,可以做如下方法的更改
@interface Car: NSObject
{
Engine *engine;
Tire *tires[4];
}
//getter方法不能带有get关键字,否则通过当作参数传入的指针来返回数值。
- (Engine *) engine;
- (void) setEngine: (Engine *)newEngine;
- (Tire *) tireAtIndex: (int)index;
- (void) setTire: (Tire *) tire
atIndex: (int)index;
- (void) print;
@end //Car;
使用:
- (void) setTire: (Tire *)tire
atIndex: (int)index
{
if(index<0 || index>3){
NSLog(@"bad index (%d) in setTire:atIndex:",index);
exit(1);
}
tires[index] = tire;
} //setTire:AtIndex
- (Tire *) tireAtIndex: (int)index
{
if(index<0 ||index>3){
NSLog(@"bad index (%d) in setTireAtIndex:",index);
}
return tires[index];
} //tireAtIndex
分享到:
相关推荐
- **Hello, World**:初识Objective-C的简单程序,了解编译运行流程。 - **UI设计**:创建基本的用户界面,包括按钮、文本框等元素。 - **网络请求示例**:实现一个简单的网络请求,展示数据。 - **Core Data...
《初识iOS 6开发:探索iOS SDK》是针对苹果移动平台开发的一本入门级教程,旨在引导读者深入了解iOS开发环境和工具,掌握Objective-C语言基础,并熟悉Apple的开发框架。这本书面向的是对iOS编程感兴趣的初学者,通过...
Objective-C是苹果公司开发的面向对象的编程语言,它是C语言的一个扩展,主要用于iOS和Mac OS X操作系统上的应用程序开发。 在OC中,我们首先会接触到类(Class)和对象(Object)的概念。类是对象的模板,它定义了...
- **Objective-C**:虽然原文中提到了作者对Objective-C的初识感到困惑,但随着时间的推移,作者逐渐掌握了这门语言。Objective-C是iOS开发的主要编程语言之一,对于初学者来说可能需要一段时间来适应其语法结构。 ...
Objective-C是C语言的超集,添加了面向对象的特性,如消息传递和类别。读者将学习如何定义类、创建对象,以及如何利用Objective-C的语法进行方法调用和属性设置。 其次,书中会详细介绍Xcode集成开发环境(IDE)的...
1. **Objective-C**: 作为iPhone应用开发的主要语言,Objective-C是C语言的超集,添加了Smalltalk风格的消息传递机制。开发者需要掌握类、对象、协议、继承等面向对象编程概念,以及 Blocks 和 Category 等Objective...
Objective-C是iOS开发的主要编程语言,它基于C语言并扩展了Smalltalk的面向对象特性。学习Objective-C,你需要掌握类、对象、消息传递、协议等概念。此外,了解ARC(Automatic Reference Counting)内存管理机制也...
Objective-C是C语言的一个超集,它引入了面向对象编程的概念,如类、继承、多态和消息传递等。学习Objective-C是了解苹果生态系统的关键步骤,尤其是对于早期的iOS开发资料。 源代码文件通常包含多个部分,例如: ...
- **@synthesize指令**:介绍这个Objective-C特性,它简化了属性的getter和setter方法的实现。 5. **处理表视图行选择** - **UITableViewDelegate深入理解**:进一步探索UITableViewDelegate协议的高级用法,特别...
Objective-C是iOS开发的主要编程语言,它是C语言的超集,添加了面向对象的特性。书中会从基础语法开始,逐步介绍类、对象、消息传递等概念,帮助读者掌握Objective-C的基本用法。此外,还会涉及Swift语言,作为...
《初识iPhone 3开发:源代码解析》 在iOS应用开发的世界中,Apple的iPhone平台无疑是最引人注目的舞台之一。对于那些希望踏入这个领域的开发者来说,《 Beginning iPhone 3 Development》是一本不可多得的入门教程...
学习Xcode的基本操作,如创建新项目、理解项目结构、使用Interface Builder设计UI、编写Objective-C或Swift代码以及使用版本控制系统Git,都是iOS开发的起点。 2. ** iOS 6实践指南 (1).pdf **:iOS 6是Apple的一个...
1. **Objective-C基础**:Objective-C是iOS开发的主要语言,它基于C语言并扩展了Smalltalk风格的消息传递机制。源代码将展示类、对象、属性、协议、方法等基本概念。 2. **Interface Builder与Storyboard**:iOS...
- **Objective-C中加载Property List**:指导如何使用Objective-C代码加载和解析Property List文件。 #### 第七部分:如何在Xcode 4.* 添加定制字体到iOS 应用程序中? - **字体资源的引入**:介绍如何在Xcode项目...
Objective-C研究院之基础语法(一) Ruby On Rails研究院之初识Rails(一) Three20研究院之构建开发环境与HelloWorld(一) Unity3D研究院之在开始学习拓展编辑器(一) Unity3D研究院之构建游戏框架与导出IOS...
10. **Swift与Objective-C互操作**:尽管Swift是现代的编程语言,但为了兼容已有的Objective-C代码库,Swift提供了与Objective-C的无缝互操作能力。 在提供的"FoodPin"源码中,我们可以看到一个实际的iOS应用示例,...
Swift是由苹果公司在2014年的WWDC(Worldwide Developers Conference)大会上正式推出的一种全新的编程语言,旨在逐步替代原有的Objective-C作为苹果官方推荐的语言。Swift主要应用于iOS、macOS、watchOS以及tvOS等...
Objective-C是一种C语言的超集,增加了面向对象的特性,如消息传递和类别。理解其语法和类库,如Foundation和UIKit,是成为一名合格的iPhone开发者的第一步。 接下来,你会学习到Xcode IDE(集成开发环境)的使用,...
在iOS 5 SDK中,开发者可以利用强大的Objective-C语言和Xcode集成开发环境来创建引人入胜的游戏体验。书中首先会介绍iOS开发的基础知识,包括设置开发环境、理解iOS设备的硬件特性和SDK提供的各种框架。对于新手来说...