oc-25- @property @synthesize

s.h

#import <Foundation/Foundation.h>

@interface Student : NSObject
{
    @public
    NSString *_name;
    int _age;
    int _height;
}

// @property能够自动生成set和get方法的 声明
// @property 成员变量类型 成员变量名称(去掉下划线);
//- (void)setName:(NSString *)name;
//- (NSString *)name;
@property NSString *name;
@end

s.m

/**
 问题:想要给自己不带下划线的成员变量进行赋值,怎么办?>

 需要给@synthesize指定,告诉该赋值给谁.
 @synthesize name = _name;
 它就知道,赋值_name;
 */

#import "Student.h"

@implementation Student
@synthesize name;
//生成了getset方法的实现
//- (void)setName:(NSString *)name
//{
//    name = name;
//    NSLog(@"%p",name);
//}
//- (NSString *)name
//{
//
// return name;
//}
@end

main.m

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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Student *s = [Student new];
        s.name = @"亚索";
        // 这步能够调用,证明@property生成了set和get方法的声明.
        [s setName:@"亚索"];
        // 证明@synthesize生成了set和get方法的实现.
        NSLog(@"%p",s->name);
        NSLog(@"-----");
    }
    return 0;
}
时间: 2024-10-12 11:44:42

oc-25- @property @synthesize的相关文章

OC语言@property @synthesize和id

一.@property @synthesize 这两个关键字是编译器特性,让xcode可以自动生成gettersetter的声明和实现. (一)@property  @property 关键字可以自动生成某个成员变量的settergetter方法的声明 @property int age; 编译时遇到这一行,则自动扩展成下面两句: - (void)setAge:(int)age; - (int)age; (二)@synthesize @synthesize关键字帮助生成成员变量的setterge

「OC」@property @synthesize和id

一.@property @synthesize关键字 这两个关键字是编译器特性,让Xcode可以自动生成getter和setter. (一)@property 关键字 @property 关键字可以自动生成某个成员变量的setter和getter的声明 如:@property int age; 编译时遇到这一行,则自动扩展成下面两句: - (void)setAge:(int)age; - (int)age; (二)@synthesize关键字 @synthesize关键字帮助生成成员变量的set

黑马程序员-OC的@property 和 @synthesize id

学习java的JDBC,成员变量的setter和getter,eclipse都能帮我们自动生成:当然xcode这款编译器也很强大,也能自动生成: 1:@property @property是写在类的声明中的,具体写法: @interface Person : NSObject { _age; } @property int age; // 这句话相当于下边的getter和setter,但是注意age没有'_',但是就是为有下划线的age生成的,这样方便了点语法的调用: // - (void)se

object-c中@property @synthesize的用法

在objective-c中,我们可以用new简单的代替alloc init,我们今天介绍的是类似于new这种简易用法的另一种OC特性,用@property,@synthesize来代替get,set方法,用起来很简单,可以省掉很多的代码量,当需要用SET,GET方法的地方,我们可以用@property,@synthesize来简单的代替,这时系统会自动给我们生成该变量的set,get方法,@property对应方法的声明部分,@synthesize对应方法的实现部分. Human.h: [pla

成员变量的作用域,@property,@synthesize

成员变量的作用域 public:在任何地方都能直接访问对象的成员变量 private:只能在当前类的对象方法中直接访问(@implement中默认的) protected:可以在当前类及其子类的对象方法中直接访问(@interface中默认的) package:只要处在同一框架中,就能直接访问对象的成员变量 @property,@synthesize @property:可以自动生成某个成员变量的setter.getter方法: @synthesize:自动生成成员变量的setter.gette

@property @synthesize 对着set方法和get方法

@property @synthesize 这两个的作用是代替set和get方法: @property int age;代替下面两句 - (void)setAge:(int)age; - (int)age; 作用: 自动生成某个成员变量的setter和getter声明: @property double weight; @property NSString *name; 现在需要到实现中去实现: 使用@synthesize age;会把age property这些声明进行实现: @synthes

黑马程序员——OC语言@property、@synthesized与id

一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明和实现. (一)@property 关键字 @property 关键字可以自动生成某个成员变量的setter和getter方法的声明 @property int age; 编译时遇到这一行,则自动扩展成下面两句: - (void)setAge:(int)age; - (int)age; (二)@synthesize关键字 @synthesize关键字帮助生

setter, getter, @property , @synthesize

一,单纯的set get, .h文件 @interface Person : NSObject { NSString *_name; } -(void)setName:(NSString *)name; -(NSString *)getName; @end .m文件 -(void)setName:(NSString *)name { _name = name; } -(NSString *)getName { return _name; } 调用 Person *person = [[Perso

@property @synthesize的含义以及误区。

@property的作用是定义属性,声明getter,setter方法.(注意:属性不是变量) @synthesize的作用是实现属性的,如getter,setter方法. 在声明属性的情况下如果重写setter,getter,方法,就需要把未识别的变量在@synthesize中定义,把属性的存取方法作用于变量.如: .h文件中 @property (nonatomic,assign)NSInteger age; @property (nonatomic,retain)NSString * na

OC的@property和@synthesize

1. 成员变量和属性的区别. @interface User : NSObject { int _height; // 成员变量,不会自动生成setter 和getter方法. } @property (strong, nonatomic) NSString *uid; // 属性. 会自动生成setter和getter方法. @property (assign, nonatomic) int age; 2. @property 和 @synthesize   声明一个setter getter