博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《黑马程序员》 OC的认识和第一个OC(Objective - c语法)
阅读量:5082 次
发布时间:2019-06-13

本文共 2850 字,大约阅读时间需要 9 分钟。

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

面向对象和面向过程的区别

   ① oc是面向对象

   ② c是面向过程

   ③  面向对象和面向过成只不过是解决问题的两种不同的思路

   ④  面向过程只不过是考虑问题解决的步骤,面向对象只不过是考虑解决问题需要的对象。

OC 类的认识

     类的设计必须关心三样事物:

         ① 类名

         ② 属性

         ③ 行为

      类名:所有的名词都是类名,且类名的第一个字母必须大写。

              如果类名有多个名词,要使用驼峰标示。

      属性:代表这个类在创建出来所拥有的的属性。

      行为: 这个类所拥有的功能。

类的创建

     // 类的声明

      @interface  类名

      {

         // 大括号中间都会写上类的所有属性。

       }

       // 在这里声明类的行为。

      @end

 

    // 类的实现

     @implementation 类名

     // 在这里对类声明的行为进行实现。

     @end

   // 利用创建出来的类来创建对象

     [行为执行者  行为名称]

      例:[Car  new]  这样就简单创建出来了一个OC对象

 第一个oc类

注: oc的类必须通过指针来操作,只能使用这一种方法。

   

 

////  main.m//  类的创建 // oc中的 NSObject声明在
中#import
// 第一个oc类// 类名:Car// 属性:轮胎个数 wheels 、速度 speed// 方法:跑// 定义一个函数:需要函数的声明和实现// 定义一个类: 需要类的声明和实现// 类的声明// oc关键自比须以@开头,// 类名开头的第一个字母必须以大写字母开头,如果有多个单词每个单词的开头必须时大写字母,要使用驼峰标示// NSObject表示使这个类具备创建对象的能力// @interface用来声明成员变量/实例变量,和对象方法。@interface Car: NSObject{ // @public可以让外部的指针间接访问成员变量 @public int wheels; int speed;}/* 1 oc对象方法必须以减号开头。 2 对想方法的返回值必须用括号括住。 3 方法的声明规则:(返回值)方法名:参数 4 oc方法中括号只括住数据类型 */-(void)run;@end// 类的实现:@implementation Car// 方法的实现:说清楚声明中的方法-(void)run{ NSLog(@"这辆车跑起来了");}@endint main(int argc, const char * argv[]){ // oc中只能通过类来创建对象 // 在oc中想要只想一些行为就先写一个[行为执行者 行为名称] // oc中创建的对象只能通过指针来操作 // [Car new]每次都会创建一个新对象,并且会返回新对象本身(对象的地址) Car *c1 = [Car new]; // 通过指针来访问成员变量 // 给c1指向的类的wheels属性赋值4, // 给c1指向的类的speed属性赋值为300; c1 -> wheels = 4; c1 -> speed = 300; // 给c1指向的类发送一条run消息,来调用run方法的实现。 [c1 run]; // 要访问类内部的成员变量必须使用指针来访问 NSLog(@"轮胎个数 = %d,速度为= %d",c1 ->wheels,c1 ->speed); return 0;}

 

 

 

注意点:

 

//  main.m//  第二个oc类////  Created by Apple on 15-3-16.//  Copyright (c) 2015年 Apple. All rights reserved.///*     类名: person    属性 : 年龄、体重    行为: 跑 */#import 
// 一个@interface必须对应一个@end 中间不可以进行嵌套定义// 声明和实现必须写在对应位置// 成员变量不允许初始化// 成员变量不允许使用static修饰// 类的实现可以写在mian函数后面,但是声明必须写在main函数前面进行声明@interface Person : NSObject{ @public int age; double weight;}- (void)run;@end@implementation Person- (void)run{ // 在这里访问的成员变量是那个对象调用,就访问哪个对象内部的成员变量 NSLog(@"这个年龄为%d体重为%f的人跑起来了",age,weight);}@endint main(){ // 类在创建过程中只会加载一次 // 创建的对象都会有自身的成员变量、 // 每个对象本身都会有一个isa指针,指向本身的类。 // Person *p = [Person new]; p->age = 20; p->weight = 1.75; // 方法在调用过程中会通过isa指针去类里面寻找对应的方法, [p run]; Person *p1 = [Person new]; p1->age = 30; p1->weight = 2.00; [p1 run]; return 0;}

 

注意点 ①  成员变量和属性必须写在@interface 和 @end中间。

         ②   成员变量不允许初始化 。

         ③   成员变量不允许使用static修饰 。

         ④   类的实现可以写在mian函数后面,但是声明必须写在main函数前面进行声明。

 

类中方法和函数的区别:

方法: ① 对象方法都是以减号 - 开头。

         ② 对象方法必须写在@interface和@end之间

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

         ③ 对象方法只能由对象调用。

         ④ 对象方法的类都归对象所有。

函数: ① 函数能写在程序中的任何位置,函数归文件所有。

         ② 函数调用不能依赖对象。

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

 

转载于:https://www.cnblogs.com/honey503775123/p/4343394.html

你可能感兴趣的文章
Java 之 调用.Net的 WebService 整理
查看>>
C++ 全局变量与局部变量
查看>>
10月20日MySQL数据库作业解析
查看>>
Integrating Sharepoint 2010 and SQL Reporting Services 2008 in 6 easy steps
查看>>
salesforce零基础学习(九十二)使用Ant Migration Tool 实现Metadata迁移
查看>>
asp.net 自定义控件之ItemTemplate
查看>>
Leetcode 83: Remove Duplicates from Sorted List
查看>>
动态调用web服务 --WSHelper.cs
查看>>
ML(7)——支持向量机1(构建支持向量机)
查看>>
代码覆盖率 EclEmma
查看>>
c#编程:使用"like“查询access数据库查询为空
查看>>
Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的...
查看>>
oracle常用管理命令
查看>>
构建之法第四章两人合作
查看>>
kmp-洛谷P2375 动物园
查看>>
杂曲歌辞·杨柳枝
查看>>
swiftmailer时没有设置https的选项,才可以发送成功。在linux下面
查看>>
C#程序分析
查看>>
(6)javascript 基本概念--- -- 函数
查看>>
在Windows服务中托管 ASP.NET Core的坑
查看>>