OC类和对象-定义类

Object-C技术学习,更多资源请访问 https://www.itkc8.com

//  main.m

//  OC面向对象

//

//  Created by Goddog on 15/1/2.

//  Copyright (c) 2015年 Goddog. All rights reserved.

//

/*

    1.Object-C 支持面向对象的三大特征:继承、封装、多态。

    2.提供了@private、 @package 、@protected、@public访问控制符来实现封装

 */

/*

    1.定义类:<1>.接口部分:a.定义该类包含的成员变量和方法。

                         b.用@interface声明定义的接口部分,@end表明定义结束。

                         c.接口部分的源代码应该命名为  *.h文件

             <2>.实现部分:为该类的方法提供实现。

                         a.实现部分的源代码应该命名为 *.m文件

    2.成员变量语法格式:类型成员变量名

             <1>.类型:OC允许的任何数据类型,包括基本类型、构造类型、指针类型。

             <2>.成员变量名 :建议成员变量用下划线(_)开头。

    3.方法声明的语法:<1>方法类型的标识分为+(代表该方法是类方法,类名调用),-(代表该方法是实例方法,对象调用)。

                   <2>方法返回值类型:可以是OC任何数据类型,如果没有返回值用void来声明没有返回值。

                   <3>方法签名关键字:由方法名、形参标签、冒号组成,如:insertObject:(id)

                   <4>OC的方法签名有特殊意义,如foo是一个不带形参的声明方法,foo:是带一个形参的声明方法,

                      foo:bar:是代表两个形参的声明方法。

    4.实现部分:<1>实现部分的类名必须与接口部分的类名相同

              <2>实现部分也可以在类名后用“:父类”来继承某个父类(很少这样做)。

              <3>类实现部分也可以声明自己的成员变量,但这些成员变量只能在当前类中使用。

              <4>类实现部分必须为类的声明部分的每个方法提供方法定义。

 

 */

 

 

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    return 0;
}

 

//
//  Person.h
//  OC面向对象
//
//  Created by Goddog on 15/1/2.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//
/*
 定义部分
 */

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    //定义成员变量
    NSString* _name;
    int _age;
}

//定义一个setName: andAge:方法
-(void) setName:(NSString*) name andAge:(int) age;

//下面定义一个say方法,并不提供实现
-(void) say:(NSString *) content;

//下面定义一个不带形参数的方法
-(NSString*) info;

//定义一个类方法
+(void) foo;

@end

 

//
//  Person.m
//  OC面向对象
//
//  Created by Goddog on 15/1/2.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//
/*
 实现部分
 */

#import "Person.h"

@implementation Person
{
    //定义来一个只能在实现部分使用的成员变量(被隐藏的成员变量)
    int _testAttr;
}

//实现一个setName: andAge: 方法
-(void) setName:(NSString *)name andAge:(int)age
{
    _name = name;
    _age = age;
}

//下面实现了一个say方法
-(void) say:(NSString *)content
{
    NSLog(@"%@",content);
}

//下面实现了不带形参的info方法
-(NSString*) info
{
    [self test];    //self是调用该方法的对象
    return [NSString stringWithFormat:@"姓名:%@,  年龄%d",_name,_age];
}

//定义一个只能在实现部分使用的方法(被隐藏的方法)
-(void) test
{
    NSLog(@"--只能在实现部分使用的方法----");
}

//实现了一个类方法
+(void) foo
{
    NSLog(@"类的方法,通过类名调用,类似Java");
}

@end

 

Object-C技术学习,更多资源请访问 https://www.itkc8.com

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值