zoukankan      html  css  js  c++  java
  • 【好程序员训练营】Objective-C学习笔记______类和对象的使用

    <A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流!
    //
    // main.m // 类和对象 // // Created by apple on 15/5/30. // Copyright (c) 2015年 apple. All rights reserved. // #import <Foundation/Foundation.h> @interface Computer : NSObject //定义电脑这么一个类 { @public NSString *namec; //定义一个NSString类型名为namec的引用,用于指向一个字符串 } - (id) init:(NSString *)name; //定义一个初始化函数 - (void) open; //定义一个开机函数 - (void) close; //顶一个关机函数 @end @interface Person : NSObject //定义人这么一个类 { @public NSString *namep; @public int age; } - (id) init:(NSString *)name:(int)age; //定义初始化函数,参数为指针型的name和int型的age - (void) introduce; //定义一个自我介绍的函数 - (void) study:(Computer *)computer; @end @implementation Person //将上面定义的人这个类实现 - (id) init:(NSString *)name:(int)newage{ //按格式将初始化函数复写 self = [super init]; if(self){ namep = name; // 将形参name的值赋给类的namep字段 age = newage; // 将形参newage的值赋给类的age字段 } return self; } - (void) introduce{ //将自我介绍函数复写 NSLog(@"my name is %@ im %d years old",namep,age); //NSLog输出格式NSLog(@“输出内容”,参数)类似printf } - (void) study:(Computer *)computer{ //这里的Computer *是定义一个对象的引用,而不是指针 [computer open]; NSLog(@"i am studing"); [computer close]; //调用computer对象的close方法 } @end @implementation Computer             //将电脑这个类实现 - (id) init:(NSString *)name{ self = [super init]; if(self){ namec = name; } return self; } - (void) open{ NSLog(@"%@ have turn on !",namec); } - (void) close{ NSLog(@"%@ have be shutdown !",namec); } @end int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"apple"); } Person *zhangxueyou = [[Person alloc] init:@"zhangxueyou":21]; //1 Computer *apple = [[Computer alloc] init:@"apple"]; //2 [zhangxueyou introduce]; //对象张学友执行introduce这个方法 [zhangxueyou study:apple]; //对象张学友执行study这个方法,study用的是apple这台电脑 return 0; }

    上面程序中注释为‘ 1 ’

    那一行的意思是:[Person alloc]生成一个对象,并且这个对象执行后面的初始化函数init:@“zhangxueyou”:21,通过初始化函数把名字 zhangxueyou年龄21赋给这个对象,最后将创建好的对象赋给前面创建的引用zhangxueyou

    注释为‘ 2 ’的那行代码意思同‘1’

    最后顺便提一下NSLog(NSString *format,参量列表)跟printf(“格式化字符串”,参量列表)的区别:

      NSLog完全具备printf的功能,而printf只能打印纯C语言的变量,不能打印一些NSObject类型的对象,NSLog

      1.NSLog会自己加上换行符

      2.NSLog在Debug下会写到system.log中

      3.NSLog会自动加上时间和进程信息.

      4.NSLog支持%@去打印一个对象类型,当使用%@时,它会给对象发送消息description,所以如果你组合了一个新的类,你可以通过给自己重载description来实现打印DBUG信息

  • 相关阅读:
    Redis源码分析(十二)--- redis-check-dump本地数据库检测
    Redis源码分析(十二)--- redis-check-dump本地数据库检测
    Redis源码分析(十二)--- redis-check-dump本地数据库检测
    Redis源码分析(十三)--- redis-benchmark性能测试
    Redis源码分析(十四)--- rdb.c本地数据库操作
    Redis源码分析(十三)--- redis-benchmark性能测试
    Redis源码分析(十四)--- rdb.c本地数据库操作
    Redis源码分析(十四)--- rdb.c本地数据库操作
    去除移动端点击事件出现的背景框 tap-highlight-color
    php源码分析之PHPAPI宏的作用
  • 原文地址:https://www.cnblogs.com/ITLiu/p/4540279.html
Copyright © 2011-2022 走看看