Student.h:

#import <Foundation/Foundation.h>

@interface Student : NSObject

@property(nonatomic,retain) NSString * name;

@property(nonatomic,assign) int age;

@end

Student.m:

#import "Student.h"

@implementation Student

//动态方法,在main函数中类alloc了之后调用,但是要手动管理内存,要手动释放

-(id) initWithAge:(int)age{

    if (self == [super init]) {

        _age = age;

    }

    return self;

}

//静态构造方法,在main函数中不需要你手动管理内存释放

+(id)studentWithAge:(int)age{

    Student *stu = [[[Student alloc] init] autorelease];\

    stu.age = age;

    return stu;

}

-(NSString *)description{

    return [NSString stringWithFormat:@"name:%@ age:%i创建了",_name,_age];

}

-(void)dealloc{

    NSLog(@"name:%@ age:%i被释放了",_name,_age);

    [_name release];

    [super dealloc];

}

@end

  

main

 1 #import <Foundation/Foundation.h>
2
3 #import "Student.h"
4
5 int main(int argc, const char * argv[])
6
7 {
8
9 @autoreleasepool {
10
11 //动态方法需要手动释放内存
12
13 Student *stu1= [[Student alloc] initWithAge:10];
14
15 stu1.name = @"dingxiaowei";
16
17 NSLog(@"%@",stu1);
18
19 [stu1 release];
20
21 //静态构造方法不需要你管理内存
22
23 Student *stu2 =[Student studentWithAge:20];
24
25 stu2.name = @"wangning";
26
27 NSLog(@"%@",stu2);
28
29 }
30
31 return 0;
32
33 }

  

结果:

OC对象的动态和静态构造区别的更多相关文章

  1. OC对象,自动释放池,OC与C语言的区别

    在C语言中,编程都是面向过程的编程,每一个代码块都严格按照从上至下的顺序执行,在代码块之间同样也是这样, 但是在OC中往往不是这样,OC和C++.java等语言一样,都是面向对象的编程语言,在代码的执 ...

  2. C++ 类对象和 指针的区别

    C++ 类对象和 指针的区别 C++ 类对象和 指针的区别 转自:http://blog.csdn.net/ym19860303/article/details/8557746 指针的情况 class ...

  3. 【OC底层】OC对象本质,如 isa, super-class

    Objective-C的本质 1.我们编写的Objective-C,底层现实都是C/C++,代码生成步骤如下:   2.在OC中的所有面向对象的实现,都是基于C/C++的数据结构实现的 3.将Obje ...

  4. jQuery介绍 DOM对象和jQuery对象的转换与区别

    jQuery介绍 DOM对象和jQuery对象的转换与区别 jQuery介绍      jQuery: http://jquery.com/      write less, do more.   j ...

  5. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  6. IOS基础之 (四) OC对象

    一 建立一个OC的类 完整的写一个函数:需要函数的声明和定义. 完整的写一个类:需要类的声明和实现. 1.类的声明 声明对象的属性和行为 #import <Foundation/Foundati ...

  7. OC 对象和匿名对象

    OC 对象和匿名对象 对象和匿名对象的定义: 当new出一个对象时,如果用一个指针接收这个对象,那么这个指针通常被称为对象. 如果new出的对象,不用指针接收,那么这个对象就称为匿名对象. #impo ...

  8. iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合

    1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...

  9. page,request,session,application四个域对象的使用及区别

    转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束, ...

随机推荐

  1. Visual Studio与Chrome调试工具使用技巧

    VS: 1: Ctrl + Enter (在光标指定位置的上面添加一行,并将光标移至新添加行的行首位置) Ctrl + Shift + Enter (在光标指定位置的下面添加一行,并将光标移至新添加行 ...

  2. close与shutdown函数

    linux网络编程之socket(十):shutdown 与 close 函数的区别  http://blog.csdn.net/yijiu0711/article/details/17349169 ...

  3. Debian上安装Apache+Django全过程

    -->start sudo apt-get install apache2 libapache2-mod-wsgi #https://wiki.debian.org/zh_CN/Apache s ...

  4. springMVC 访问404

    问题:404 但是其他的controller可以访问!!!

  5. C++复制控制

    1.复制构造函数可用于: (1)根据另一个同类型的对象显示或隐式初始化一个对象 string str1="test";   //隐式 string str2=str1; //显示 ...

  6. Qt QThread 多线程使用

    一.继承QThread 使用方法 1.创建个继承QThread的类. #ifndef MYTHREAD_H #define MYTHREAD_H #include <QObject> #i ...

  7. static cross compile gtk-2.16.6+gtk-directfb+arm-linux (arm-linux-gcc-3.4.4+glib-2.3.5)

    ----------------------------------------------------------------------- In Ubuntu 10.4 Desktop and & ...

  8. Match:DNA repair(POJ 3691)

    基因修复 题目大意:给定一些坏串,再给你一个字符串,要你修复这个字符串(AGTC随便换),使之不含任何坏串,求修复所需要的最小步数. 这一题也是和之前的那个1625的思想是一样的,通过特殊的trie树 ...

  9. 【leetcode】Copy List with Random Pointer (hard)

    A linked list is given such that each node contains an additional random pointer which could point t ...

  10. 【XLL API 函数】xlUDF

    调用用户定义函数,这个函数允许DLL 调用 VBA 中的用户定义函数,XLM 宏语言函数,以及在其它 add-ins 中注册的函数. 原型 Excel12(xlUDF, LPXLOPER12 pxRe ...