在objective-c中定义两个类,用于测试对象的定义操作。
首先定义两个类Vehicle和Ship。
@interface Vehicle
- (void)move;
@end
@interface Ship : Vehicle
- (void)shoot;
@end
对象定义操作的方法会有很多,下面罗列一些典型的操作方法。如下所示:
Ship *s = [[Ship alloc] init];
[s shoot];
编译器不会报警,因为向s对象发送消息shoot,其类可以使用shoot方法处理这个消息;
[s move];
编译器不会报警,因为向s对象发送消息move,可以上溯到Ship类的父类Vehicle,使用父类的方法move处理这个消息。这是面向对象开发的继承特性的完美体现。
在编译器编译和运行时执行代码过程中,都不会有任何问题出现。
Vehicle *v = s;
编译器不会报警,因为向s对象所属类的父类就是Vehicle。
[v shoot];
编译器这时会报警,但运行时不会崩溃。因为编译器仅仅知道它是一个Vehicle,而不知道它其实是一个Ship,但是我们自己知道,所以可以这么用。
id obj = ...;
[obj shoot];
编译器不会报警,因为它知道这个shoot方法是存在于整个项目中的。但在运行时,它可能会失败,因为obj不一定是Ship类的对象,虽然它在编译时可能是。
[obj someMethodNameThatNoObjectAnywhereRespondsTo];
编译器会报警了,因为它不知道这个名称如此乱七八糟的方法。因此,运行时也会失败,根本没有对象有这个方法来响应这个消息。
NSString *hello = @”hello”;
[hello shoot];
编译器会报警了,因为它知道NSString没有这个shoot方法。因此,运行时也会失败。
Ship *helloShip = (Ship *)hello;
编译器不会报警。
以上是学习objective-c的一些笔记。
分享到:
相关推荐
Objective-C是在C语言基础上扩展的,引入了Smalltalk的面向对象特性,如消息传递机制,使得代码更加灵活和可扩展。 "第二讲 数据类型、运算符和表达式"深入讲解了基本的数据类型,包括整型、浮点型、字符型等,以及...
5. 类级别的访问控制(Classlevel access):Objective-C允许开发者定义类方法和实例方法,其中类方法只能通过类名直接调用,而实例方法则需要通过实例对象调用。 6. 异常处理(Exceptions):在Objective-C中,...
属性声明使开发者能够轻松地为对象定义属性,并控制这些属性的存取方式。属性还可以指定合成(synthesis)属性,这使得编译器能够自动生成存取器方法。 总之,Objective-C的运行时系统是其动态特性的基石,为开发者...
1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,因此,理解C语言的基本语法是必要的。Objective-C添加了消息传递机制、类和协议等面向对象特性。 2. **消息传递**:Objective-C中的对象通过发送消息来...
Objective-C是基于C语言的,主要用于构建iOS和macOS应用程序,而Objective-C++则是Objective-C的一个扩展,它引入了C++的特性,使得开发者可以同时利用Objective-C的动态特性和C++的面向对象编程能力。 ### ...
在掌握了这些C语言基础知识后,你将更好地理解和学习Objective-C,因为Objective-C是在C语言的基础上扩展的面向对象编程语言,它保留了C的大部分语法,并引入了类、消息传递等面向对象特性。因此,牢固的C语言基础...
Objective-C是一种强大的面向对象编程语言,它在Apple的Mac OS X和iOS操作系统中扮演着核心角色,用于构建高质量的应用程序。《Objective-C程序设计 第6版》是学习和深入理解这种语言的重要参考资料,旨在帮助开发者...
Objective-C语言是一种面向对象的编程语言,它是C语言的一个超集,专门为MacOSX和iOS平台的开发设计。作为苹果官方支持的语言,Objective-C拥有悠久的历史和深厚的技术底蕴。它从C语言发展而来,对C语言的结构和语法...
3. **Objective-C语法**:深入解析Objective-C的语法特性,如消息传递、方法定义、属性声明、类别(Category)和协议(Protocol)等,以及如何使用这些特性编写代码。 4. **Foundation框架**:介绍Objective-C开发...
1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,添加了面向对象特性。它的基础包括类、对象、消息传递等概念。类定义了对象的属性和行为,对象则是类的实例。消息传递是Objective-C的核心,通过`...
Objective-C是一种基于C语言的面向对象编程(OOP)语言,尤其在苹果的iOS和macOS开发中占据核心地位。它的设计目标是扩展C语言,使其支持类、消息传递和其他面向对象特性。以下是对Objective-C面向对象编程的详细...
Objective-C是一种强大的面向对象编程语言,特别是在iOS和macOS应用开发中占据主导地位。这个压缩包包含两个关于Objective-C的学习资源:"Programming In Objective-C.chm" 和 "Programming in Objective-C.2.0 中文...
Objective-C是一种面向对象的编程语言,通常用于开发苹果iOS平台的应用程序。它基于C语言,并加入了Smalltalk风格的消息传递机制。Objective-C以其动态类型系统和强大的反射能力而闻名。 2. 类和对象 在Objective-C...
1. 类与对象:Objective-C中的所有事物都是对象,它们由类定义。类是一个模板,描述了对象的属性(实例变量)和行为(方法)。对象是类的实例,拥有类定义的属性和行为。例如,可以创建一个名为`Person`的类,包含...
Objective-C是一种通用的、面向对象的编程语言,它是在C语言的基础上扩展而成的。Objective-C在20世纪80年代初由Brad Cox发明,并由Tom Love和Mitchell Waite进一步发展完善。这种语言的设计初衷是为了更好地支持...
Objective-C是在C语言的基础上扩展了Smalltalk式的面向对象特性,使得它既有C语言的强大功能,又具备了面向对象编程的灵活性。 在Objective-C中,类是所有对象的基础。类定义了一组属性(实例变量)和方法(函数)...
Objective-C是C语言的超集,它扩展了C语言,加入了面向对象的特性。面向对象编程(OOP)的核心概念包括类、对象、继承、封装和多态。Objective-C通过消息传递机制实现了这些概念,使得代码更加模块化和可维护。 2....
1. **Objective-C的起源与特性**:Objective-C是在C语言的基础上扩展的,增加了消息传递机制和面向对象特性。它的语法包含C语言的所有部分,同时引入了类、继承、多态等OOP概念。 2. **类与对象**:在Objective-C中...
**Objective-C**是一种结合了C语言的基础特性和Smalltalk式消息传递机制的面向对象编程语言。作为C语言的一个超集,Objective-C允许开发者直接使用C语言代码。此外,它还借鉴了C++的一些特性,尽管它并非C++的直接...
Objective-C 是苹果公司为其操作系统 macOS 和 iOS 开发的一种面向对象的编程语言。它在苹果的开发环境中占有核心地位,是创建 macOS 应用程序、iOS 应用程序以及 watchOS 和 tvOS 应用程序的基础。"Learn Objective...