Դասերն ընդդեմ կառուցվածքների

Օբեկտիվ կողմնորոշման (OO) ծրագրավորման լեզուների հիմնական հասկացությունների մի մասը ծածկագրավորում, ժառանգություն և բազմամորֆիզմ է: Դասը և Կառուցվածքը OO կոնստրուկցիաներից / գործիքներից երկուսն են, որոնք ծրագրավորողներին օգնում են գոյություն ունեցող OO ծրագրավորման լեզուների մեծ մասում հասնել այդ հասկացություններին (Java- ն չի ապահովում կառուցվածքներ): Դասերը իրական աշխարհի օբյեկտների վերացական ներկայացում են: Կառուցվածքները շատ նման են նմանատիպ օգտագործման դասարաններին, բայց դասերի համեմատ քիչ սահմանափակումներ ունեն: Երկու դասերն ու կառուցվածքն օգտագործվում են նմանատիպ տվյալների տվյալների խմբավորման համար:

Որո՞նք են դասերը:

Դասարաններում պատկերված է իրական աշխարհի օբյեկտների վերացական ներկայացումը, մինչդեռ հարաբերությունները պատկերում են, թե ինչպես է յուրաքանչյուր դասը կապված մյուսների հետ: Թե՛ դասերը, և՛ հարաբերությունները ունեն հատկություններ, որոնք կոչվում են ատրիբուտներ: Դասերում եղած մեթոդները ներկայացնում կամ սահմանում են այս դասերի պահվածքը: Դասերի մեթոդներն ու ատրիբուտները կոչվում են դասի անդամներ: Սովորաբար, ծածկագրումը ձեռք է բերվում ատրիբուտները մասնավոր դարձնելով ՝ ստեղծելով հանրային մեթոդներ, որոնք կարող են օգտագործվել այդ ատրիբուտներին մուտք գործելու համար: Օբեկտը դասի օրինակ է: Ժառանգությունը հնարավորություն է տալիս օգտագործողին ընդլայնել դասերը (կոչվում են ենթադասեր) այլ դասերից (կոչվում են գերադասարաններ): Պոլիմորֆիզմը ծրագրավորողին թույլ է տալիս դասի օբյեկտը փոխարինել իր գերծանրքաշային առարկայի օբյեկտի փոխարեն: Սովորաբար, խնդրի սահմանման մեջ հայտնաբերված գոյներն ուղղակիորեն դառնում են ծրագրի դասեր: Եվ նմանապես, բայերը դառնում են մեթոդներ: Հասարակական, մասնավոր և պաշտպանված տեսակները մուտքի բնորոշ ձևափոխիչներն են, որոնք օգտագործվում են դասերի համար: Դասի դիագրամը ցույց է տալիս համակարգերի դասերը, դասերի միջև փոխհարաբերությունները և դրանց հատկանիշները:

Որոնք են կառուցվածքները:

Ինչպես նշվեց վերևում, կառույցները շատ նման են նմանատիպ օգտագործման դասերի, բայց դասարանների համեմատ մի փոքր սահմանափակ հնարավորություններ ունեն: Իրականում դասերը կարելի է համարել որպես կառույցների ընդլայնում: Օրինակ, կառույցները նույնն են, ինչ C ++ դասերը, բայց դրանք լռելյայն ունեն: Օգտագործողի կողմից կառուցվածքը կարող է սահմանվել `կազմելու համար մի տեսակ, որը բաղկացած է: Դասերի նման, կառույցները պարունակում են անդամներ, որոնք կարող են պատկանել բազմաթիվ տեսակների: Հիմնաբառի կառուցվածքն օգտագործվում է C և C ++ կառուցվածքը սահմանելու համար, իսկ բանալի բառի Կառուցվածքը օգտագործվում է նույն NET ծրագրավորման լեզուներում:

Ի՞նչ տարբերություն դասերի և կառուցվածքների միջև:

Չնայած, որ և՛ դասերը, և՛ կառույցները ծրագրավորման լեզուներում հայտնաբերված նման կոնստրուկցիաներ են, դրանք ունեն նուրբ տարբերություններ: Սովորաբար դասը կառուցվածքի ընդլայնում է, և, հետևաբար, կառույցներն ունեն որոշակի հարաբերական սահմանափակումներ: Օրինակ, կառույցները կարող են համարվել նույնը, ինչ C ++ դասերը, բայց անդամները դասաժամերով լռելյայն չեն (ի տարբերություն կառույցների): Սա իրականում նշանակում է, որ դուք կարող եք սահմանել դաս և միևնույն կառուցվածքով բնութագրող մի կառույց, օգտագործելով համապատասխան մուտքի փոփոխիչները C ++ ում: Այնուամենայնիվ, C- ում կառուցվածքները չեն կարող պարունակել որևէ գործառույթ կամ ծանրաբեռնված գործողություններ: Բանալի բառերի դասը և կառուցվածքն օգտագործվում են համապատասխանաբար դաս և կառուցվածք C ++ ում սահմանելու համար: Երբ խոսքը վերաբերում է NET լեզուներին (C #, VB.NET և այլն) դասը հղման տեսակ է, մինչդեռ կառուցվածքը արժեքի տեսակ է: Եվ սովորաբար, կառույցները օգտագործվում են ավելի փոքր առարկաների համար, բայց դասերը օգտագործվում են ավելի մեծ առարկաների համար, որոնք պահվում են հիշողության մեջ ավելի երկար ժամանակահատվածների համար: