OC简述:
(1)IOS开发的核心语言
(2)在C语言的基础上,对C封装,增加了面向对象的特性
(3)IOS开发也兼容C、C++混编
(4)OC源文件的扩展名为.m,(C源文件的扩展名为.h)
(5)OC中用NSLog函数打印输出
(6)编译器会将.m文件编译为.h目标文件(eg:main.m文件会被编译成main.o文件)
Xcode中的快捷键:
OC中使用
#import 导入源文件,eg:
#import
<Foundation/Foundation.h>
C语言中使用
#include 导入源文件,eg:
#include
<stdio.h>
//OC中
几种常用类型的定义:
//
整型
NSInteger a = 10 ;
NSLog ( @"a is %ld" ,a);
// 字符串
NSString *s = @"wxhl" ;
NSLog ( @"s is %@" ,s);
// 布尔型
BOOL b = true ;
NSInteger a = 10 ;
NSLog ( @"a is %ld" ,a);
// 字符串
NSString *s = @"wxhl" ;
NSLog ( @"s is %@" ,s);
// 布尔型
BOOL b = true ;
bool c = YES;
类 是抽象的概念,是对现实生活的描述。
对象 是具体的实体。是对类的实例化。
“人”类
|
属性(特征)
姓名
性别
年龄
|
方法(行为)
衣
食
住
行
|
对象的特征——属性,对象具有的特征,反映对象的信息(每个属性都有其特定值)
类是对象的类型,具有方法,所有属于同一各类的对象,都具有相同的特性和操作
/*定义一个Manager类,有两个属性:username(用户名)、password(密码).
写出两个属性的get、set方法。设计一个修改密码的方法。
*/
Mageter.h文件中:
#import
<Foundation/Foundation.h>
@interface
Manager :
NSObject
{
NSString
*_userName;
NSInteger
_password;
}
//set
方法
- (
void
)setUserName:(
NSString
*)username;
- (
void
)setPassword:(
NSInteger
)password;
//get
方法
- (
NSString
*)username;
- (
NSInteger
)password;
//
修改密码方法:
-(
void
)changePassword:(
NSInteger
)oldPassword;
@end
Manager.m文件中:
#import
"Manager.h"
@implementation
Manager
//set 方法
- ( void )setUserName:( NSString *)username{
_userName = username;
}
- ( void )setPassword:( NSInteger )password{
_password = password;
}
//get 方法
- ( NSString *)username{
return _userName ;
}
- ( NSInteger )password{
return _password ;
}
//set 方法
- ( void )setUserName:( NSString *)username{
_userName = username;
}
- ( void )setPassword:( NSInteger )password{
_password = password;
}
//get 方法
- ( NSString *)username{
return _userName ;
}
- ( NSInteger )password{
return _password ;
}
//
修改密码方法:
-(
void
)changePassword:(
NSInteger
)oldPassword{
if (oldPassword != _password ) {
NSLog ( @" 密码不正确,修改失败! " );
return ;
}
NSLog ( @" 请输入新密码: " );
NSInteger newPassword;
scanf ( "%ld" ,&newPassword);
_password = newPassword;
NSLog ( @" 修改成功! " );
// NSLog(@" 管理员信息: %@ %ld",_userName, _password);
[ self showInfo ];
}
- ( void )showInfo{
NSLog ( @" 管理员信息: %@ %ld" , _userName , _password );
}
if (oldPassword != _password ) {
NSLog ( @" 密码不正确,修改失败! " );
return ;
}
NSLog ( @" 请输入新密码: " );
NSInteger newPassword;
scanf ( "%ld" ,&newPassword);
_password = newPassword;
NSLog ( @" 修改成功! " );
// NSLog(@" 管理员信息: %@ %ld",_userName, _password);
[ self showInfo ];
}
- ( void )showInfo{
NSLog ( @" 管理员信息: %@ %ld" , _userName , _password );
}
@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 : 888888 ];
NSLog ( @" 请输入旧密码: " );
NSInteger oldPassword;
scanf ( "%ld" ,&oldPassword);
[manager changePassword :oldPassword];
}
return 0 ;
#import "Manager.h"
int main( int argc, const char * argv[]) {
@autoreleasepool {
Manager *manager = [[ Manager alloc ] init ];
[manager setUserName : @"admin" ];
[manager setPassword : 888888 ];
NSLog ( @" 请输入旧密码: " );
NSInteger oldPassword;
scanf ( "%ld" ,&oldPassword);
[manager changePassword :oldPassword];
}
return 0 ;
}
//若密码为字符串,则将密码的类型改为:NSString*_password;
Manager.m文件中修改密码部分:
NSLog(
@"
请输入新密码:
"
);
NSString *newPassword;
char *str = malloc( 10 );
scanf( "%s" ,str);
newPassword = [NSString stringWithCString:str encoding:NSUTF8StringEncoding];
_password = newPassword;
char *str = malloc( 10 );
scanf( "%s" ,str);
newPassword = [NSString stringWithCString:str encoding:NSUTF8StringEncoding];
_password = newPassword;
NSLog(@"
修改成功!
"
);
main.m文件中:
NSLog(
@"
请输入旧密码:
"
);
NSString *oldPassword;
// 从键盘接收字符串
char *str = malloc( 10 );
scanf( "%s" ,str);
oldPassword = [NSString stringWithCString:str encoding:NSUTF8StringEncoding];
NSString *oldPassword;
// 从键盘接收字符串
char *str = malloc( 10 );
scanf( "%s" ,str);
oldPassword = [NSString stringWithCString:str encoding:NSUTF8StringEncoding];
[manager changePassword:oldPassword];