Object-C中的类-类的声明

1.关键字命名:为了避免与已有的c,C++关键字冲突,ObjectC关键字都有@开始:
如:@classs,@interface,@private,@try,@catch,@protocol等。 

2.oc类分为2个文件,一个是.h文件,一个是.m文件:
.h文件:存放类,函数的申明;类申明使用关键字@interface @end来申明;
.m文件:存放类的具体实现;类实现使用关键字@implementation @end来实现; 

3.对象的方法和类的方法:
+表示类的方法;
-表示对象的方法 

4.类的申明 Dog.h:
#import<Foundation/Foundation.h>
@interface Dog:NSObject{

}
@end 

5.类的实现 Dog.m:
#import "Dog.h"
@implementation Dog 

@end 

6.创建和销毁OC对象:
创建对象:Dog *dog=[Dog alloc];//申明对象必须要带*号,即代表指针,也代表引用
初始化:[dog init];
销毁对象:[dog release]; 

7.类中的字段和函数:
@interface Dog:NSObject

{

   //字段定义在此 
   int age; 
}  
//函数定义在此:OC的函数全部是public类型的,可以用其他方式实现私有函数
-(void)setAge:(int)newAge;
@end
 
8.完整实例:

//Dog.h 类申明文件
#import<Foundation/Foundation.h>
@interface Dog:NSObject{
   int age;
}
-(id)init;
-(id)initWidthAge:(int)newAge;
-(int)getAge;
-(void)setAge:(int)newAge;
@end 

//Dog.m 类的实现
#import "Dog.h"
@implementation Dog
-(id)init{
  return [self initWithAge:10];
}
-(id)initWithAge:(int)newAge{
  self=[super init];
   if(self){
     age=newAge;
   }
   return self;
}
-(int)getAge{
   return age;
}
-(void)setAge:(int)newAge{
   age=newAge;
}
@end 
时间: 2024-09-08 16:58:24

Object-C中的类-类的声明的相关文章

c++-求教C++中一个类模板的声明问题

问题描述 求教C++中一个类模板的声明问题 如图中框住的部分,求教详细说一下,这种声明方法叫什么,声明的格式是什么,这样声明的意义是什么,调用的格式是什么?小弟不胜感激. 新手一个,正在自学中,请各位大神不吝赐教,小弟拜谢! 解决方案 就是T类型的vector的函数 解决方案二: T类型 是你给Vector的定义时候需要的数据类型 例子: Vectorstd::string vec; 这个vec里面的就是std::string类型的 解决方案三: 如何声明一个类

详解C++编程中的嵌套类的声明与其中的函数使用_C 语言

可以在一个类的范围内声明另一个类.这样的类称为"嵌套类". 嵌套类被视为在封闭类的范围内且可在该范围内使用.若要从嵌套类的即时封闭范围之外的某个范围引用该类,则必须使用完全限定名. 下面的示例演示如何声明嵌套类: // nested_class_declarations.cpp class BufferedIO { public: enum IOError { None, Access, General }; // Declare nested class BufferedInput.

通过 C# 使用 J# 类库中的 Zip 类压缩文件和数据

数据|压缩 本文假设您熟悉 C# 和 Windows 窗体 下载本文的代码: ZipCompression.exe (150KB) 摘要 在存储文件或者通过网络发送文件时,使用 Zip 压缩可以节省空间和网络带宽.此外,还不会丢失经过 Zip 的文件夹的目录结构,这使其成为非常有用的压缩方案.C# 语言不具有任何使您可以操纵 Zip 文件的类,但是由于面向 .NET 的语言可以共享类实现,并且 J# 在 java.util.zip 命名空间中公开了类,因此您可以在 C# 代码中使用这些类.本文将

详解java中的Collections类_java

一般来说课本上的数据结构包括数组.单链表.堆栈.树.图.我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用,比如int,String,double甚至一维数组.二维数组无法完全表达你要表达的东西,而定义一个类Class有太过麻烦,这时候,你可以考虑一下用Java中的Collections类.使用Collections类,必须在文件头声明import java.util.*; 一.动态.有序.可变大小的一维数组Vector与ArrayList  Collectio

详解Android中通过Intent类实现组件间调用的方法_Android

Intent是Android中用来调用其它组件的类,通过Intent,我们可以非常方便的调用Activity,Broadcast Receiver和Service. Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); 上面这段代码可以用来调用第三方的Activity(启动第三方浏览器来打开百度首页

Python中的元类编程入门指引_python

回顾面向对象编程 让我们先用 30 秒钟来回顾一下 OOP 到底是什么.在面向对象编程语言中,可以定义 类,它们的用途是将相关的数据和行为捆绑在一起.这些类可以继承其 父类的部分或全部性质,但也可以定义自己的属性(数据)或方法(行为).在定义类的过程结束时,类通常充当用来创建 实例(有时也简单地称为 对象)的模板.同一个类的不同实例通常有不同的数据,但"外表"都是一样 - 例如, Employee 对象 bob 和 jane 都有 .salary 和 .room_number ,但两者

Microsoft .NET 中的基类继承 (转自微软MSDN)(续)

MyBase 关键字可以从任一子类使用 MyBase 关键字,以调用基类中的任何属性或方法.即使基类的方法在子类中已被覆盖,您也可以使用该关键字对其进行调用.例如,如果在基类中存在 ReplaceAll 方法,但在子类中该方法已被覆盖,您可以从子类的 ReplaceAll 方法中调用基类的 ReplaceAll 方法.试一试打开 frmLineTest.vb 窗体. 双击 Replace(替换)以调出单击事件过程. 在 btnReplace 按钮的单击事件中编写以下代码:Protected Su

详解Android中通过Intent类实现组件间调用的方法

Intent是Android中用来调用其它组件的类,通过Intent,我们可以非常方便的调用Activity,Broadcast Receiver和Service. Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); 上面这段代码可以用来调用第三方的Activity(启动第三方浏览器来打开百度首页

python过滤字符串中不属于指定集合中字符的类实例

  本文实例讲述了python过滤字符串中不属于指定集合中字符的类.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # -*- coding: utf-8 -*- import sets class Keeper(object): def __init__(self, keep): self.keep = sets.Set(map(ord, keep)) def __getitem__(self, n): if n

转:java.util中的Date类

java.util中的Date类 www.linuxaid.com.cn 01-09-20 23:03 496p 处处--------------------------------------------------------------------------------     在JSP中,我们经常要处理有关日期和时间的信息,这时候你可以使用java.util中的Date类,在编写Java源程序时,情况很明显,你必须通过"import java.util.*"引入java.ut