Különbség a típusöntés és a típuskonverzió között

Szerző: Laura McKinney
A Teremtés Dátuma: 1 Április 2021
Frissítés Dátuma: 5 Lehet 2024
Anonim
Különbség a típusöntés és a típuskonverzió között - Technológia
Különbség a típusöntés és a típuskonverzió között - Technológia

Tartalom


A típuskonverzió és a típusöntés közötti alapvető különbség, azaz a típuskonverziót a fordító automatikusan végzi, míg a típusöntést a programozónak kifejezetten meg kell tennie.

A „típus casting” és a „type conversion” két kifejezés akkor fordul elő, amikor szükség van az egyik adattípus konvertálására a másikra. Ha a két típus kompatibilis egymással, akkor az egyik típus konvertálását automatikusan a fordító hajtja végre. Beszéljük meg az összehasonlító táblázat segítségével a típusöntés és az átalakítás különbségeit.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat:

Az összehasonlítás alapjaTípus CastingTípuskonverzió
JelentésAz egyik adattípust a felhasználó hozzárendel egy másikhoz egy cast operátor segítségével, majd "Type Casting" -nek hívják.Az egyik adattípus automatikus fordítása a másikra a fordító által "Type Conversion" néven történik.
AlkalmazottA típusos átküldés két nem kompatibilis adattípusra is alkalmazható.A típuskonverzió csak akkor valósítható meg, ha két adattípus kompatibilis.
OperátorAdattípus átküldéséhez egy adatátviteli operátorra () van szükség.Nincs szükség operátorra.
Az adattípusok méreteA rendeltetési hely lehet kisebb, mint a forrás típus.Itt a rendeltetési hely típusának nagyobbnak kell lennie, mint a forrás típusának.
MegvalósultEzt a program tervezése során végzik.Ez kifejezetten történik a fordítás során.
Konverziós típus

Szűkítő konverzió.Széles körű átalakulás.
Példaint a;
b byte;
...
...
b = (byte) a;
int a = 3;
úszó b;
b = A; // érték b-ben = 3.000.


A típusöntés meghatározása

Típus casting meghatározható úgy, hogy az egyik adattípus átvitele egy másik adattípusra a programozó által a program tervezésének idején. Az egyik adattípus automatikus konvertálása a másikra nem mindig lehetséges. Feltétel lehet, hogy a „rendeltetési hely típusa” kisebb, mint a „forrás típus”. Ezért a programozónak a nagyobb adattípust kifejezetten kisebb adattípusra kell leadnia a '()' casting operátor használatával. Mivel a nagyobb adattípus a kisebb adattípusra modulálódik, akkor azt is „szűkítő konverziónak” hívják.

Nyilatkozat:

Destination_type = (target_type) változó / érték // céltípus olyan típus, amelyben meg akarja konvertálni a forrás típusát, mindig a rendeltetési hely típusa.

Példa

Megértjük egy példával. Az „int” adattípust „byte” -vá szeretné konvertálni. Most, mivel a „byte” kisebb, mint az „int”, a típus konvertálása nem engedélyezett. Itt az „int” -et implicit módon „bájtmá” kellett átalakítani az „()” casting operátor használatával. Mivel az „int” nagyobb, mint az „byte”, az „int” mérete „int mod byte” tartományra csökken.


int a; b byte; ... ... b = (byte) a;

Amikor az „úszót” átalakítják „int” -re, az úszó mérete csonkolódik, mivel az „int” nem tárolja a tört értékét. Ha a rendeltetési hely típusa túl kicsi ahhoz, hogy a forrás típus beleférjen, akkor a forrás típusa modulo rendeltetési típusú „tartomány”. Az átküldés akkor is alkalmazható, ha az adattípusok kompatibilisek. Jó gyakorlat a típusöntés, ha bármilyen típusú átalakításra van szükség.

A típuskonverzió meghatározása

Típuskonverzió az egyik adattípus automatikus konvertálása a másikra, ha szükséges, kifejezetten a fordító által. De a típuskonverzió előtt két feltételnek kell teljesülnie.

  • A forrás és a cél típusának kompatibilisnek kell lennie.
  • A rendeltetési hely típusának nagyobbnak kell lennie, mint a forrás típusának.

Ennek a két feltételnek teljesülnie kell a típuskonverzió eléréséhez, és ezt a fajta konverziót „kibővítő konverziónak” nevezzük, mivel egy kisebb típust nagyobb típusúvá alakítunk, és a típus kiszélesedése történik. A kiterjedt átalakításhoz az „int”, „float” numerikus típusok kompatibilisek egymással, míg a numerikus char és a logikai vagy a char a logikai érték szintén nem kompatibilis.

Példa

Ez a példa jobb képet ad erről

int a = 3; úszó b; b = A; // érték b-ben = 3.000.

Itt az „int” átalakul „float” -ra, amely nagyobb, mint az „int”, tehát a forrás típusa kiszélesedik. Itt nincs szükség casting operátorra, mivel a fordító ezt kifejezetten megteszi.

  1. Az alapvető különbség, amely megkülönbözteti a típusöntést és a típuskonverziót, az, hogy a típusöntés az egyik típusnak a másikvá történő átalakítása, amelyet a programozó hajt végre. Másrészt a típuskonverzió az egyik típus átalakítása a másikra, amelyet a fordító végez fordítás közben.
  2. A típusöntés alkalmazható az adattípusokra, amelyek esetleg nem kompatibilisek egymással. Ezzel szemben a típuskonverzió csak az egymással kompatibilis adattípusokra alkalmazható.
  3. Az egyik típus átváltása típusöntésben a „()” casting operátor megköveteli, míg az egyik adattípus konvertálása a típus átalakításában egyetlen operátort sem igényel.
  4. Míg az egyik adattípust a másikba konvertálja a típusos casting során, a cél típusa nagyobb vagy kisebb lehet, mint a forrás típusa. Ezzel szemben a rendeltetési helynek nagyobbnak kell lennie, mint a forrás típusának a típuskonverzióban.
  5. Az egyik típus átváltása egy másik típusba a kódolás közben történik. Ezzel szemben a típus átalakításánál az egyik típus átalakítása kifejezetten az összeállítás során történik.
  6. A típusöntést szűkítő konverziónak nevezzük, mert itt a cél típusa kisebb lehet, mint a forrás típus. A típuskonverziótól eltérően szélesebb konverziónak nevezzük, mert itt a rendeltetési helynek nagyobbnak kell lennie, mint a forrástípusnak.

Következtetés:

Megállapítható, hogy a típuskonverzió és a típusú casting egyaránt végrehajtják az egyik adattípus másikra konvertálásának feladatát, de abban az értelemben különböznek egymástól, hogy a type castingot a programozó hajtja végre, az cast operator () segítségével, a típus konvertálást pedig a fordító hajtja végre. , és nem használ semmilyen operátort.