属性生成器、set get 方法

//
//  main.m
//  属性生成器

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {

    Person * p = [[Person alloc] init];
    [p setAge:10];
    [p setName:@"小明"];

    /*
    NSLog(@"年龄 %d",p->_age);
    NSLog(@"年龄get %d",p.age);
    NSLog(@"number %d",p->_number);
    */

    NSLog(@"%@",p);

    return 0;
}
#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    /*
     成员变量的作用域
     @public 最大,完全公开成员变量
     @private 只有在自己内部才可以直接访问
     @protected 只有在自己,或者子类内部才可以直接访问,默认都是@protected
     */
    /*
    @public
    NSString * _name;
    int _age;

    int _number;
     */
}
//属性生成器
//1.能够自动的生成get,与set方法的声明
//2.告诉@property set方法的参数类型是什么,告诉他属性的名称是什么
//[email protected]是编译器特性

@property int age;
@property NSString * name;
/*

 - (void)setAge:(int)age;
 - (int)age;

-(void)setAge:(int)age;

-(int)age;

- (void)setName:(NSString *)name;
- (NSString *)name;
*/
@end
#import "Person.h"

@implementation Person
{
    int _age;
}//@implementation 当中可以声明成员变量,外部无法访问

@synthesize age = _age;
@synthesize name = _name;
*/
///*
//- (void)setAge:(int)age
//{
//    _number = age;
//}
//
// - (void)age
// {
//    return _number;
// }
//
//
//-(void)setAge:(int)age
//{
//    _age = age;
//
//}
//-(int)age
//{
//    return _age;
//}
//*/
//- (void)setName:(NSString *)name
//{
//    _name = name;
//
//}
//- (NSString *)name
//{
//
//    return _name;
//
//}

-(void)setAge:(int)age
{
    if (age > 0)
    {
        _age = age;
    }
}
- (int)age
{
    return _age;
}

- (NSString *)description
{

    return [NSString stringWithFormat:@"age = %d name %@", _age,_name];
}

@end

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-18 10:00:17

属性生成器、set get 方法的相关文章

Javascript的私有变量和方法、共有变量和方法以及特权方法、构造器、静态共有属性和静态共有方法

一.私有变量:定义在函数内部的属性和方法称之为该函数的私有属性和方法        共有变量:在函数内部通过this创建的对象和方法称之为该函数的共有属性和方法 特权方法:通过this创建的既可以访问该函数的共有属性和方法,也可以访问该函数的私有属性和方法称之为特权方法 构造器:对象在创建的时候调用特权方法来初始化实例的属性,这个方法也称为构造器 /** * 类的内部私有属性.私有方法.特权方法.共有属性和共有方法以及构造器 * @param id * @param bookname * @pa

Python类属性访问的魔法方法

Python类属性访问的魔法方法: 1. __getattr__(self, name)- 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name)- 定义当该类的属性被访问时的行为 注意:当__getattr__与__getattribute__同时重写时,访问属性时,优先调用__getattribute__,只有当被访问的属性不存在时才触发__getattr__ 3. __setattr__(self, name, value)- 定义当一个

combobox 属性、事件、方法

一 .combobox 属性.事件.方法公共属性 名称 说明 AccessibilityObject 获取分配给该控件的 AccessibleObject. AccessibleDefaultActionDescription 获取或设置控件的默认操作说明,供辅助功能客户端应用程序使用. AccessibleDescription 获取或设置辅助功能客户端应用程序使用的控件说明. AccessibleName 获取或设置辅助功能客户端应用程序所使用的控件名称. AccessibleRole 获取

js+jquery动态设置/增加/删除/获取元素属性的两种方法集锦对比(动态onclick属性设置+动态title设置)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>

实现Date函数属性中的format方法

js中没有Date.format方法的,所以在date属性中加format方法 //js格式化属性 Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinu

window属性、事件、方法一览

记录这个表格,是之前多次碰到一些不熟悉,或者从未使用过的事件来处理一些棘手问题时,总以为是新的浏览器特性,其实在一些老旧浏览器上,或者window上已经本身提供了一些事件绑定或者方法的调用. 最近正好在重写sugget/autocomplete的组件,一直以来比较棘手的问题解决是当鼠标焦点离开<input>时,而刚好在suggest的列表浮层上触发click时,处理显得比较麻烦,以前较为常规的解决方案是采用delay这种方式来延迟事件上下文的处理,往往在定义delayTime的时候比较折腾,需

jQuery(五) jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解

jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解 jQuery中操纵元素属性的方法: attr(): 读或者写匹配元素的属性值. removeAttr(): 从匹配的元素中移除指定的属性. attr()方法 读操作 attr()读操作. 读取的是匹配元素中第一个元素的指定属性值. 格式: .attr(attributeName),返回值类型:String.读取不存在的属性会返回undefined. 注意选择器的选择结果可能是一个集合,这里仅仅获取的是集合中第一个

Kodak图像扫描控件的属性、事件、方法

Kodak图像扫描控件的属性.事件.方法 1. Kodak图像扫描控件的属性 (1)DestImageControl属性 字符型.该属性连接图像扫描控件到一个图像编辑控件,允许在扫描完毕后查看图像. (2)FileType属性 数值型.返回或设置图像扫描后建立的图像类型,属性值如表4-43所示. 表4-43                          FileType属性值 属性值 说明 1-Kodak Image Document (TIFF) TIFF文件 2-Fax Viewer D

判断对象属性的几种方法

function Person() { this.name = 'Lee'; this.age = 20; this.sayName = function() {console.log(this.name)}; } Person.prototype.height = 180; var p = new Person(); 判断属性 hasOwnProperty(property_name) 检测一个属性书否存在于实例中,如果是则返回true. p.hasOwnProperty("name"