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
- iOS开发学习_OC基础_(一).类、对象和方法(1)
- 黑马程序员_OC基础02_类和对象
- 黑马程序员_OC基础02_类和对象
- 黑马程序员_OC基础01_面向对象
- 黑马程序员_OC基础03_类的方法及self关键字
- 黑马程序员_OC基础03_类的方法及self关键字
- 黑马程序员_OC面向对象之类和对象基础
- 黑马程序员_OC学习之类方法与对象方法
- 黑马程序员_OC基础07_类的本质
- iOS开发之OC语法基础(一)--类和对象
- Java基础学习7_类和对象
- 黑马程序员_OC构造方法和ID类型学习学习
- iOS笔记之_OC面向对象语法1
- 黑马程序员_OC基础10_内存管理(多对象)
- 黑马程序员_OC基础04_面向对象三大特性
- 黑马程序员_OC基础05_分类
- iOS开发>>>类&对象基础
- 黑马程序员_OC面向对象思想和类的创建
- js 三元表达式
- 通过javascript 获取当前地理位置 所在城市
- Java中的静态内部类与非静态内部类的区别
- 设计模式(10)——组合模式(Composite Pattern)
- Centos 6.7 下安装git 各种累心折腾
- iOS开发学习_OC基础_(一).类、对象和方法(1)
- 聚焦Web设计
- 在ubuntu上安装kubernetes
- Xcode 打印中文结果
- 设计模式(11)——外观模式(Facade Pattern)
- eclipse调试java程序的九个技巧
- 第3章 洞察他人内心的心理策略
- 利用压缩软件制作插件安装包
- for循环中的分批提交到数据库代码