【iOS 开发基础学习 二】

类的定义,对象创建

  1. 创建头文件(.h)
  2. 创建(.m文件),导入头文件
  3. 创建对象
  • 定义.h文件
#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface Person : NSObject{
    //属性
    //全局变量加"_"||实例变量
    NSInteger _age;
    NSString  *_name;
    float _weight;
    //注意:在oc中不能给全局变量赋值   float height = 1.7;报错
}
//方法
- (void)shopping;//不带参数的方法声明,.h只能声明
//带参数的方法
/**
 *方法名:goShopping":"属于方法名的一部分
 *返回值:void
 *参数:(float)price
 */
-(void)goShopping:(float)price;

//-----------定义设置器的方法-------------
-(void)setAge:(NSInteger)age;
//-----------定义访问器的方法-------------
-(NSInteger)age;

-(NSString *)name;
//-----------定义多个参数的方法-------------
-(void) setName:(NSString*)name
         setAge:(NSInteger)age
      setWeight:(float)weight;

//-----------定义类方法(静态方法)-------------
//区别:实例方法 - 开头   类方法(类名调用) + 开头
+(void) testClass;

+(Person*)createPerson;

@end

NS_ASSUME_NONNULL_END
 
  • 定义.m文件
//
//  Person.m
//  Object-C_Test
//
//  Created by loucse on 2020/5/26.
//  Copyright © 2020 loucse. All rights reserved.
//

#import "Person.h"

@implementation Person
-(void)shopping{
    
    //打印int类型 @ld  字符串类型 %@  float类型:%f
    
    NSLog(@"我正在购物... + 年龄:%ld", _age);
}

-(void)goShopping:(float)price{
    NSLog(@"我正在购物带参数,物品价格 :%f",price);
}

/**
 *就是java的set/get方法
 */
- (void)setAge:(NSInteger)age{
    _age = age;
}

- (NSInteger)age{
    return _age;
}
-(NSString *)name{
    return _name ;
}
-(void) setName:(NSString*)name
         setAge:(NSInteger)age
      setWeight:(float)weight{
    _name= name;
    _age=age;
    _weight = weight;
}

+(void) testClass{
    NSLog(@"这是类方法调用");
}
+(Person*)createPerson{
    return [Person new];
}
@end

  • 创建对象

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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
//        int t = 0;
        char *s = "Hello Object-c";
        NSLog(@"s = %s + " ,s);
        /**OC 常用类型*/
        NSInteger i = 0;//整形(占用8字节,实际上是C的long类型,也有可能是4字节 根据CPU平台判断编译不同的类型)
        BOOL bools = YES ;//布尔类型()
        BOOL bools2 = true;
        NSString *str = @"测试用字符串";
        NSLog(@"%@",str);
    }
    
    //使用Person类创建对象,需要导入
    //[类 new];
    Person *person1 = [Person new];
    Person *person2 = [Person new];
    //方法的调用
    //[对象 方法名];
    [person1 shopping];
    //带参数的方法
    [person2 goShopping:200.0];
    [person1 setAge:10];
    //在类的外部设置属性,要通过调用相应的设置器的方法
    NSLog(@"年龄是:%ld",[person1 age]);
    /**
     *类方法与实例方法的区别:在类方法中不能使用属性(全局变量)
     */
    [Person testClass];
    
    //1.创建对象的第二种方法 alloc:申请一块新的内存,用于存储对象的信息
    Person *per = [Person alloc];
    //2.调用init方法初始化这个内存,将此内存清理干净
    per = [per init];
    //3.合并写法
    Person *per2 = [[Person alloc] init];
    
    return 0;
}


猜你喜欢

转载自blog.csdn.net/sinat_30220049/article/details/106353215