//
// main.m
// ObjTest1
//
// Created by Mac i on 12-7-27.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
// 类申明 继承自NSObject
@interface Dog : NSObject
{
int age;
NSString* name;
}
//不带参数
-(void) show;
//带一个参数
-(void)setAge:(int)age;
-(void) setName:(NSString*)name;
//带两个参数
-(void)setAll:(int)age:(NSString*) name;
@end
//类实现
@implementation Dog
//1、类实现函数的顺序可以和类申明中函数的顺序不一样
-(void)show
{
//格式化输出
NSLog(@"My name is %@,I am %d years old!",name, age);
//调用私有函数
[self run];
}
//为了类变量名与函数参数不重复,可以在实现中,重命名参数名
-(void)setAge:(int)a
{
age = a;
}
-(void) setName:(NSString *)n
{
name = n;
}
-(void)setAll:(int)a:(NSString*) n
{
age = a;
name = n;
}
//2、类申明中没有申明的函数,也可以直接在类实现部分实现。可以把它看做使私有方法,只能在该类中使用。
-(void) run
{
NSLog(@"I am running");
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
//定义一个NSString的字符串
NSString* name = @"XiaoHua";
//申明一个范型对象
id dog;
//将对象实例化
dog = [Dog new];
//使用对象的类函数对对象数据进行初始化
[dog setAge:5];
[dog setName:name];
//显示数据
[dog show];
[dog setAll:10 :@"XiaoMing"];
[dog show];
}
return 0;
}
//注:Objc中不存在真正的私有方法,也无法使用某个标示来限定为私有方法,从而禁止其他代码调用它,这是Objc动态副本的副作用。