黑马程序员_OC学习之面向对象理解

时间:2023-02-18 18:04:56

------- IOS培训android培训、期待与您交流! ----------
1、面向对象

Objective-c是c语言的母集合,它的原意就是在原始的c语言的主体上加入面向对象的特性。面向对象,简称OOP,它

是以事物为中心,参与事件的事物是核心,完成事件只是事物的一个小任务。

说直接点,就是程序只关心谁可以做什么,不关心你内部是怎么做的。

 

2.类是一组具有相同(特征)属性和行为(功能)的事物的集合(抽象)。对象就是类的具体实现,在面向对象的世界

里万物都是对象。我们是操控一个一个对象去完成某些事情。

 

3.在OC语言中,创建类和其他语言,如Java,C#是有区别的,例如C#创建一个类是:

         public class CouponModel

      {

            成员变量...

 

           方法..........

        }

 

而在OC中,一个类的创建,是需要两部分的:

 

       1> .h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。只是说明一下方法名、方法的返回值类型、方法接收的参数类型而已,并不会编写方法内部的代码。

 

       2> .m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation和@end。

 

4.类中的方法:OC中的方法一般是一"-" 或者 "+" 开头,

                      
         + 表示类方法(静态方法) 


         - 表示对象方法(动态方法)

 

5.类中的成员变量

 

@public 全局都可以访问


@protected 只能在类内部和子类中访问


@private 只能在类内部访问

 

6.下面试OC创建类的举例

     在 .h文件里声明:

        #import <Foundation/Foundation.h>
 
    @interface Student : NSObject {
        int age; 
     
        @public
       int no; 
       int score; 
     
       @protected
        float height; 
     
        @private
      float weight; 
    }
 
   // age的get方法
   - (int)age;
 
   // age的set方法
   - (void)setAge:(int)newAge;
 
   @end

 

该类的实现:

       #import "Student.h"
 
       @implementation Student
 
     // age的get方法
    - (int)age {
      
     return age;
     }
 

     - (void)setAge:(int)newAge {
     
         age = newAge;
      }
 

      - (void)setAge:(int)newAge andHeight:(float)newHeight {
        age = newAge;
       height = newHeight;
      }
 @end

 

7.对象的创建以及使用

    内存分配:为对象动态的分配内存地址。


    初始化:在内存中填上的初始值。


   例如:Student * stu =[[Student alloc] init];


    说明:向类发送alloc消息,就是为该类分配一块足够大内存,用于存放实例变量,同时初始化内存,填上的初始值。

    使用代码案例:

      #import "Student.h"
      int main ()
     {
 
    
        Student * student = [[Student alloc] init];
        student->age = @"20";
        student->no = 1;     


    }

 

      

 

 

 

 ------- IOS培训android培训、期待与您交流! ----------