黑马程序员 oc中的类与对象

类就好像一张图纸,而对象就是通过这个图纸创造出来的实物,一个类可以创造出多个对象,对象之间可以是不同的,根据成员变量值的不同即属性不同,对象也就
会不同,做出的行为状态也不同,例如一个车类,它的属性有speed,wheels等,根据speed值的不同可以区分对象,做出跑的状态不同,有的
speed是250km/h,有的speed是300km/h。
     在oc中类的设计和对象的创建
//
只要import Foundation.h就能使用Foundation框架里的所有头文件
#import 
<Foundation/Foundation.h>
// 所有的类必须继承NSObject基类,没有继承基类就创建不了对象
//
@interface里写的是成员变量和方法的声明
@interface Car : NSObject
//
只有并且所有的成员变量必须放在花括号里
{   //
只有使用public才能在程序的任意地方直接访问成员变量
     
@public
      int
speed;
      int wheels;
}
//
对象方法与函数有着明显的区别,在oc方法中数据类型都必须用括号括起来,对象方法必须写在花括号外
- (void)run;
//
一个@interface对应一个@end,@interface会找离它最近的一个@end对应
@end
//
implementation里写的是方法的实现
@implementation Car
- (void)run
{
//
没有import Foundation 就不能使用NSLog
  NSLog(@"速度为%d
km/h的车跑起来了!");
}
int main()
{
   //
没有继承NSObject,就不能使用new的类方法
   Car *car = [Car new];
  
car->speed = 250;
   [car run];
   return
0;
}

时间: 2024-11-16 12:39:49

黑马程序员 oc中的类与对象的相关文章

黑马程序员-OC中的点语法,成员变量的作用域

点语法 点语法本质是函数的调用,不是像java中那样,是用来访问成员变量的:oc中访问成员变量是用 -> 访问的: Person *p = [Person new]; p.age = 10; // 如果点语法是进行了赋值操作,那么就相当于调用了setter方法: [p.age]; // 这样不赋值相当于调用了getter: 注意点: 尽量不要在setter或getter中调用点语法,容易引发死循环:死循环是由于递归调用引发的: // 在setter调用点语法 - (void)setAge:(in

黑马程序员------OC中协议和分类

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- OC中没有想C++中的多继承,是利用分类和协议来实现的. 分类是在不影响原有存在类的基础上,为原有类添加属性和方法. 协议:一般只是声明方法.遵守了协议的类,才会去实现协议中的方法. 协议一般和代理的一起使用.分类,一般是为系统中的类添加

黑马程序员------oc中的copy

oc中的copy分为深copy和浅copy 深copy的意思是copy后又重新开辟一个内存空间,对copy的资源进行操作,不会影响本来的那份资源.表格中显示哪些为深copy copy前的可变性 可变 不可变 进行copy 不可变 不可变 进行mutablecopy 可变 可变 以上四中情况下,除了开始是不可变,进行copy后,还是不可变的,这种情况下是浅copy外,其他的三种情况都是深copy. 进行copy操作的,除了系统的NSArray/NSMuabltArray.NSDictionary/

黑马程序员-------oc中的结构体

oc中的结构体主要有CGPoint,CGSize,CGRect,NSRange; /* Points. */ struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoint; /* Sizes. */ struct CGSize { CGFloat width; CGFloat height; }; /* Rectangles. */ struct CGRect { CGPoint origin; CGSize s

黑马程序员---Objective-C基础学习---类、对象、方法相关知识笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类.对象.方法相关知识笔记 Objective-C相对于C语言有了面向对象的特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简.下面是一些相关知识笔记. 类定义 成员变量 方法和属性 self关键字 类定义 在C#.Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字class加一对大括号基本就完成了,但是在ObjC中类的定义相对变化比较大.现

黑马程序员-Java基础-面向对象-类和对象、封装、构造函数、this、static、饿汉式&amp;懒汉式

第一讲  面向对象概念 1.  定义 相对于与面向过程而言的,将功能封装进对象,我们只关心具备了该功能的对象,而不用关注对象的具体细节. 面向对象的特点:使复杂问题简单化.我们只关心什么对象能处理什么事情,而不用关心具体的实现细节. 2.  面向对象特征 封装.继承.多态. 第二讲  类和对象的关系 1.  概述 类就是:对现实生活中事物的描述,可以是实体的事物也可以是一件事等: 对象是:是某类事物的实例,实实在在存在的个体: 映射到java中,描述就是class定义的类. 具体对象就是对应ja

黑马程序员----OC中含有BOOL类型

一.BOOL类型 OC中有布尔类型 BOOL(C语言中没有布尔类型) 二.BOOL类型的本质 typedef signed char BOOL; 三.BOOL类型的取值范围 BOOL类型的变量又2种取值:YES .NO #define YES (BOOL)1 #define NO (BOOL)0 四.代码练习: 运行结果:

黑马程序员------Java中File类学习总结

Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! File类 1.用来将文件或者文件夹封装成对象,以方便对文件和文件夹进行操作. 2.File对象可以作为参数传递给流的构造函数. File对象功能: 创建和删除: 1.boolean createNewFile(): 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件. 2.boolean mkdir():创建此抽象路径名指定的目录. 3.boolean mkdirs():创建此抽象路径

黑马程序员————OC中Foundation框架的结构体和字符串

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