• Objective C笔记(第一天)


    • OC语言概述

    1.早在20世纪80年代早期,Bard Cox发明了Objective C, 是扩充的C,面向对象的编程语言。

    2.NEXTSTEP简称NS

    a.1985年,Steve Jobs成⽴立了NeXT公司。

    b.1988年,NeXT SoftWare公司获得了OC的语言授权, NEXTSTEP环境成为了苹果操作系统,创建的开发包。MACOS

    c.1996年,12月20⽇日,苹果公司宣布收购了NeXT software公司,NEXTSTEP环境为apple公司下主要开发、发⾏行操作系统OSX的基础,这个开发环境的版本被苹果公司命名为 Cocoa(可可)框架

    NSString NS=NEXTSTEP

    3. Cocoa框架

    a.Cocoa是苹果公司为MAC OS X所创建的原生面向对象编程环境。

    b.Cocoa应用程序一般在苹果公司的工具xcode上用 Objective C编写的。

    c.使用Cocoa编程环境开发的应用程序叫Cocoa应⽤用。 app->application->应用程序

    Cocoa Touch框架 ->Ctapp

    d.Cocoa框架主要由两部分组成,Fundation框架和 Application Kit框架。

    e.Fundation框架,基础框架,包括:字符串、数字、数组、字典、集合等

    #import <Foundation/Foundation.h>

    f.Application Kit框架,应用程序工具箱,它包括了实现程序图形、事件驱动和用户界面的全部对象,窗口、对话框、按钮、 菜单、滚动条、文本框等,而且这个列表还在不断的添加。  

    4.IOS

    苹果公司硬件上的一个操作系统,苹果公司便携设备上的操作系统。在2007年1月9日,MacWorld大会上公布的这个系统, 最初设计给iphone使用的,后来陆续用到ipodtouch、ipad、 apple TV等苹果产品。  

     

    • 语法格式区别

    1.以前在C语言中使用的include现在换为import,作用和C语言include相似的,必须换为import,且支持避免重复导入的问题。

    2.以前在C语⾔中使用的printf函数来进行数据的输出、打印, 现在换为NSLog函数,日志输出,注意输出字符串信息的时候, 要在上面加上@,不需要使用 作为换行符。  

    3.在编译的时候,gcc虽然可以编译,但是不支持OC的新语法,源文件由原来的.c文件,变为.m文件了。

    4.在编译时,使用新的编译命令clang,编译链接时,需要指定使用的框架(库)。

    clang -framework Foundation main.m

    5.编译后依然生成了a.out⽂文件,可以使用./a.out来运行程序。

    • include与import 

    #import <>或""和#include<>或""的区别,objc中所有得文件包含指令都使用#import<>或#import ""来实现,可以避免头文件被重复包含,自动剔除重复的头文件,如果要使用 #include<>或""需要通过#ifndef条件编译来实现。

    • 逻辑数据类型BOOL

    a.bool b1 = false;//true 1,flase 0

    b.BOOL b2 = YES;//YES 1,NO 0

    面向对象概念     

    •  什么是面向对象程序开发

    1.面向过程  数据结构 + 算法

    2.面向对象  属性 + 行为

    •  为什么使用面向对象的编程思想

    使用面向对象的编程思想,可以大大的降低企业项目的开发周期和成本,提高了开发的效率,以及代码的复用性,大大的降低 了开发的难度。提高了代码的可读性以及可维护性。 

    •  对象

    Anything is Object.万物皆对象。 现实中的对象是⼀种客观存在, 程序中的对象是⼀片内存中的数据。

    •  现实中的对象  

    现实中的学生对象  

    有什么?姓名、年龄  能干什么?学习  

    属性(成员): age,name

    方法(函数)study() 

    用解决现实中的问题的⽅法,来解决计算机问题。

    • 什么是类 

    具有相同属性和方法的同一类元素的总称。 

    类是一个抽象的概念,比如:人类 动物 蔬菜 水果 汽车, 区分类还是一个对象时,看它能否继续被细分。对象就是不能继续被细分的。类是就是现实事物的一个抽象。 

    设计(图纸)(梦想中)---工厂生产--->手机(现实)

    代码(文件)---执行加载--->内存(数据)  

    类 ---实例化 --->对象  

    •  定义类的语法格式 

    设计类Student 代码存在文件中,OC class。 一个类是由两个部分组成的 *.h⽂文件和*.m⽂文件

    1).h文件定义类的interface部分(声明)

    @interface Student : NSObject

    @property int age;//声明属性! 

    -(void)study;//声明⽅方法!

    @en

    2).m⽂文件定义类的implemention部分(实现)

    @implementation Student//方法的定义、实现!

     -(void)study{

    "NSLog(@"学生执行了study方法");

    }

    @end

    .什么是对象

    对象就是类在内存中的一个实例。对象就是类的一个具体对象。 不可细分,代表着某一个具体的东西。

    •  将类实例化变为对象

    1)main.m⽂件中的->main函数(程序⼊口)执行程序

    2)能过类发送alloc,通过一个类创建对象,通过stu变量(*stu),找到内存的对象。

    3)可以向对象发送消息(函数),此时对象就会响应消息,执行方法。

    4)对象如果有属性,对象.属性 = 值,给对象的属性赋值 

    .方法

    •  什么是方法  对象可以干什么,有什么功能。

    •  方法与函数区别 

    函数只是一个程序的代码段,与类无关系。

    方法是类的一部分,代表对象可以干什么。

    正常来讲,类必须实例化,方法才可以使用,实例方法调用方法时,也叫做向对象发送消息。

    •  方法命名 语法格式与函数非常相似,但截然不同。使用方法时,在.h⽂文件中声明,在.m文件中实现。

    -(返回值类型) 方法名; //无参的方法 

    eg:-(void)method;

    •  方法的参数  

    -(返回值类型) 方法名:(参数类型)参数名;//有参的方法

    eg:-(void)method3:(int)num;

    -(返回值类型) 方法名:(参数1类型)参数名1 :(参数2类型)参数名2 :(参 数n类型)参数名n;//多参的方法

    eg:-(void)method4:(int)arg1 :(int)arg2;  注:“:”符号也是方法名的⼀部分  

    •  方法的参数

    -(返回值类型) 部分方法名:(参数1类型)参数名1 部分方法名2:(参数2类型)参数名2 部分方法名n:(参数n类型)参数名n; 部分方法名起到提示作用,并不影响程序的执行

    eg:-(void)printInfoWithAge:(int)age!

                        andGender:(char)gender!

                         andSalary:(double)salary;  

     

    方法的返回值

    与C语言中的函数返回值使用方式一致。

    • 公有方法与私有方法  

    在.h文件中声明的方法,并且在.m文件中实现就是公有方法。 

    在.h文件中未声明的方法,并且在.m文件中实现就是私有方法。

     

    实例变量    

    • 什么是成员变量与实例变量

     在类中声明的变量就是成员变量。类实例化变为对象,此时成员变量也就变为实例变量。 一个对象会有自己独特的数据和别的对象不同,这些数据会保 存在一些特殊的变量中,这种变量叫实例变量。类的每个实例(对象)都有一份。   类对象(实例)(引用) 

    内存中没有                     内存中有 

    成员变量                       实例变量 

    成员方法                       实例方法 

    • 定义变量 在.h文件中,使用{}括起来的区域声明,类型C语言的变量声明。

    • 公有变量与私有变量 在.h文件中声明的变量为公有变量,在.m文件中声明的变量为私有变量

     
  • 相关阅读:
    数据表后缀问题
    window.history.go(-1)返回且刷新页面
    mysql性能优化-慢查询分析、优化索引和配置
    从数据库、代码和服务器对PHP网站Mysql做性能优化
    什么是WEBserver? 经常使用的WEBserver有哪些?
    浅谈 C/S 和 B/S 架构
    Android常用开源项目
    csdn android视频播放器开发
    视频会议十大开源项目排行
    Android开源项目大全
  • 原文地址:https://www.cnblogs.com/mapanguan/p/4151971.html
Copyright © 2020-2023  润新知