4.0OC6-self、自动释放、变量作用域
类
方法的声明和实现,都可以以 + 或者 - 开头
+ 表示类的方法(静态方法)
- 表示对象方法(动态方法)
在.h中声明的所有方法都是public类型(通过Category可以实现private)
变量的作用域
@public全局都可以访问
@protected只能在类内部和子类中访问
@private只能在类内部访问
变量必须定义在类的{ } 中
-----------main.m-------------
//
// main.m
// 构造方法
//
// Created by liuyes on 13-12-8.
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
//char *s = "itcast"; C语言中字符串
NSString *str = @"itcast"; //OC中的字符串
Student *stu = [[Student alloc] initWithAge:15 andNo:10];
NSLog(@"%@", stu); //%@表示打印的内存地址
//NSLog(@"age is %i and no is %i", stu.age, stu.no);
[stu release];
}
return 0;
}
-----------Student.h-------------
//
// Student.h
// 构造方法
//
// Created by liuyes on 13-12-8.
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Student : NSObject{
int _age;
int _no;
}
- (void)setAge:(int)age;
- (int)age;
- (void)setNo:(int)no;
- (int)no;
//自己写一个构造方法
- (id)initWithAge:(int)age andNo:(int)no;
@end
-----------Student.m-------------
//
// Student.m
// 构造方法
//
// Created by liuyes on 13-12-8.
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import "Student.h"
@implementation Student
- (void)setAge:(int)age{
_age = age;
}
- (int)age{
return _age;
}
- (void)setNo:(int)no{
_no = no;
}
- (int)no{
return _no;
}
//实现构造方法
- (id)initWithAge:(int)age andNo:(int)no{
//首先要调用super的构造方法
self = [super init];
//如果self不为nil
if(self != nil){
_age = age;
_no = no;
}
return self;
}
//重写父类的description方法
//当使用%@带打印一个对象的时候,回调用这个方法
-(NSString *)description{
NSString *str = [NSStringstringWithFormat:@"age is %i, and no is %i", _age, _no];
return str;
}
//如果直接把方法写在.m文件中,没有在.h文件中进行声明,那么这就是私有方法
//谁调用方法,self就指向谁
- (void)test{
int age = self.age;
}
+ (void)test2{
[Student alloc];
[self alloc];
//上面两句代码师等效的
}
@end
-----------GoodStudent.h-------------
//
// GoodStudent.h
// 构造方法
//
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import "Student.h"
@interface GoodStudent : Student
@end
-----------GoodStudent.m-------------
//
// GoodStudent.m
// 构造方法
//
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import "GoodStudent.h"
@implementation GoodStudent
//子类访问了父类的成员变量
- (void)test{
_age = 10;
}
@end
相关推荐
OC-单例OC-单例OC-单例OC-单例OC-单例
黑苹果一键生成工具OC-GEN-X 0.7.7
OC-自动释放池的使用
3DTouch综合教程OC+Swift4.0,对3DTouch感兴趣的同学有很大的帮助。
外星人灯光控制插件。Alienware-OC-Controls-Application。
MacOS开发(OC)----NSTableView类相关属性跟方法附件
MacOS开发(OC)----NSCollectionView类相关属性跟方法附件
OC-little 内含多种DDST SSDT补丁 用于修复黑苹果硬件信息使用。
OC引导-剑客主题.zip
OC引导-蕾姆主题.zip
OC5864-DS01CN
OC2006-DS01CN
OC引导-樱瞳主题.zip
GPS追踪器,电动车控制器,车载充电器,POE交换机分离器,LED照明驱动
oc渲染器
前端开源库-oc-empty-response-handleroc空响应处理程序,空响应用例的处理程序
block,局部变量,全部变量,static的静态变量关系
JD-TB081S 上模 OC15006-002-02.STEP.step
OC-图片浏览器
OC icon-font,节省空间,节约设计成本.zip,目标C的图标字体库