首页 > 代码库 > 黑马程序员___类和对象

黑马程序员___类和对象

类和对象

 

面向对象

 

面向对象的思想就是关注解决的问题需要哪些对象,然后直接用对象的方法解决问题,C语言是面向过程的语言,面向过程关注的时解决问题需要哪些步骤

 

生活中面向对象的例子

  • ¬ 想打电话\发短信  找手机,不用分析电话要怎样才能拨通
  • ¬ 去饭店吃饭  找服务员,不用分析怎么到厨房炒菜
  • ¬ 汽车坏了  找汽车维修工,不用分析修车的步骤
  • ¬ 境界:万物皆对象

 

常用术语

 

  • ¬ 面向过程 Procedure Oriented
  • ¬ 面向对象 Object Oriented,简称OO
  • ¬ 面向对象编程 Object Oriented Programming,简称OOP

 

 

类的声明

 

@interface Car :NSObject

 

  • 类名\属性的命名规则:标示符的规则
  • 类名的命名规范:有意义、驼峰标识、首字母大写
  • 冒号表示继承,Car继承NSObject这个类,用到NSObject的时候文件的开头要#import<Foundation/Foudation,h>,因为Foundation 这个框架包含了一些常用的基本的类。

 

成员变量

 

每个类都可以创建出很多对象,每个对象都有相同的属性,但是属性值会有不同,属性就是对象的成员变量

成员变量要在@interface的大括号{}中声明,默认会初始化为0,在声明的时候不能对成员变量进行初始化

 

 

成员变量的作用域

public:表示这个变量是公共的,可以被外界访问

privite:私有的,声明的变量不能被外界访问,只能在类中使用

protect:被保护的,这样的变量可以在父类和子类中访问(默认都是protect类型的变量)

package:只要处在同一个框架中,就可以被访问,不同的框架不能访问

 

类的实现

 

@implementation Car

- (void)run

{、

NSLog(@“—————这个车子跑起来了”);

}

@end

类的实现必须要写在@implemen和@end之间 

 

函数和方法的区别

 

方法

1.对象方法都是以减号 - 

2.对象方法的声明必须写在@interface和@end之间

  对象方法的实现必须写在@implementation和@end之间

3.对象方法只能由对象来调用

4.对象方法归类\对象所有

函数

1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有

2.函数调用不依赖于对象

3.函数内部不能直接通过成员变量名访问某个对象的成员变量

 

匿名对象

 

 [Car new]->speed = 300;

 

 [[Car new] run];

 

像上面这样没有变量来接受创建出来的对象直接拿来使用,叫做匿名对象

创建对象的时候尽量不用匿名对象,因为这样会造成内存泄露

黑马程序员___类和对象