【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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章