OC开发中,也对Bean对象进行了get,set的自动生成代码。
#import <Foundation/Foundation.h>
static NSString *STUDENT_NAME = @"三年二班";
@interface Student : NSObject
{
NSString *name;
int age;
NSString *sex;
//static NSString *STUDENT_NAME = @"三年二班"; 静态属性只能写在上面
}
@property(nonatomic) NSString *name;
@property(nonatomic) int age;
@property(nonatomic) NSString *sex;
- (void) getStudentMsg;
@end
#import "Student.h"
static NSString *STUDENT_ADDRESS = @"学校地址";
@implementation Student
@synthesize name;
@synthesize age;
@synthesize sex;
- (void) getStudentMsg
{
NSLog(@"student message className: %@ name: %@ age: %d sex: %@",STUDENT_NAME,self.name,self.age,self.sex);
}
@end
Student *student = [[Student alloc] init]; // OC中的点语法就相当Java中的Publiec属性的调用。
student.name = @"五道杠";
[student setName:@"六道杠"]; // 框架默认在属性的前面提供了set和get的方法,
student.age = 15;
student.sex = @"男";
NSString *studentName = [student name]; // 默认直接用来get方法调用。
NSLog(@"studentName : %@",studentName);
NSLog(@"静态属性调用-%@",STUDENT_NAME); // 静态属性直接调用,其中前面的类名都不需要写。
[student getStudentMsg];
点语法, 相当于java中的public的属性的用法,直接赋值。
其中@property()括号中,可以填写的属性:
readwrite: 默认 可读可写。
readonly: 只读,没有set方法
assign: 默认,引用计数不增加
retain:引用计数增加1
原子性: actomic 默认 。 (和java中的那些原子类一样,为了变量线程安全)
非原子性:nonatomic
这些属性可以 多个一起使用。