oc学习--oc中的类--类的定义,成员变量,方法

nnn小样 nnn小样     2022-10-22     754

关键词:

 

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中用类来描述事物也是如此属性:对应类中的成员变量。行为:对应类中的成员方法。定义类其实在定义类中的成员(成员变量和成员方法)2.如何分析一个类一般名词都是类(名词提炼法)飞机发射两颗炮弹摧毁了8辆... 查看详情

oc方法和文件编译

...5)设计一个学生类和狗类,练习对象方法的使用。学生类的声明: 学生类的实现: 狗类的声明: 狗类的实 查看详情

oc基础

OC语言是单继承语言。在oc语言中,基本上所有类的根类都是NSObject类。点语法的本质是方法的调用,而不是访问成员变量,当使用点语法时,编译器会自动展开成相应的方法。切记点语法的本质是转换成相应的set和get方法,如果... 查看详情

oc中类目延展和协议

Category:也叫分类,类目。  *是为没有源代码的类扩充功能  *扩充的功能会成为原有类的一部分,可以通过原有类或者原有类的对象直接调用,并且可继承  *该方法只能扩充方法,不能扩充实例变量  *添加的类目是一... 查看详情

ios学习-02oc--属性与函数(代码片段)

1、创建类和对象(1)创建newFile->CocoaClass->之后会生成一个.h文件和一个.m文件(2)对象创建导入h文件import“xxx.h”初始化推荐alloc方式,方法调用方式为[类名方法名]2、成员变量与属性成员变量:类内使用成员... 查看详情

转oc温故:类的三大特性(封装,继承,多态)

原文标题:OC学习篇之---类的三大特性(封装,继承,多态)我们都知道,面向对象程序设计中的类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性:一、封装封装... 查看详情

oc-category为什么不能添加成员变量

...而已:1.利用运行时实际上也不是添加成员变量。已编译的类的内存布局是不变的,Class就是一个结构体,里面的成员不能改变。但是通过运行时可以将一个对象或基础类型变成指定Class对象的一个关联对象,他们两者的内存布局... 查看详情

oc学习篇之---类的初始化方法和点语法的使用

一、首先来看一下类的初始化方法在Java中我们知道一个每个类都有构造方法,这里的初始化方法就是和构造方法一个概念的,但是这里有一个区别是:Java中有默认构造方法,当我们去自定义构造方法的时候,这个默认构造方法... 查看详情

oc中的静态成员变量

代码:main.m:#import<Foundation/Foundation.h>#import"MyObject.h"intmain(intargc,constchar*argv[]){@autoreleasepool{[MyObjectsetFlag:YES];NSLog(@"%@",[MyObjectflag]?@"YES":@"NO");}return0;}MyObject. 查看详情

oc-04-类的声明和实现

...的实现,+表示类方法静态方法,-表示对象方法。.h文件中的方法都是public不能更改的。变量3中访问域:public,protected(子类),private(本类)。#import<Foundation/Foundation.h>//声明类@interfacePerson:NSObject(父类名){// 查看详情

oc开发系列-成员变量的作用域(代码片段)

...每一种作用域对应着响应的关键字。*@private:自能在当前类的实现@implementation中访问*@protected:可以在当前类以及子类的实现@implementation中直接访问默认*@public:任何地方都可以直接访问*@package:同一个"体系结构"框架可以访问。介于... 查看详情

ios学习-02oc--封装继承多态

封装//成员变量方案修饰符问题1、@public:公有-在类内类外都可以使用并且可以被继承2、@private:私有-在类内可以使用,类外无法调用,并且不可被继承3、@protected:受保护-在类内可以使用,类外无法... 查看详情

oc类的结构分析

...构大致如下类其实也是一种对象我们称之为类对象类对象的类是元类这里的isa指向的就是元类顾名思义就是当前类的父类这里缓存的是已经调用过的方法方便再次调用时能快速查找bits调用data()函数会返回一个class_rw_t的结构体数... 查看详情

20165303第四周学习总结

基本知识点java中类的继承知识点类的继承知识点:(1)java不支持多重继承,也就是说子类至多只能有一个父类(2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法(3)子类中定义的成员变量... 查看详情

swift学习第十一天:类的定义

一:主要内容类的介绍和定义类的属性类的构造函数一.类的介绍和定义Swift也是一门面向对象开发的语言面向对象的基础是类,类产生了对象在Swift中如何定义类呢?class是Swift中的关键字,用于定义类class类名:SuperClass{//定义属性和... 查看详情

oc中的属性特性

 看官们,我们在前面章回中介绍了OC中的内存管理,本章回中将介绍OC中的属性特性。首先说一下属性表示类中的属性,有时也叫类的成员或者变量,特性是对属性的修饰。这里说的“特性”是从attribute翻译过来... 查看详情

oc类对象/实例对象/元类解析

...储内容如图:先来看控制台提供给我们的.存储内容如图:OC的类方法是使用元类的根本原因,而这也是元类中存储的最重要的内容.当你给类发消息时,消息是在寻找这个类的元类的方法列表.类对象是元类的实例.因此元类存储着类方... 查看详情