黑马程序员————OC面向对象_类和对象(下)

时间:2023-02-18 17:50:13
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、面向对象和面向过程
1.区别
面向对象:关注的是解决问题需要哪些对象 面向过程:关注的是解决问题需要哪些步骤
2.常用术语
    /*

面向过程:Procedure oriented
面向对象:object oriented 简称oo
面向对象编程:object oriented programming 简称 oop

*/

二、类和对象的关系
1.OC中的面向对象
1)类是对无数对象相同属性的概括 2)OC利用类来创建对象,对象是类的具体存在 3)面向对象解决问题应该是先考虑需要设计哪些类,在利用类创建多少个对象
2.需要设计哪些类,如何设计类
<pre name="code" class="objc">     /*
类的设计只关心3样东西
1)事物名称(类名):人(person)
2)属性:身高(height)、年龄(age)
3)行为(功能):跑(run)、打架(fight)
*/


3.一般名词都是类,拥有相同(或者类似)属性和行为的对象都可以抽象出有一个类 4.类的设计 1.类名 1)类名的第一个字母必须大写 2)不能有下划线 3)多个英文单词,用驼峰标识 三、定义类 完整的写一个函数:函数的声明和定义(实现) 完整的写一个类:类的声明和实现 1.类的声明 声明对象的属性和行为
@interface Person : NSObject
{
// 可以让外部指针间接访问成员变量
@public

// 成员变量默认初始化为0(实例变量)
int _height;
int _age;
}
-(void)walk;

@end

2.类的实现
@implementation Person

// 方法的实现

@end
#import <Foundation/Foundation.h>#import "Person.h"int main() {    // 利用类来创建对象    [Person new];        // 执行了Person这个类的new行为来创建新对象    Person *p = [Person new];        p->_age = 18;    p->_height = 1.7;        NSLog(@"%d岁,%f米的人在走路",p->_age,p->_height);        return 0;}


2015-04-23 13:06:27.791 面向对象[32923:2854768] 18岁,1.700000米的人在走路

3.对象的行为
1)方法(实现):方法名、参数、返回值(声明、实现) 2)要是oc对象的方法,必须以减号开头 3)oc方法中的小括号(),用来括住数据类型
@implementation Person

// 方法的实现(说清楚方法里面有什么代码)
- (void)walk
{
NSLog(@"人在走路");
}

@end

// 给p所指向的对象发送一条walk消息
[p walk];

2015-04-23 14:23:59.673 面向对象[32942:2860234] 人在走路

四、OC函数与方法的区别(有本质区别)
1.方法的实现只能写在implementation和end之间
@implementation Person

// 方法的实现(说清楚方法里面有什么代码)

@end


2.对象方法都是以-开头 3.对象方法的声明必须写在interface和end之间
@interface Person : NSObject
{
// 定义成员变量
}

// 方法的声明
- (void)walk;

@end


4.对象方法只能当做对象来调用 5.对象方法归类/对象所有
6.函数能写在文件的任意位置(@interface和end之间除外)函数归文件所有 7.函数调用不依赖于对象 8.函数内部不能直接通过成员变量名来访问某个对象的成员变量

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------