`
dcj3sjt126com
  • 浏览: 1867192 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

类的声明和对象的创建、@property属性和点语法、类的继承

    博客分类:
  • IOS
阅读更多
//类的声明
@interface Person : NSObject
{
    //实例变量的声明
    int identify;
    int age;
}
//方法声明
- (id) initWithAge:(int) _age identify:(int) _identify;
- (int) getIdentify;
- (int) getAge;
- (void) setAge:(int) _age;
@end

//类的实现
@implementation Person
- (void) initWithAge:(int) _age identify _identify
{
    if (self = [super init]) {
        age = _age;
        identify = _identify;
    }
    return self;
}

- (int) getIdentify
{
    return identify;
}

- (int) getAge
{
    return age;
}
- (void) setAge: (int) _age
{
    age = _age;
}

@end


对象的创建
Person * person;    // nil
person = [[Person alloc] init]; 

//两个的方法,两个方法是否相同,与参数类型和返回值无关
- (int) changed:(int) _age
{

}

 

static关键字
类体内的全局变量声明:
static int gCount = 0; //这个值只有一份

//解释属性nonatomic
在@property()括号中,可以填写的属性:
readwrite: 默认
readonly: 只读,意味着没有set方法
assign:默认,引用计数不增加
retain:引用计数增加1
原子性:actomic默认
非原子性:nonatomic
atomic是OC中的一种线程保护技术,是防止在未完成的时候,被另外一个线程使用。造成数据错误。

点语法:
person.myNumber = 100;
NSLog(@"%d", person.myNumber);

简化设置器
@interface Person : NSObject

@property(nonatomic) int myNumber;

@end

//实现部分
@implementation Person

@synthesize myNumber; //多个写多行,或者用逗号隔开也行,例如 @synthesize myNumber, age;

@end



以下是原始的方式
@interface Person : NSObject
{
    int myNumber;     //实例变量
}
- (int) myNumber;
- (void) setMyNumber:(int) _number;
- (void) printfInfo;
@end

@implementation Person
//get方法
- (int) myNumber
{
    return myNumber;
}
//set方法
- (void) setMyNumber:(int) _number
{
    myNumber = _number;
}
//打印本类的信息
- (void) printfInfo
{
    NSLog(@"Person number is : %d", myNumber);
}
@end

 

继承的书写
@interface ClassB : ClassA

@end


@interface Rectangle : NSObject
{
    int width;
    int height;
}
@Property (nonatomic) int width,height;
- (int) area;
- (int) perimeter;
- (int) setWidth:(int) w andHeight:(int) h;
@end

@implementation Rectangle
@synthesize width, height;
- (int) area
{
    return width*height;
}
-(int)perimeter
{
    return (width + height) * 2;
}
- (void) setWidth: (int) w andHeight: (int) h
{
    width = w;
    height = h;
}
@end


main方法中代码
Rectangle *myRect = [[Rectangle alloc] init];
[myRect setWidth:6 andHeight:7];
NSLog(@"Rectangle: w = %d, h = %d", myRect.width, myRect.height);
NSLog(@"Rectangle:area = %d perimeter = %d", [myRect area], [myRect perimeter] );

方法的重载

 

分享到:
评论

相关推荐

    Objective-C简单继承代码

    继承允许一个类(子类或派生类)获取另一个类(父类或基类)的属性和方法,从而实现代码的重用和扩展。 标题中的“Objective-C简单继承代码”指的是通过编程实践来展示如何在Objective-C中设置和使用继承关系。我们...

    理解Objective-C的变量以及面相对象的继承特性

    例如,创建一个`Student`类继承自`Person`类,`Student`就会自动拥有`Person`的所有属性和方法。通过`@interface Student : Person`声明继承关系。 继承的几个关键点包括: 1. 子类继承父类后,可以通过`super`...

    Objective-C学习心得

    9. **setter/getter**: `@property` 用于声明对象属性,`@synthesize` 自动生成对应的存取方法。 10. **protocol**: 协议定义了一组必须或可选的方法签名,实现了协议的类需要提供这些方法的实现。 11. **delegate...

    关于对象继承的例子

    它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和方法,从而实现代码的重用和扩展。这个例子将深入探讨C#中的对象继承机制。 首先,我们需要理解继承的基本语法。在C#中,子类通过使用冒号(:)来...

    python全套课程继承与多态

    继承是面向对象编程的一个关键特性,它允许我们创建一个新类(子类),该类将从已存在的类(父类)中继承属性和方法。这有助于代码的复用和模块化,减少了编写重复代码的需要。在Python中,你可以通过简单的语法实现...

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    类定义了对象的属性和行为。在Objective-C中,类的定义通常包括两个部分:接口(interface)和实现(implementation)。 - **接口**: 描述类的公共接口,包括属性和方法的声明。 - **实现**: 包含具体的实现细节,包括...

    php5 类与对象

    它允许在类的方法内部引用该对象的属性和其他方法。 ```php class MyClass { public $property; public function setProperty($value) { $this->property = $value; } public function getProperty() { ...

    Objective-C的语法与Cocoa框架

    属性可以通过`@property`关键字声明,然后使用`@synthesize`来自动实现存取方法。 4. 方法:Objective-C的方法定义类似于C函数,但带有返回类型和接收者类型。方法分为实例方法和类方法,前者针对特定对象,后者...

    突破Objective-C开发速学手册之面向对象编程PPT课件.pptx

    实例化对象是创建类的实例的过程,它包括三个主要步骤:声明对象变量,初始化对象,以及使用`alloc`和`init`方法分配内存和初始化对象。例如,对于名为`Person`的类,可以这样实例化: ```objc Person *person = [...

    JavaScript 基础教程面向对象

    类声明提供了一种更简洁的语法糖,用于创建构造函数和原型方法。 2. 类方法与属性:类方法是定义在类的原型上的,而类属性是实例的属性。类方法使用`static`关键字定义,类属性则直接在类体中定义。 3. super...

    经典C#语法 不看后悔一辈子

    4. 类与对象:C#是面向对象的语言,类是创建对象的蓝图,包含属性(数据成员)和方法(行为)。对象则是类的实例,可以调用类中定义的方法。 5. 继承与多态:继承允许一个类(子类)继承另一个类(父类)的特性,...

    Delphi 7以来的新语法特性

    类常量、类变量、类属性与静态类方法(Class const/var/property and Static Class Methods)是增强 Delphi 类型系统的关键特性。它们允许你在类级别定义共享的、不可变的常量(Class Consts)、变量(Class Vars)...

    .NET Windows编程系列课程(2):C#语法和面向对象编程

    - 对象(Object):类的实例,通过new关键字创建,可以访问类中定义的属性和方法。 - 封装:通过类隐藏内部实现细节,只暴露必要的公共接口,提高代码安全性。 - 继承(Inheritance):子类继承父类的属性和方法...

    Objective-C语法

    - **@符号**:Objective-C使用`@`符号引入特殊的关键字和语法,如`@class`用于声明类,`@interface`定义接口,`@implementation`实现接口。 - **NSLog()**:用于输出日志信息,方便调试。 - **BOOL**:Objective-C...

    C#基础-面向对象编程,C#入门级语法

    - **记录(Record)**:是从C# 9开始引入的新类型,结合了类和结构的特点,主要用于创建不可变的对象,并简化了值相等性的实现。 #### 封装 封装是面向对象编程的基石之一。它允许开发者隐藏对象的具体实现细节,仅...

    Objective-C 基础语法

    - 通过点语法或消息发送语法访问和修改属性值。 - 如: ```objective-c person.name = @"John Doe"; NSLog(@"My name is %@", person.name); ``` 4. **调用方法**: - 直接通过消息发送的方式调用对象的方法...

    《02. XAML语法详述》 源自MSDN on MS-Web 2019-9-29 全文翻译+注释

    在XAML中,区分属性(Property)和特征(Attribute)是理解语法的关键。属性通常与对象的状态相关,是对象的抽象概念,用于表示事物的某种状态。而特征则是描述编程语言语法层面的内容,比如XML标签中的名称—值对应...

    C++教程渥瑞达objective-c视频教程内含有 du盘链接

    一个类可以被视为一个蓝图或模板,根据这个蓝图创建的对象具有相同的属性和方法。 #### 属性声明 属性是类中的成员变量,它们描述了对象的状态。在Objective-C中,通常使用`@property`语法来声明属性。例如: ```...

    C#语法汇总 4.0 CHM版本

    2. **类与对象**:C#是面向对象的语言,核心概念包括类(class)的定义,对象(object)的创建,以及封装、继承和多态等面向对象特性。类定义了数据和行为,对象则是类的实例。 3. **命名空间**:命名空间...

    IOS软件工程师笔试题(全选择题)【0-1年经验】.pdf

    属性(property)则是Objective-C特有的语法,用于声明对象的实例变量,并提供访问这些变量的getter和setter方法。 3. NSArray和NSMutableSet:NSArray是一个不可变数组,NSMutableSet是一个可变集合,可以添加或...

Global site tag (gtag.js) - Google Analytics