【OC基础】01-类的声明和实现

一、语法简介

1.类

在OC中,一般用二个文件描述一个类,一个是.h文件,一个是.m文件爱你:

1>:.h文件是类的声明文件,用于声明变量和方法。类的声明使用关键字@interface和@end。

2>:.m文件是类的实现文件,用于实现.h类中声明的方法。类的实现使用关键字@implementation和@end。

2.方法

1> 方法的声明和实现,都必须以 + 或者 - 开头

  • + 表示类方法(静态方法)
  • - 表示对象方法(动态方法)

2> 在.h中声明的所有方法作用域都是public类型,不能更改

3.成员变量

成员变量的常用作用域有3种:

1> @public 全局都可以访问
2> @protected 只能在类内部和子类中访问
3> @private 只能在类内部访问

二、类的声明和实现

1.Student.h类的声明文件

 1 #import <Foundation/Foundation.h>
 2
 3 @interface Student : NSObject {
 4
 5     int age;
 6     @public
 7     int no;
 8     int score;
 9
10     @protected
11     float height;
12
13     @private
14     float weight;
15 }
16 - (int)age;
17 - (void)setAge:(int)newAge;
18 - (void)setAge:(int)newAge :(float)newHeight;
19 @end

1>第3行:用@interface声明一个类Student,后面紧跟着的:表示继承与NSObject

2>第5行:定义了一个int类型的成员变量age,age的默认作用域是@protected,即可以在Student类内部和子类中访问

3>第16行:声明了age的get方法,方法名就叫做age,OC建议get方法的名字跟成员变量保持一致。- 表示这是一个动态方法( + 则表示静态方法),动态方法属于对象,静态方法属于类。

4>地18行:方法的方法名是setAge:andHeight:

2.Student.m的实现文件

 1 #import "Student.h"
 2
 3 @implementation Student
 4
 5 - (int)age {
 6     NSLog(@"age...");
 7     return age;
 8 }
 9
10 - (void) setAge:(int)newAge {
11     NSLog(@"setage...");
12     age = newAge;
13 }
14
15 - (void) setAge:(int)newAge :(float)newHeight {
16     age = newAge;
17     height = newHeight;
18 }
19
20 @end

第5行和第10行和15行实现了Student.h中声明的方法

三、对象的创建

 1 #import <Foundation/Foundation.h>
 2 #import "Student.h"
 3 int main(int argc, const char * argv[])
 4 {
 5
 6     @autoreleasepool {
 7
 8         // insert code here...
 9         Student *stu = [[Student alloc]init];
10         stu.age = 15;
11         NSLog(@"......");
12
13         int age1 = stu.age;
14         NSLog(@"......");
15
16         stu->no = 120;
17         [stu setAge:100];
18         int age = [stu age];
19
20         NSLog(@"student no=%i,age is=%i,age1=%i",stu->no,age,age1);
21         NSLog(@"Hello, World!");
22         [stu release];
23     }
24     return 0;
25 }

1>第9行:创建一个Student类对象,分配空间并初始化

2>第10行获取和设置age的值,等价于调用[stu setAge:15]和int age = [stu age]。点语法的本质是函数调用

2>第16行:公共成员变量no,如果不是公共变量,不能像这样直接访问。注意访问方式:对象->成员变量

四、总结

1、- 表示对象方法(动态方法),+ 表示类方法(静态方法)

2、.语法的本质是get或者set函数调用

时间: 2024-11-05 06:24:51

【OC基础】01-类的声明和实现的相关文章

第一部分 1.12 OC基础语法-类的声明和实现,static和变量,typedef

新建一student类 只是用来声明Student这个类有哪些成员变量和方法 #import <Foundation/Foundation.h> // @interface代表声明一个类 // : 代表继承 @interface Student : NSObject { // 成员变量要定义在下面的大括号中{} int age; int no; } // 在这里声明的所有方法都是公共 // age的get方法 // - 代表动态方法 + 代表静态方法 - (int)age; // age的se

OC基础01

搜索 "==>" 寻找标记 OC基础总结: Objective-C具有相当多的动态特征,如: " 动态类型 , 动态绑定 , 动态加载" ==> copy mutableCopy 浅复制: 在复制操作中,对于被复制的对象的每一层复制都是指针复制. 深复制: 在复制操作中,对于被复制的对象至少有一层是对象复制 完全复制: 在复制操作中,对于被复制的对象的每一层都是对象复制. 一般来讲: 浅复制复制引用对象的指针 深复制 复制引用对象的内容 retain &

OC面向对象编程-类的声明和对象的创建

一 OC类的声明和实现 1.接口的声明 @interface NewClassName: ParentClassName { 实例变量 ... } 方法的声明 ... @end 2.类的实现 @implementation NewClassName { 方法的实现 //code ... } @end

OC语言-01类和对象

// cc 文件名.m -framework Foundation 编译链接 #import <Foundation/Foundation.h> //枚举性别 typedef enum{ SexMen, SexWoman, SexUnknow } Sex; //枚举毛色 typedef enum{ FurColorBlack, FurColorRed, FurColorGreen } FurColor; //结构体日期 typedef struct{ int year; int month;

OC基础--常用类的初步介绍与简单使用之NSDate

一.创建一个时间 NSDate *date = [NSDate date]; // 打印出的时间是0时区的时间(北京--东八区) NSLog(@"%@",date); 二.日期格式化类NSDateFormatter 1>日期转化字符串 1 // 创建一个NSDate对象 2 NSDate *date = [NSdate date]; 3 // 创建一个NSDateFormatter对象 4 NSDateFormatter *formatter = [[NSDateFormatte

OC基础--常用类的初步介绍与简单实用之集合类

集合类的异同点 一.NSArray\NSMutableArray *有序 *快速创建(只有不可变数组可以):@[obj1, obj2, obj3]; *快速访问元素:数组名[i] *只能存放对象 二.NSSet\NSMutableSet *无序 *只能存放对象 三.NSDictionary\NSMutableDictionary *无序 *快速创建(只有不可变数组可以):@{key1 : value1, key2 : value2,...} *快速访问元素:字典名[key] *只能存放对象 四.

OC基础--常用类的初步介绍与简单实用之NSString

一.NSString:不可变字符串/NSMutableString:可变字符串 1>字符串的常用创建方式: (1)NSString *s1 = @"Chaos"; (2)NSString *s2 = [[NSString alloc] initWithFormat:@"age is %d",20]; (3)C字符串-->OC字符串 NSString *s3 = [[NSString alloc] initWithUTF8String:"Chao

OC基础笔记目录

OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象的存储细节 函数与方法对比 常见错误 OC基础(4) NSString 类介绍及用法 结构体成员变量 对象和方法之间的关系 对象作为方法的参数连续传递 OC基础(5) #pragma mark指令 OC多文件开发介绍 匿名对象

oc中的oop基础及类的基本介绍

面向对象的(OOP)的基础知识 类(class):表示一组对象数据的结构体,对象通类来得到自身.类名首字母大写. 对象(objcet):是一种包含值和指向其类的隐藏指针的结构体.运行中的程序中通常会有n个对象,首字母不用大写. 实例(instance):是对对象的另一种称呼. 消息(message):是对象执行的操作,用于通知对象去做什么.对象接收到消息后,将查询相应的类,来执行正确的代码运行程序. 方法(method):j是为响应消息而运行的代码,这个以后在oop中会很常用.根据类的对象或消息