1. 类的定义

>用关键字@interface进行声名  @end 结束

>所有的类有一个基类NSobject

>类名 也是标示符 第一个字母大写 如果多个字母组成 每个单词的首字母大写

>类名  冒号":"后  是父类(继承父类)

>成员变量 (属性)  用大括号{ }包含起来

>方法的声明用两种  +号表示类方法(类名调用)  -表示实例方法9(对象调用)

以下是Person类的声明:

#import <Foundation/Foundation.h>

@interface Person:NSObject{

//成员变量

//默认是受保护的  封装特性  不允许外面的变量进行访问

int grade;

@public

int age;

int numberId;

}

//1.方法必须 -号 或者 +号 开头

//2. -号 后面是函数的返回值

//3.方法名称

//4.变量

-(void)printPerson;

-(void)passedAge:(int)newAge;

//带两个参数的方法声明  理解:(void) 函数的返回值

//passedAge 对第一个参数的描述

//AndNumberId 对第二个参数的描述

-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId;

-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId AndGrade:(int)newGrade;

+(void)test;

@end

2.类的实现

>类的实现 采用关键字@implemention   以@end结束

以下为Person类的实现文件

#import "Person.h"

@implementation Person

-(void)printPerson{

NSLog(@"===实例方法===person info %d__%d",age,numberId);

}

-(void)passedAge:(int)newAge{

age = newAge;

NSLog(@"===实例方法===赋值===%d",age);

}

-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId{

age = newAge;

numberId = newNumberId;

NSLog(@"===实例方法===赋值===%d__%d",age,numberId);

}

-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId AndGrade:(int)newGrade{

age = newAge;

numberId = newNumberId;

grade = newGrade;

NSLog(@"===实例方法===赋值===%d__%d__%d",age,numberId,grade);

}

//类方法 (加号方法)

+(void)test{

NSLog(@"===用类名调用类方法===");

}

@end

3.调用Person类

>Person 发送一个new消息(调用new方法) 在系统里分配存储空间(堆空间)  并将存储空间的首地址返回   (创建对象)

在main函数里面调用  以下代码为Person类的调用

 

//创建person对象

Person *person = [Person new];

NSLog(@"===地址===地址===%p",person);

person->age = 10;

NSLog(@"===间指===%d",(*person).age);

NSLog(@"===间指===%d",person->age);

//通过对象去调用 printPerson方法 (实例方法)

[person printPerson];

//通过类名去调用  test方法 (对象方法)e

[Person test];

//对参数赋值  调用带参数的方法

[person passedAge:10];

[person passedAge:20 AndNuberId:30];

[person passedAge:40 AndNuberId:50 AndGrade:60];

//new == alloc init  创建两个对象 person1  person2

Person *person1 = [[Person alloc] init] ;

NSLog(@"===地址===地址===%p",person1);

Person *person2 = [Person new];

NSLog(@"===地址===地址===%p",person2);

OC学习--OC中的类--类的定义,成员变量,方法的更多相关文章

  1. 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型

    我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...

  2. java接口中定义成员变量

    //抽象类中可以定义如下成员变量:public abstract class People { public String name; public int age; public abstract ...

  3. OC学习总结之面向对象和类

    OC学习总结之面向对象和类   Objective-c是c语言的母集合,它的原意就是在原始的c语言的主体上加入面向对象的特性.1.面向对象和面向过程  面向对象和面向过程是编程的两种思考方式.面向对象 ...

  4. (转载)php的类中可以不定义成员变量,直接在构造方法中使用并赋值吗?

    (转载)http://s.yanghao.org/program/viewdetail.php?i=184313 php的类中可以不定义成员变量,直接在构造方法中使用并赋值吗? class block ...

  5. 带有public static void main方法的类,其中的成员变量必须是static的,否则main方法没法调用。除非是main里的局部变量。因为main方法就是static的啊。

    带有public static void main方法的类,其中的成员变量必须是static的,否则main方法没法调用.除非是main里的局部变量.因为main方法就是static的啊.

  6. 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解

    第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...

  7. JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置

    前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...

  8. OC学习——OC中的@protocol(@required、@optional)、代理设计模式

    一.什么是协议? 1.协议声明了可以被任何类实现的方法   2.协议不是类,它是定义了一个其他对象可以实现的接口   3.如果在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议.   4.协 ...

  9. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

随机推荐

  1. 20.Nodejs基础知识(上)——2019年12月16日

    2019年12月16日18:58:55 2019年10月04日12:20:59 1. nodejs简介 Node.js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触 ...

  2. 配置 Kibana

    Products Cloud Services Customers Learn downloads EN Docs Kibana 用户手册 » 搭建 » 配置 Kibana «  在 Windows ...

  3. Python实例教程

    转自:http://codingdict.com/article/9026 Python 100例-01 题目: 输有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? Python 1 ...

  4. B/S文件断点上传

    一.概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载.在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了.一般断点下载时才用到Range和Content- ...

  5. Ponds

    Ponds Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Sub ...

  6. map()函数用法

    需求:已知两个列表,现在要一个列表中的元素,分别全部插入另一个列表中,新列表是[[0, 9, 1], [0, 9, 2], [0, 9, 3], [0, 9, 4], [0, 9, 5], [0, 9 ...

  7. Centos6.5在线配置安装Java环境与Tomcat环境

        书写此文一来记录环境,以便后期查看使用,Linux环境下配置centos与Java开发环境 本文环境:虚拟机系统centos6.5   链接工具:xshell脚本链接工具 一.安装Java开发 ...

  8. 多行文本溢出隐藏处理,兼容ie,火狐

    问题 多行文本溢出隐藏,webkit内核浏览器如谷歌支持如下写法: overflow: hidden; text-overflow: ellipsis; display: -webkit-box; - ...

  9. Oracle命令行模式,批量执行SQL脚本

    由于项目不同,使用的数据库也不一样,通常MySQL 比较方便简介,相对而言Oracle比较繁琐一点,尤其是堡垒机的连接的时候, 通过堡垒机登陆,数据库服务器,通过下面的脚本执行进入到命令行模式执行SQ ...

  10. spring-cloud zuul网关

    API Gateway 是随着微服务(Microservice)这个概念一起兴起的一种架构模式,它用于解决微服务过于分散,没有一个统一的出入口进行流量管理的问题. 使用 Zuul 实现 API Gat ...