1.結(jié)構(gòu)體成員變量
設(shè)計(jì)一個(gè)”學(xué)生“類
1> 屬性
* 姓名
* 生日
用結(jié)構(gòu)體作為類的實(shí)例變量(生日)
//
// main.m
// 結(jié)構(gòu)體作為對(duì)象的屬性
//
// Created by wenjim on 17/9/7.
// Copyright 2017年 WenJim. All rights reserved.
//
#import <Foundation/Foundation.h>
/*
合理的設(shè)計(jì)一個(gè)“學(xué)生”類
學(xué)生有* 姓名 * 生日 兩個(gè)屬性和說(shuō)出自己姓名生日的方法
要求利用設(shè)計(jì)的學(xué)生類創(chuàng)建學(xué)生對(duì)象,并說(shuō)出自己的性命和年齡
描述學(xué)生類
事物名稱:學(xué)生(Student)
屬性:姓名(name),生日(birthday)
行為:說(shuō)出自己的性命和生日(say)
*/
typedef struct {
int year;
int month;
int day;
} Date;
/*
struct Date {
int year;
int month;
int day;
};
*/
@interface Student : NSObject
{
@public
NSString * _name;
// struct Date birthday;
Date _birthday;
}
-(void)say;
@end
@implementation Student
-(void)say
{
NSLog(@"名字:%@, 生日: %i-%i-%i",_name,_birthday.year,_birthday.month,_birthday.day);
}
@end
int main(int argc, const char * argv[]) {
// 1.創(chuàng)建學(xué)生對(duì)象
Student * student = [Student new];
// 2.設(shè)置學(xué)生對(duì)象的屬性
student -> _name = @"CWJ";
// 2.1 結(jié)構(gòu)體只能在定義的時(shí)候初始化
// 2.2 系統(tǒng)并不清楚它是數(shù)組還是結(jié)構(gòu)體
//因?yàn)榻Y(jié)構(gòu)體已經(jīng)初始化為0了,在次初始化就報(bào)錯(cuò)了,但是可以逐個(gè)賦值憨闰。
// student -> _birthday = (Date){1992,2,22};
student -> _birthday.year = 1993;
student -> _birthday.month = 2;
student -> _birthday.day = 22;
//也可以整體賦值
Datedate={1993,11,11};
student ->_birthday = date;
// 3.讓學(xué)生說(shuō)出自己的姓名和生日
[student say];
Date d1 = {1993,10,17};
Date d2;
d2 = d1; // 本質(zhì)是將d1所有的屬性的值都拷貝一份賦值給d2
d2.year = 1995;
printf("d1 = year = %i\n",d1.year);
printf("d2 = year = %i\n",d2.year);
return 0;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者