//************************************************************************

//  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

 

posted on 2015-09-01 17:19  倔强滴小毛驴  阅读(161)  评论(0)    收藏  举报