黑马程序员——OC的简单认识

时间:2023-02-20 23:32:38


一. 理解面向对象

•面向对象是相对面向过程而言

•面向过程
–强调的是功能行为
–关注的是解决问题需要哪些步骤

•面向对象
–将功能封装进对象,强调具备了功能的对象
–关注的是解决问题需要哪些对象
面向对象是基于面向过程的


二.  面向对象的特点:

•是一种符合人们思考习惯的思想
•可以将复杂的事情简单化
•将程序员从执行者转换成了指挥者

•完成需求时:
–先要去找具有所需的功能的对象来用。
–如果该对象不存在,那么创建一个具有所需功能的对象。

•拥有相同(或者类似)属性和行为的对象都可以抽像出一个类


 1. #import <Foundation/Foundation.h>

  #import是include的升级版,可以自动防止重复引用,以后都使用import

 2. printf与NSLog的区别

     1.名字不同

     2.引入的头文件不同。前者引入 #include < stdio . h>      后者引入 #import <Foundation/Foundation.h>

     3.写的格式不同。在使用NSLog打印时,要在“”前面加一个@

     4.输出的内容不同

     5.NSLog可以自动换行

     6.printf用于c的字符串  NSLog一般用于oc的字符串

 3.什么是面向对象:

      更加复合人们的思考习惯,将复杂的事情简单化处理,使人们从执行者变成了指挥者

 4.什么是对象?

      世界万物皆对象

 5.什么是类?

      相当于现实当中的图纸,是具体事物的抽象,是描述的属性和行为。

 6.创建一个具体的类

      三要素:》类名:首字母大写,其他单词遵循驼峰原则

            》属性:一般以下划线开头,其他单词遵循驼峰原则

            》行为:遵循驼峰原则


三.  类的声明和实现

类的声明:对类的属性和行为进行声明

黑马程序员——OC的简单认识
   NSObject // 使类具有创建对象的能力


类的实现:类的声明中声明了什么方法,实现当中就写什么方法的实现

#import"MyClass.h"

@implementation   MyClass

-(id)initWithString:(NSString *)aName

{

    //写代码处

}

+(MyClass *)myClassWithString:(NSString *)aName

{

    //写代码处

}

@end


声明对象方法

•  声明没有返回值的方法
•-(void) method;

•  声明有返回值的方法
•-(int) method;

•  声明有返回值有参数的方法
•-(int) method: (int)var;

•  声明有返回值有多个参数的方法
•-(int)method: (int) var1 andVar2: (int)var2;
<注>:每一个参数对应一个:号,:号是方法名的一部分,-号不是方法名的一部分

声明类方法

•  声明没有返回值的方法
•+(void)method;

•  声明有返回值的方法
•+(int)method;

•  声明有返回值有参数的方法
•+(int)method: (int)var;

•  声明有返回值有多个参数的方法
•+(int)method: (int) var1 andVar2: (int)var2;



实例化对象(创建对象)
黑马程序员——OC的简单认识

    [car new] 做了三件事情:

     1.开辟存储空间

     2.初始化成员变量(又称实例变量,成员变量就是类的声明的大括号中的属性),整数值会被初始化为0

     3.返回空间的地址



消息机制
•使用对象调用方法就是OC中的消息机制
黑马程序员——OC的简单认识

四.  补充

  Car *car1;  //局部变量,在栈区

  car1 = [Car new]; // 在堆里面创建了一个对象


  每new一次,就重新开辟一块儿存储空间,所以对象之间互补影响
  一个类可以创建多个对象,对象之间互不影响

  oc当中所有的类都可以代表一种数据类型      // NSObject *



  每new一次,就重新开辟一块儿存储空间,所以对象之间互补影响