OC의 유형, 구조 방법, 단리 대상 총결
먼저 간단하게 구분해 봅시다.
//
- (void)print;
//
+ (void)print;
일반적으로 클래스를 만들 때, 우리는 이 클래스 안의 방법을 더욱 잘 사용하기 위해서이다.
일반적으로 먼저 #import "xxx.h"를 사용하여 도입합니다.그리고 초기화합니다.다음과 같이 하십시오.
Cal *cal = [[Cal alloc] init];
//
int suq1 = [cal mulNum1:5 widthNum2:6];
이렇게 사용하면 OK입니다.그럼 좀 더 우아한 스타일링이 있을까요?있다!클래스 방법을 사용합니다.
다음은 하나를 사용합니다: 두 수의 화, 곱셈을 구하세요!설명우리는 하나의 종류를 정의할 수 있는데, 그 안에 좋은 방법을 정의할 수 있다.(그것의 우아함은 이 종류에서 스스로 초기화되었다는 데 있다.
- (int)pushNum1:(int)num1 andNum:(int)num2
{
return num1+num2;
}
- (int)mulNum1:(int)num1 widthNum2:(int)num2
{
return num2*num2;
}
+ (int)sumOfSquareWithNum1:(int)num1 andNum2:(int)num2
{
Cal *cal = [[Cal alloc] init];
int squl1 = [cal mulNum1:num1 widthNum2:num2];
int squl2 = [cal mulNum1:num2 widthNum2:num2];
int sum = [cal pushNum1:squl1 andNum:squl2];
return sum;
}
그럼 이게 뭐가 좋아요?
#import "Cal.h"
//
int sum = [Cal sumOfSquareWithNum1:5 andNum2:6];
보이시나요? 이렇게 쓰면 간결하지 않나요? 그리고 호출할 수 있는 클래스 안이 간결할 거예요.
2. 구조 방법의 사용.
구조: 자신의 모든 속성을 실례적으로 사용할 수 있는 방법을 만들고 자신을 되돌려주는 것이다.
그렇다면 그것의 장점은 또 무엇입니까?일단 이거 보고 보내주세요!보면 알겠지.
- (Cat *)init
{
//
self = [super init];
// [super init]
// nil,
if (self != nil) {
_name = " ";
}
return self;
}
- (Cat *)initWithColor:(char *)color
{
self = [super init];
if (self != nil) {
_color = color;
}
return self;
}
- (Cat*)initWithName:(char *)name andColor:(char*)color
{
self = [super init];
if (self != nil) {
_name = name;
_color = color;
}
return self;
}
- (void)printInfo
{
NSLog(@" :%s :%s",_name,_color);
}
어떻게 사용하나요?클래스 변경 호출을 직접 사용합니다.
Cat *cat = [[Cat alloc] init];
// , ( 。 set )
Cat *langMao = [[Cat alloc] initWithName:"langMao" andColor:"Blue"];
[langMao printInfo];
3. 배당금 대상(전가)이 분리될 수 없는static
기억해라: (정적 클래스) 를 만들고 초기화해야 한다.(구성법과 다르네요! [슈퍼 init])
+ (Class *)defaultCar
{
//class nil
static Class * class;
if (car == nil) {
class = [[Class alloc] init]; //
}
return class;
}
역할: 단일 예시 대상을 만듭니다. 단일 예시 대상은 값을 전달할 수 있습니다.또는 어떤 대상을 만드는 데 자원을 너무 많이 쓰고 자주 사용할 때도 단일 대상을 만들 수 있습니다.
static ,
이것은 약간 앞부분 Vuex의 원리 같다.상점을 먼저 만드는 거야.그리고 필요한'상품'을 도입한다.마지막으로 가져가서 교환해 주세요.
1. 상점 CarStore 만들기
// “ ”
#import "Car.h"
//
+ (void)printBrand;
2. 상품(다채로운) Car 만들기
@interface Car : NSObject
{
char * _brand;
}
+ (Car*)defaultCar;
- (void)setBrand:(char*)brand;
- (void)printInfo;
@end
상품의 속성, 용도(방법)를 실현하다.
@implementation Car
+ (Car *)defaultCar
{
//car nil
static Car * car;
if (car == nil) {
car = [[Car alloc] init];
}
return car;
}
- (void)setBrand:(char *)brand
{
_brand = brand;
}
- (void)printInfo
{
NSLog(@"cat's brand is %s",_brand);
}
3. 장사하러 간다.(각종 매매법)
// ( )
Car * car1 = [Car defaultCar]; // defaultCar ( )
[car1 setBrand:"bmw"];
[car1 printInfo];
Car * car2 = [Car defaultCar];
[car2 printInfo];
// ( )
[CarStore printBrand]; // car2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.