iOS APP 开发 OC 第六天, 类&对象

tags: OC 30 day

什麽是对象?

对象是现实生活中的一个具体存在。看得见,摸得着。拿过来就可以直接使用

什麽是类?

物以类聚,人以群分。
类是对一群有相同特徵或者行为的事物的一个统称。抽象的。不能直接使用。

案例

食物是类还是对象?
水果是类还是对象?
苹果是类还是对象?
我早上吃的那一个苹果?


类和对象的关系

类是模板,类的对象是根据这个模板创建出来的。
类模板中有什麽,对象就有什麽,绝不可能多,也绝不可能少。

如何设计一个类

类的作用: 用来描述一群具有相同特徵行为的事物。
设计类的三要素:

  1. 类的名字,你要描述这个类事物叫什麽名字。
  2. 这类事物具有相同的特徵,这类事物拥有什麽。
  3. 这类事物具有共同的行为。这类事物能做什麽?

如何找到类

名词提炼法:分析整个业务流程,分析出现了哪些名词,这些名词就是你要找到的类。

先有类还是先有对象?

从现实的角度:一定是先有对象再有类。
从程序码的角度:一定是先有类才有对象。


如何定义类

  1. 类的三要素
  2. 定义类的语法
    a. 位置:直接写在源文件之中,不要写在main函数之中。
    b. 语法:
    类的定义分为两个部分。
    -> 类的声明
@interface 类名:NSObject
{
这类事物具有的共同特徵,将他们定义为变量。
}
功能就是一个方法,将方法的声明写在这里。
@end

-> 类的实现

@implementation 类名
将方法的实现写在这里
@end
  1. 几点注意
    a. 类必须要有声明和实现。
    b. 类名用你棉树的事物名称来命名就可以了,类名的每第一个单字的首字母必须要以大写开头。
    c. NSObject是什麽意思,先不用管,之後会补充。
    d. 用类表示着类事物的共同特中的变量必须定义在@interface的大括弧之中。
    e. 定义在大括弧之中用来表示着类事物的共同的特徵的变量我们叫做,属性 成员变量 实例变量 字段.....
    f. 为类定义属性名时,属性的名称一定要_为开头。
    示范
@interface Person : NSObject
{
    NSString *_name;
    int _age;
    float _height;
}
@end
@implementation Person

@end

如何创建一个类的对象呢?

语法:
类名 *对象名 = [类名 new];

Person *p1 = [Person new];

那麽,这句话是什麽意思呢?

根据Person 这个类的模板,创建了一格对象的名字叫做p1
p1对象的特点:
-> 可以直接使用
-> 类中定义的东西,这个对象也有,不会多也不会少。

如何使用对象?

如何访问对象的属性:

  1. 默认情况下,对象的属性是不允许外界直接访问的。如果允许对象的属性可以被外界访问,那麽就在声明属性的地方嫁入@public的关键字。
  2. 访问对象的属性的方式
    对象名->属性名 = 值
    对象名->属性名;

(*对象名).属性名;

平时使用的时候,使用->

练习

写一位学生的类, 属性: 姓名 年龄 语文成绩 英文成绩

@interface Student : NSObject
{
    @public
    NSString *_name;
    int _age;
    int _lang;
    int _math;
    int _english;
}
@end
@implementation Student
@end
int main(int argc, char * argv[]) {
    Student *s1 = [Student new];
    s1->_name = @"小花";
    s1->_age = 17;
    s1->_lang = 100;
    s1->_math = 99;
    s1->_english = 98;
    
    NSLog(@"s1对象的姓名是%@,年龄是 %d,语文是%d,数学是%d,英文是%d",
          s1->_name,
          s1->_age,
          s1->_lang,
          s1->_math,
          s1->_english);
}

<<:  内容交付网络(Content delivery network)

>>:  Day55. 访问者模式

Vaadin Pro Components 图表初探 - day26

目标 使用 Pro Components 制作图表 萤幕截图 汇出png图 Vaadin Chart...

鬼故事 - 糟了,是世界奇观

鬼故事 - 糟了,是世界奇观 Credit: Unkonwn (Skritch, Skritch) ...

Day 27 - Pwn 0x1

先欢迎各位来到整体难度最高的领域 在听这里之前 前面的逆向组语要先学好 还有对 OS 以及计算机概论...

Day 08 设置关键字的基本 sense

在设置关键字的时候,有些 NG 行为是不能犯的,今天就想跟大家聊聊,当我们在揣测消费者的心思时,哪些...

Day25 - LIFF 使用入门

LINE Developers:https://developers.line.biz/zh-ha...