//************************************************************************
// main.m
// Object_C 02可见度 方法
//
// Created by lanou3g on 15/8/21.
// Copyright (c) 2015年 lanou3g. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Student.h"
#import "Person.h"
#import "AudiCar.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//================学生类对象=========================//
//开辟学生类对象
Student *stu=[[Student alloc]init];
[stu sayHi];
stu->_name=@"花千骨";
NSLog(@"%@",stu->_name);
[stu sayHi];
//方法一共有两种,一种是“+”号方法,称为类方法,这种方法一般类来使用,比如alloc
//第二种是“-”号方法,称为实例方法,一般用对象来调用,比如我们自己写的sayHi,init等.
//学生类的整体赋值
[stu setName:@"白子画" gender:@"男" hobby:@"花千骨" age:30 weight:60];//注意顺序
[stu sayHi];
//学生类的设置器和访问器的单个赋值和读取
[stu setName:@"花千骨"];
NSLog(@"%@",[stu name]);
//对学生类的自定义初始化
Student *stu1=[[Student alloc]initWithName:@"糖宝儿" gender:@"女" hobby:@"吃" age:18 weight:44.0];
[stu1 sayHi];
//============================================================//
//=============Person类对象=============================//
//为人这个类开辟对象
Person *p=[[Person alloc]initWithName:@"猪八戒" sex:@"男" age:500 hobby:@"吃"];
[p sayHi];//调用方法,消息接受机制[消息的接受者 具体要做的事]
//设置器、访问器
[p setName:@"大师兄"];
NSLog(@"%@",[p name]);
[p setName:@"唐生" sex:@"男" age:1000 hobby:@"佛经"];
[p sayHi];
//===============奥迪车===================================//
//为奥迪车类开辟对象
AudiCar *a=[[AudiCar alloc]initWithColor:@"白色" type:@"轿车" price:100000];
[a sayHi];
//整体赋值
[a setColor:@"黑色" type:@"火车" price:200];
[a sayHi];
//设置器、访问器的存储、读取
[a setColor:@"红色"];
NSLog(@"%@",[a color]);
//自定义初始化
AudiCar *a1=[[AudiCar alloc]initWithColor:@"蓝色" type:@"跑车" price:10000000];
[a1 sayHi];
NSLog(@"%@",[a1 color]);
}
return 0;
}
//////////// ( 1 )///////////////
// Student.h
// Object_C 02可见度 方法
//
// Created by lanou3g on 15/8/21.
// Copyright (c) 2015年 lanou3g. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Student : NSObject
/**
1.@public 的级别是最低的,都可以用对象—>的方式找到成员变量,不安全.
2.@protected 如果没写可见度,默认是被保护的(同于写protected),被保护的成员变量可在当前类及其子类来使用
3.@private 私有的,只能当前的类使用,使用范围更小
4.@package 这是系统一些文件来使用的,系统来用,以后见了直接跳过就可以
*/
{
@public
NSString *_name;
NSString *_gender;
@protected
NSString *_hobby;
@private
NSInteger _age;
CGFloat _weight;
}
-(void)sayHi;
-(void)eat;
-(void)play;
/**
对所有成员变量的赋值语句:
1.只要有参数,就一定要有":",冒号的作用相当于标识参数
2.在调用方法的时候我们通过参数形容词知道对应要填的参数,形参名是在方法实现的时候使用
*/
//整体赋值
-(void)setName:(NSString *)name
gender:(NSString *)gender
hobby:(NSString *)hobby
age:(NSInteger )age
weight:(CGFloat )weight;
//设置器和访问器都是针对一个成员变量进行值的存储和读取,当对多个成员进行操作时,称为赋值语句。
//设置器setter
//单个赋值
-(void)setName:(NSString *)name;
-(void)setGender:(NSString *)gender;
-(void)setHobby:(NSString *)hobby;
-(void)setAge:(NSInteger )age;
-(void)setWeight:(CGFloat )weight;
//访问器getter
-(NSString *)name;
-(NSString *)gender;
-(NSString *)hobby;
-(NSInteger )age;
-(CGFloat )weight;
//自定义初始化方法,方法必须以init开头,后面跟一个With,W必须大写
-(id)initWithName:(NSString *)name
gender:(NSString *)gender
hobby:(NSString *)hobby
age:(NSInteger )age
weight:(CGFloat )weight;
@end
///////// ******** ( 2 )******????????????
// Student.m
// Object_C 02可见度 方法
//
// Created by lanou3g on 15/8/21.
// Copyright (c) 2015年 lanou3g. All rights reserved.
//
#import "Student.h"
@implementation Student
-(void)sayHi{
NSLog(@"%@,%@,%@,%ld, %f",_name,_gender,_hobby,_age,_weight);
}
-(void)eat{
NSLog(@"吃");
}
-(void)play{
NSLog(@"玩");
}
//整体赋值
-(void)setName:(NSString *)name
gender:(NSString *)gender
hobby:(NSString *)hobby
age:(NSInteger )age
weight:(CGFloat )weight{
_name=name;
_gender=gender;
_hobby=hobby;
_age=age;
_weight=weight;
}
//设置器
//单个赋值
-(void)setName:(NSString *)name{
_name=name;
}
-(void)setGender:(NSString *)gender{
_gender=gender;
}
-(void)setHobby:(NSString *)hobby{
_hobby=hobby;
}
-(void)setAge:(NSInteger )age{
_age=age;
}
-(void)setWeight:(CGFloat )weight{
_weight=weight;
}
//访问器
-(NSString *)name{
return _name;
}
-(NSString *)gender{
return _gender;
}
-(NSString *)hobby{
return _hobby;
}
-(NSInteger )age{
return _age;
}
-(CGFloat )weight{
return _weight;
}
//自定义初始化方法
-(id)initWithName:(NSString *)name
gender:(NSString *)gender
hobby:(NSString *)hobby
age:(NSInteger )age
weight:(CGFloat )weight{
_name=name;
_gender=gender;
_hobby=hobby;
_age=age;
_weight=weight;
return self;
}
@end
///////////( 1 )////////////////
// Person.h
// Object_C 02可见度 方法
//
// Created by lanou3g on 15/8/21.
// Copyright (c) 2015年 lanou3g. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
@public
NSString *_name;
NSString *_sex;
@protected
NSInteger _age;
@private
NSString *_hobby;
}
//设置器
-(void)setName:(NSString *)name;
-(void)setSex:(NSString *)sex;
-(void)setAge:(NSInteger )age;
-(void)setHobby:(NSString *)hobby;
//访问器
-(NSString *)name;
-(NSString *)sex;
-(NSInteger )age;
-(NSString *)hobby;
//赋值语句
-(void)setName:(NSString *)name
sex:(NSString *)sex
age:(NSInteger )age
hobby:(NSString *)hobby;
//自定义初始化
-(id)initWithName:(NSString *)name
sex:(NSString *)sex
age:(NSInteger )age
hobby:(NSString *)hobby;
-(void)sayHi;
@end
//////////// ( 2 )//////////////////
// Person.m
// Object_C 02可见度 方法
//
// Created by lanou3g on 15/8/21.
// Copyright (c) 2015年 lanou3g. All rights reserved.
//
#import "Person.h"
@implementation Person
//设置器
-(void)setName:(NSString *)name{
_name=name;
}
-(void)setSex:(NSString *)sex{
_sex=sex;
}
-(void)setAge:(NSInteger )age{
_age=age;
}
-(void)setHobby:(NSString *)hobby{
_hobby=hobby;
}
//访问器
-(NSString *)name{
return _name;
}
-(NSString *)sex{
return _sex;
}
-(NSInteger )age{
return _age;
}
-(NSString *)hobby{
return _hobby;
}
//赋值语句
-(void)setName:(NSString *)name
sex:(NSString *)sex
age:(NSInteger )age
hobby:(NSString *)hobby{
_name=name;
_sex=sex;
_age=age;
_hobby=hobby;
}
//自定义初始化
-(id)initWithName:(NSString *)name
sex:(NSString *)sex
age:(NSInteger )age
hobby:(NSString *)hobby{
if (self=[super init]) {
_name=name;
_sex=sex;
_age=age;
_hobby=hobby;
}
return self;
}
-(void)sayHi{
NSLog(@"%@,%@,%ld,%@",_name,_sex,_age,_hobby);
}
@end
////////////( 1 )/////////////////
// AudiCar.h
// Object_C 02可见度 方法
//
// Created by lanou3g on 15/8/21.
// Copyright (c) 2015年 lanou3g. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface AudiCar : NSObject
/**
1.三个成员变量,默认可见度
2.对三个成员变量进行统一赋值
3.三个成员变量设置器
*/
{
NSString *_color;
NSString *_type;
CGFloat _price;
}
-(void)sayHi;
//整体赋值
-(void)setColor:(NSString *)color
type:(NSString *)type
price:(CGFloat )price;
//设置器
-(void)setColor:(NSString *)color;
-(void)setType:(NSString *)type;
-(void)setPrice:(CGFloat )price;
//访问器
-(NSString *)color;
-(NSString *)type;
-(CGFloat )price;
//自定义初始化方法
-(id)initWithColor:(NSString *)color
type:(NSString *)type
price:(CGFloat )price;
@end
///////////////( 2 )////////////////
// AudiCar.m
// Object_C 02可见度 方法
//
// Created by lanou3g on 15/8/21.
// Copyright (c) 2015年 lanou3g. All rights reserved.
//
#import "AudiCar.h"
@implementation AudiCar
-(void)sayHi{
NSLog(@"%@,%@,%f",_color,_type,_price);
}
//整体赋值
-(void)setColor:(NSString *)color
type:(NSString *)type
price:(CGFloat )price{
_color=color;
_type=type;
_price=price;
}
//设置器
-(void)setColor:(NSString *)color{
_color=color;
}
-(void)setType:(NSString *)type{
_type=type;
}
-(void)setPrice:(CGFloat )price{
_price=price;
}
//访问器
-(NSString *)color{
return _color;
}
-(NSString *)type{
return _type;
}
-(CGFloat )price{
return _price;
}
//自定义初始化方法
-(id)initWithColor:(NSString *)color
type:(NSString *)type
price:(CGFloat )price{
_color=color;
_type=type;
_price=price;
return self;
}
@end
浙公网安备 33010602011771号