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