iOS开发学习_OC基础_(一).类、对象和方法(1)

来源:互联网 发布:mac视频播放器推荐 编辑:程序博客网 时间:2024/05/16 10:32

目录:
1.面向对象与面向过程简介
2.类与对象的概述
3.类的定义、属性与方法的定义
4.对象的创建与方法的调用
5.例题

正文:

1.面向对象与面向过程简介

面向对象和面向过程是两种不同的编程思想,程序的实现是模拟现实中的事物和场景,面向对象和面向过程是两种不同的模拟思维方式。

面向对象:考虑构成问题的事物由哪些对象组成。
面向过程:考虑解决问题所需要经过的步骤,要实现的功能。

例如实现一个音乐播放器:面向过程首先考虑它由显示屏对象、播放器对象和电池对象等对象组成,再实现每个对象的属性和方法。面向对象首先考虑它有播放、上一首、下一首和增加音量等功能,再用多个函数将功能实现。

2.类与对象的概述

类就是同一类型事物的总称,例如手机、电脑、水杯、笔记本、耳机等等都是泛指,都可以代表某一类。

对象是类的具体化,例如具体的某人的某一部手机、某一台电脑、某一个水杯等等独一无二的存在就可以说它是一个对象。

3.类的定义、属性与方法的定义

步骤:定义类名,编写类的属性,编写类的方法。

// Person:类名  NSObject:父类@interface Person : NSObject{// 属性:前面是类型,后面是属性名。    NSString *_name;    NSInteger _age;    float _weight;}// 定义方法,方法分类方法与实例方法,“-”为实例方法,由对象调用;“+”为类方法,由类名调用。(void)\(NSString *)方法的返回值类型。setName:\name方法名。后面是参数类型和参数名。-(void)setName:(NSString *)name;-(NSString *)name;+(void)show;@end@implementation Person//方法的实现部分-(void)setName:(NSString *)name{    if(_name!=name){        _name=name;    }}-(NSString *)name{    return _name;}-(void)show{    NSLog(@"这是类方法");}@end

4.对象的创建与方法的调用

//alloc是一个类方法//alloc在内存中申请一块内存区域,存储对象的信息Person *person=[Person alloc];//init是一个实例方法//init初始化此对象占用的内存,即清理内存person=[person init];//上面两步合成一步创建一个对象Person *person=[[Person alloc]init];

实例方法的调用:[对象 方法];
类方法的调用:[类名 方法];

[person setName:@"张三"];[Person show];

5.例题

例题
Manager.h文件

import <Foundation/Foundation.h>@interface Manager : NSObject{    NSString *_userName;    NSString *_passWord;}-(void)setUserName:(NSString *)userName;-(void)setPassWord:(NSString *)passWord;-(NSString *)userName;-(NSString *)passWord;-(BOOL)changePassWord;@end

Manager.m文件

import "Manager.h"@implementation Manager-(void)setUserName:(NSString *)userName{    if(_userName!=userName){        _userName=userName;    }}-(void)setPassWord:(NSString *)passWord{    if(_passWord!=passWord){        _passWord=passWord;    }}-(NSString *)userName{    return _userName;}-(NSString *)passWord{    return _passWord;}-(BOOL)changePassWord{    BOOL b=true;    NSLog(@"请输入旧密码:");    char pass[10];    scanf("%s",pass);    NSString *inputPass=[NSString stringWithFormat:@"%s",pass];    if(![inputPass isEqualToString:_passWord]){        NSLog(@"密码不匹配,修改失败!!!");        b=false;    }else{        NSLog(@"请输入新密码:");        scanf("%s",pass);        _passWord=[NSString stringWithFormat:@"%s",pass];        NSLog(@"修改成功!");    }    return b;}@end

main.m文件

import <Foundation/Foundation.h>import "Manager.h"int main(int argc, const char * argv[]) {    @autoreleasepool{         Manager *manager=[[Manager alloc]init];        [manager setUserName:@"admin"];        [manager setPassWord:@"123456"];        char c;        NSLog(@"是否修改密码(y/n):");        scanf("%c",&c);        if(c=='y'){            if([manager changePassWord]){                NSLog(@"当前管理员信息为:%@   %@",manager.userName,manager.passWord);            }        }    }    return 0;}
0 0
原创粉丝点击