Objective-C:属性
2014-04-10 11:16
337 查看
.h文件
//声明类名,继承的父类,相关属性(实例,)方法声明
#import
//类名 Student
//继承的父类名 NSObject
@interface Student : NSObject// :冒号是切割
//{
// //相关属性(实例变量)
// @public
// NSString *_name;//姓名
// int _age;//年龄
// NSString *_address;//地址
// NSString *_hobby;//爱好
//}
//属性设置器,提供相关属性给编译器,由编译器根据属性名称自动生成与之对应的实例变量访问器(setter设置器,getter读取器)和实例变量声明
@property(assign,nonatomic) NSString *name;
//对_name实例变量的访问器
//-(void) setname:(NSString *) newname;
//-(NSString *) name;
@property(assign,nonatomic) int age;
//_age实例变量的访问器
//-(void) setage:(int) newage;
//-(int) age;
@property(assign,nonatomic) NSString *address;
//对_address实例变量的访问器
//-(void) setaddress:(NSString *) newaddress;
//-(NSString *) address;
@property(assign,nonatomic) NSString *hobby;
//_hobby实例变量的访问器
//-(void) sethobby:(NSString *) newhobby;
//-(NSString *) hobby;
//方法的声明
-(void)sayHi;
-(void)eat;
-(void)walk;
@end
.m文件
#import "Student.h"//不能用双角号 双角号是系统的,""是自己定义的
@implementation Student
//属性合成器@synthesize,由编译器自动生成相关属性的方法实现,并且生成相关实例变量,默认实例变量名称对应属性一致,若要自己设置使用语法name=_name
@synthesize name,age,address,hobby;
////对—_name的访问器
//-(void) setname:(NSString *)newname{
// _name=newname;
//}
//-(NSString *)name{
// return _name;
//}
////对_sge的访问器
//-(void) setage:(int)newage{
// _age=newage;
//}
//-(int)age{
// return _age;
//}
////对_address的访问器
//-(void) setaddress:(NSString *)newaddress{
// _address=newaddress;
//}
//-(NSString *)address{
// return _address;
//}
////对_hobby的访问器
//-(void)sethobby:(NSString *)newhobby{
// _hobby=newhobby;
//}
//-(NSString *)hobby{
// return _hobby;
//}
//方法的实现
-(void) sayHi{
NSLog(@"我是来自%@%@,今年%d岁,喜欢%@",address,name,age,hobby);
}
-(void) eat{
NSLog(@"%@也得吃饭",name);
}
-(void) walk{}
@end
main函数
#import
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Student *stu=[[Student alloc]init];//定义对象
stu.name=@"笑笑";//给实例变量赋值
stu.age=20;
stu.address=@"北京石景山";
stu.hobby=@"XXXXXXXX";
NSLog(@"我叫%@今年%d住在%@喜欢%@",stu.name,stu.age,stu.address,stu.hobby);//输出实例变量
}
return 0;
}
//声明类名,继承的父类,相关属性(实例,)方法声明
#import
//类名 Student
//继承的父类名 NSObject
@interface Student : NSObject// :冒号是切割
//{
// //相关属性(实例变量)
// @public
// NSString *_name;//姓名
// int _age;//年龄
// NSString *_address;//地址
// NSString *_hobby;//爱好
//}
//属性设置器,提供相关属性给编译器,由编译器根据属性名称自动生成与之对应的实例变量访问器(setter设置器,getter读取器)和实例变量声明
@property(assign,nonatomic) NSString *name;
//对_name实例变量的访问器
//-(void) setname:(NSString *) newname;
//-(NSString *) name;
@property(assign,nonatomic) int age;
//_age实例变量的访问器
//-(void) setage:(int) newage;
//-(int) age;
@property(assign,nonatomic) NSString *address;
//对_address实例变量的访问器
//-(void) setaddress:(NSString *) newaddress;
//-(NSString *) address;
@property(assign,nonatomic) NSString *hobby;
//_hobby实例变量的访问器
//-(void) sethobby:(NSString *) newhobby;
//-(NSString *) hobby;
//方法的声明
-(void)sayHi;
-(void)eat;
-(void)walk;
@end
.m文件
#import "Student.h"//不能用双角号 双角号是系统的,""是自己定义的
@implementation Student
//属性合成器@synthesize,由编译器自动生成相关属性的方法实现,并且生成相关实例变量,默认实例变量名称对应属性一致,若要自己设置使用语法name=_name
@synthesize name,age,address,hobby;
////对—_name的访问器
//-(void) setname:(NSString *)newname{
// _name=newname;
//}
//-(NSString *)name{
// return _name;
//}
////对_sge的访问器
//-(void) setage:(int)newage{
// _age=newage;
//}
//-(int)age{
// return _age;
//}
////对_address的访问器
//-(void) setaddress:(NSString *)newaddress{
// _address=newaddress;
//}
//-(NSString *)address{
// return _address;
//}
////对_hobby的访问器
//-(void)sethobby:(NSString *)newhobby{
// _hobby=newhobby;
//}
//-(NSString *)hobby{
// return _hobby;
//}
//方法的实现
-(void) sayHi{
NSLog(@"我是来自%@%@,今年%d岁,喜欢%@",address,name,age,hobby);
}
-(void) eat{
NSLog(@"%@也得吃饭",name);
}
-(void) walk{}
@end
main函数
#import
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Student *stu=[[Student alloc]init];//定义对象
stu.name=@"笑笑";//给实例变量赋值
stu.age=20;
stu.address=@"北京石景山";
stu.hobby=@"XXXXXXXX";
NSLog(@"我叫%@今年%d住在%@喜欢%@",stu.name,stu.age,stu.address,stu.hobby);//输出实例变量
}
return 0;
}
相关文章推荐
- Objective-C之成魔之路【8-访问成员变量和属性】
- Objective-C 2.0 新特性一览 – 属性。
- objective-c 自动封装类的属性
- 【Objective-C】@property的所有属性详解
- Objective的头文件@interface属性
- objective-c感悟(三)属性之谜
- Swift 3.0 令人兴奋,但Objective-C也有小改进--Objective-C的类属性
- objective-C学习笔记(三)数据成员:属性与实例变量
- objective-c的属性扩展:objc_setAssociatedObject
- Objective-C Runtime 解析(四)—— 在Category中添加属性
- Objective-C-类(static)方法、实例方法、overwrite(覆写)、属性(property)
- 刨根问底Objective-C Runtime(4)- 成员变量与属性
- Objective-C 2.0属性(Property) retain和copy的区别
- IOS-1-Objective-C-@property属性的使用及注意问题:@property(assign)int name;
- Objective-c下变量和属性的区别
- Effetive Objective - C 1.Objective 6.属性
- Objective-C - 属性和成员变量在.h文件和.m文件区别
- 编程笔记(objective-c :关于属性)
- Objective-C属性详解(附代码)
- Objective-C Runtime 运行时之二:成员变量与属性