Object-C【01】OC语言简述

来源:互联网 发布:cmd怎么运行java程序 编辑:程序博客网 时间:2024/05/17 18:24
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;
        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"
@implementationManager
//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(@"请输入新密码:");
   
NSIntegernewPassword;
   
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 = [[Manageralloc]init];
       
        [manager
setUserName:@"admin"];
        [manager
setPassword:888888];
       
NSLog(@"请输入旧密码:");
       
NSIntegeroldPassword;
       
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;
    NSLog(@"修改成功!");
main.m文件中:
        NSLog(@"请输入旧密码:");
        NSString *oldPassword;
       
//从键盘接收字符串
       
char*str = malloc(10);
        scanf(
"%s",str);
        oldPassword = [NSString stringWithCString:str encoding:NSUTF8StringEncoding];
        [manager changePassword:oldPassword];
0 0