zoukankan      html  css  js  c++  java
  • iOS学习笔记---oc语言第一天

    第一讲 初始类和对象

    c语言的超集,允许在oc中使用c语言源代码。编译器兼容c语言程序

     具备完善的面向对象特性

     包含一个运行时系统

     类库丰富

     面向对象编程 oop

     面向对象语言:c++  java   c#

     概念:对象、类、封装、继承、多态等

     面向过程:分析解决问题的步骤,实现函数,依次调用

     面向对象:分析问题组成的对象,协调对象间的联系和通信,解决问题  

     面向对象设计具有良好的可扩展性、可重用性

     类和对象是面向对象的核心

     定义类,创建对象,使用对象

     具有相同特征和行为的事物的抽象    

     对象是类的 实例

     类是对象的类型

     面向对象编程中使用对象完成程序

     开发中:先定义类,在创建对象,然后使用对象

     定义类包含两部分:接口部分和实现部分,  分开写

      1.接口部分:对外声明类的特征和行为

     2.实现部分:对内实现行为

    接口部分

    接口部分标志:@interface...@end

    作用:声明类的实例变量和⽅方法,即特征和⾏行为。

    包含内容:类名、父类名、实例变量、方法等
    #import <Foundation/Foundation.h>
    
    @interface Student : NSObject
    {
        @public
        NSString *_name;
        NSString *_sex;
        NSInteger _num;
        
    }
    - (void)study;//学习
    - (void)sleep;//睡觉
    - (void)read;//读书
    
    @end

    实现部分

    实现部分标志:@implementation...@end

    作用:实现方法 即实现类的行为

    #import "Student.h"
    
    @implementation Student
    - (id)init
    {
        _name = @"zhangsan";
        return self;
    }
    - (void)study;//学习
    {
        NSLog(@"%@ go to study",_name);
    }
    - (void)sleep;//睡觉
    {
        NSLog(@"%@ ,it's time to sleep",_name);
    }
    - (void)read;//读书
    {
        NSLog(@"you must read now");
    }
    @end

    类和文件

    类:@interface...@end @implementation...@end

    ⽂文件:.h称为接⼝口⽂文件或头⽂文件,.m称为实现⽂文件。默认设 置如下:

    1. 使⽤用类名命名⽂文件。

    2. .h⽂文件管理类的接⼝口部分;.m⽂文件管理类的实现部分

    ⽂文件和类本质没有关系,为了⽅方便管理、实现封装特性

    创建对象

    创建对象分两步:分配内存空间和初始化。

    分配内存空间:根据类中声明的实例变量为对象分配内存,

    将所有实例变量置为默认值0,并返回⾸首地址。 初始化:为对象的实例变量设置初始值

    分配内存空间:Person * p = [Person alloc];

    初始化:p = [p init]; 通常这两部操作需要连写:

    Person * p = [[Person alloc] init];

    + (id)alloc; +表⽰示这个⽅方法属于类,只能类执⾏行。id返回值 类型,表⽰示任意类型的对象,即创建好的对象。

    - (id)init; -表⽰示这个⽅方法属于对象,只能对象执⾏行。id返回值 类型,表⽰示初始化完成的对象。

    初始化

    使用对象

    指针存储对象的⾸首地址,代指对象。OC中使⽤用指针代指对 象,进⾏行操作。

    Person * p = [Person alloc]; 先执⾏行“=”右侧

    1. [Person alloc]返回值是对象的⾸首地址,即对象。

    2. p是跟对象同类型的指针变量,存储对象⾸首地址,代指对象

    int main(int argc, const char * argv[])

    {

        Student *zhangsan = [[Student alloc] init];

        [zhangsan sleep];

    操作实例变量

    实例变量在初始化只做少量设置,后期还需要进⾏行设置。

    实例变量区分可⻅见度,共三种。这节课使⽤用public @public:实例变量访问修饰符号(公有)。

    @interface Lesson : NSObject
    {
    //@public//公有的,用public 修饰的变量。可以在任何文件访问
    //    @protected//受保护的,仅能在自己类和子类里访问
        @private//私有的,仅能在自己类里访问
        NSString *_name;//实例变量前加下划线(不成文规定)区别其他变量
        NSString *_sex; //string  字符串
        NSInteger _age;
        

     语法细节,注意事项

    l  成员变量不能在{}中进行初始化、不能被直接拿出去访问

    l  方法不能当做函数一样调用

    l  成员变量方法不能用static等关键字修饰,别跟C语言混在一起(暂时忽略)

    l  类的实现可用写在main函数的后面,主要在声明后面就行了

    l  C函数不能访问OC对象的成员

    l  方法只有声明,没有实现(经典错误)

    l  方法没有声明,只有实现(编译器警告,但是能调用,OC的弱语法)

    l  编译的时候:访问没有的成员变量直接报错,访问没有的方法,只是警告

  • 相关阅读:
    对单片机程序中.data、.bss和.text三种数据的解读
    单片机驱动-软件模拟SPI
    MKL25-Low-Power Timer (LPTMR)
    使用intellij idea 查看Java字节码
    2.1 并发编程之java内存模型JMM & synchronize & volatile详解
    1.操作系统底层工作的基本原理
    JDBC(1)-数据库连接和CRUD操作
    Java反射详解
    Java Web(5)-Servlet详解(下)
    Java Web(5)-Servlet详解(上)
  • 原文地址:https://www.cnblogs.com/limicheng/p/3803925.html
Copyright © 2011-2022 走看看