20150609构造方法和self指针
来源:互联网 发布:mac可以玩什么国内网游 编辑:程序博客网 时间:2024/06/05 08:52
//
// Dog.h
// IOS150609_ObjectiveC_ConstructFunctionAndSelf
//
// Created by Peng Junlong on 15/6/9.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Dog : NSObject
{
NSString *_name;
NSInteger _age;
}
//构造方法必须以init开头,一般是initWithXxx,返回类型一定是id类型
//在一个类里面可以有多个构造方法, 但是一个对象只可以调用一次构造方法
//构造方法作用:(1).构造出来一个类的实例 (2).对构造出来个一个类的实例(对象)初始化。
//无参构造方法
- (id)init; //返回对象的地址
//带一个参数
- (id)initWithName:(NSString *)name;
- (id)initWithAge:(NSInteger)age;
//带两个参数
- (id)initWithAge:(NSString *)name andAge:(NSInteger)age;
//getter方法
- (NSString *)name;
- (NSInteger)age;
//setter方法
- (void)setName:(NSString *)name setAge:(NSInteger)age;
//类方法
+ (void)testDog;
@end
//
// Dog.m
// IOS150609_ObjectiveC_ConstructFunctionAndSelf
//
// Created by Peng Junlong on 15/6/9.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import "Dog.h"
@implementation Dog
- (id)init
{
if (self = [super init]) {
}
return self;
}
- (id)initWithName:(NSString *)name
{
if (self = [super init]) {
_name = name;
}
return self;
}
- (id)initWithAge:(NSInteger)age
{
if (self = [super init]){
_age = age;
}
return self;
}
- (id)initWithAge:(NSString *)name andAge:(NSInteger)age
{
if (self = [super init]){
_age = age;
_name = name;
}
return self;
}
- (void)setName:(NSString *)name setAge:(NSInteger)age
{
_name = name;
_age = age;
}
- (NSString *)name
{
return _name;
}
- (NSInteger)age
{
return _age;
}
+ (void)testDog
{
id dog = [self alloc];
dog = [dog initWithAge:@"小白" andAge:3];
NSLog(@"name = %@,age = %ld",[dog name],[dog age]);
}
@end
//
// Cat.h
// IOS150609_ObjectiveC_ConstructFunctionAndSelf
//
// Created by Peng Junlong on 15/6/9.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
//*************************
//* 类方法(+) *
//*************************
#import <Foundation/Foundation.h>
@interface Cat : NSObject
{
NSString *_name;
NSInteger _age;
}
+ (id)catCreate;
- (NSString *)name;
- (NSInteger)age;
- (void)setName:(NSString *)name setAge:(NSInteger)age;
@end
//
// Cat.m
// IOS150609_ObjectiveC_ConstructFunctionAndSelf
//
// Created by Peng Junlong on 15/6/9.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import "Cat.h"
@implementation Cat
+(id)catCreate
{
id cat = [[self alloc] init];
return cat;
}
- (NSString *)name
{
return _name;
}
- (NSInteger)age
{
return _age;
}
- (void)setName:(NSString *)name setAge:(NSInteger)age
{
_age = age;
_name = name;
}
@end
//
// Calculate.h
// IOS150609_ObjectiveC_ConstructFunctionAndSelf
//
// Created by Peng Junlong on 15/6/9.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Calculate : NSObject
+ (NSInteger)calculateSum:(NSInteger)x andX:(NSInteger)y;
@end
//
// Calculate.m
// IOS150609_ObjectiveC_ConstructFunctionAndSelf
//
// Created by Peng Junlong on 15/6/9.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import "Calculate.h"
@implementation Calculate
+ (NSInteger)calculateSum:(NSInteger)x andX:(NSInteger)y
{
return x+y;
}
@end
//
// main.m
// IOS150609_ObjectiveC_ConstructFunctionAndSelf
//
// Created by Peng Junlong on 15/6/9.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
//****************************
//* 构造方法与self指针 *
//****************************
#import <Foundation/Foundation.h>
#import "Dog.h"
#import "Cat.h"
#import "Calculate.h"
//#include 与 #import区别:
//1.#ifndef "Dog.h" #define "Dog.h" #endif 防止头文件被重定义
//2.用#import不需要担心头文件被重复包含,重复包含会报错;而#include则需要使用预编译指令
//@class打断循环链,防止循环包含
int main(int argc, const char * argv[]) {
@autoreleasepool {
[Dog testDog];
Dog *xiaohei = [[Dog alloc] initWithName:@"小黑"];
NSLog(@"name = %@,age = %ld",[xiaohei name],[xiaohei age]);
Cat *cat = [Cat catCreate];
[cat setName:@"小花" setAge:4];
NSLog(@"name = %@,age = %ld",[cat name],[cat age]);
NSLog(@"Sum = %ld",[Calculate calculateSum:4 andX:7]);
}
return 0;
}
- 20150609构造方法和self指针
- self 和 构造方法 类方法 实例方法
- python self、类、构造和析构方法 简单学习
- 黑马程序员-OC学习笔记-----self指针、点语法、构造方法、类别
- 对象与指针和self
- 一、类、对象、传值引用、$this关键字、静态属性和静态方法、self、构造方法、析构方法
- iOS 类方法 和self
- 构造方法和方法
- 构造方法和方法
- 构造函数和this指针
- this指针和构造函数
- 黑马程序员- 类方法和self
- self和[self class]
- Class<?> 方法和构造
- 08.黑马程序员-id指针、构造方法
- 07. self指针
- OC self指针
- 构造方法和方法重载
- Java枚举
- 如何在Java 8中愉快地处理日期和时间
- [Linux] git send-email的使用
- 使用maven搭建ssh框架静态资源路径
- Yii学习笔记之三(在windows 上安装 advanced )
- 20150609构造方法和self指针
- screenX clientX pageX的区别
- UIScrollView和UIPageControl的配合使用 - iOS - UI基础知识总结11
- 第四部分 开发工具及测试工具-内容来自互联网
- mpstat 命令详解
- L1范式和L2范式
- 名词从句的作用
- #298 (div.2) A. Exam
- Unity教程之手把手教你Animator状态机如何切换状态