Увод у претворбу типова на Јави

Једном када се варијабле, као и константе разних типова, саставе у израз, оне се могу променити у сличан тип. Ова техника претварања једног унапред дефинисаног типа у један други је позната као претворба типа у Јави.

Унесите конверзију

Постоје 2 различите врсте конверзије које користимо у програмским језицима.

1. Неизмерна претворба типа

Ако се претворба типа врши одмах путем компајлера без укључивања програмера, претворба типа је позната као имплицитна конверзија типа. Компајлер фундаментално подстиче сваки операнд према типу података највећег операнда.Не губитак података догађа се током конверзије података. Нема шансе да избаци изузеће током конверзије и стога је познат као тип-сафе. Конверзија мање величине величине у превише већи број може бити имплицитна конверзија. Трансформација података целог броја у плутајући.

float i=0;
int j=10;
i=j;

// Ово може бити имплицитна трансформација, јер флоат може бити већи од целог броја, стога нема недостатка података И такође није изузетак.

2. Експлицитна претворба типа

Конверзија типа која се може извршити преко програмера позната је као експлицитна конверзија типа. у основи, програмер прави израз да постане одређене врсте. Експлицитна трансформација типа може бити позната као типецастинг. Губитак података може се догодити или не мора настати током конверзије података. Због тога постоји вероватноћа губитка детаља. може да испадне грешка ако можда покуша да изврши без куцања. Трансформација већег броја у мање величине може бити експлицитна конверзија.

float k=123.456
int i= (int) k

// ово може бити експлицитна конверзија, као и, (инт) је типецаст, оператор. У овом тренутку ћемо можда успети да избегнемо изузетак, али можете да видите видљиви губитак података. тј. и = 123

// .456 може бити испуштено у процесу конверзије

Унесите Цонверсион ин Јава

Као и други програмски језици, у Јави постоје и две врсте конверзије:

Имплицитна конверзија типа

  • То су углавном оно што називамо проширивањем конверзије и то се може извршити аутоматски јер прелазимо на шире типове података. Дакле, ако имамо 32-битни цели број и желимо да пређемо на 64-битни цели број, то је шири. Дакле, вредност се може сигурно преместити тако да се оне могу извршити имплицитно. А преводилац мора донети одлуку о томе како извршити ове конверзије, а правила су прилично јасна.
  • Ако у њему имамо израз са више (Мешовитих) целих величина, ако имамо кратак и дуг, без обзира на то која је највећа цела величина у коју ће се ствари претворити. Дакле, ако радимо операцију са кратком и дугом, кратка ће се подразумијевати.
  • Ако изводимо операцију са мешовитим величинама с помичним зарезом, па имамо флоат и доубле, они ће увек прелазити на доубле јер је доубле највећа величина с помичним зарезом.
  • А онда, ако имамо операцију која користи мешане целобројне типове и типове с помичним зарезом, преводилац ће пребацити на највећу плутајућу тачку у једначини. Дакле, ако радимо операцију с дугим и на води, дуго ће бити бачено на пловећи.
  • Ако радимо операцију са дугом и двоструком, дугачка ће се тада доделити двоструком.

Изричита конверзија типа

  • Изричито се понашамо у нашем коду приликом коришћења ове функције цаст. Када то учинимо, преузимамо одговорност за оно што се догоди као резултат такве врсте претварања. Због тога можемо извести и растућу конверзију и уску конверзију. Дакле, ширење иде од 32-битног до 64-битног, сужавање, прелазак са 64-битног на 32-битни. Требали бисмо само бити свјесни да знамо шта би се потенцијално могло догодити.
  • Ако изричито избацимо из помичне тачке у цео број, тако да плутајуће тачке могу имати фракциони део, цели број не може, па би сваки фракциони део био испуштен када смо то померили до целог броја.
  • Желите бити опрезни приликом извођења конверзије за сужавање. Ако имамо 64-битни цели број, он има способност да задржи вредности које су превелике да би се уклопиле у 32-битни цели број.
  • Дакле, ако преносимо 64-битни на 32-битни, програм ће то заиста и урадити, али ако је вредност превелика да би се уклопила у 32-битну, из тога ћете добити неке чудне резултате. На тај начин желите да будете сигурни да када га кастрирате радите сужавање, за које знате да је оно што радите сигурно.
  • И последње је управо то што желите да будете опрезни приликом претварања из целог броја у плутајућу тачку јер ако имате цео број са великим бројем значајних цифара, због начина на који је меморисана плутајућа тачка можете изгубити део те значајне цифре.

Примери претворбе типа

Доље су детаљно наведени примери претворбе типа:

Шифра:

Овде имамо једноставан програм, нека декларација на врху, плута, двострука, бајтова, кратка и дугачка, а променљиве се именују како би помогле да се идентификује какав је њихов тип као флоат је флоатВал,

Шифра:

лонг је лонгВал

Шифра:

А програм само штампа поруку успеха ако се покрене.

Па само да видимо како се нека од претворби типова овде игра. Дакле, прије свега, идемо само напријед и створимо варијаблу. Имамо кратко и назваћемо га резултатом.

У ствари, идемо напријед и то називамо резултатом1. А хајде да направимо једноставан задатак. И прво ћемо му доделити битеВал. Као што очекујемо, ако наставимо и покренемо то, успешно трчимо.

Шифра:

Излаз:

Знамо да је то валидан задатак јер се бајт може доделити кратком јер је то растућа конверзија.

Ако узмемо овај битеВал и умјесто тога направимо га лонгВал, сада је заправо дугачак, ако то покренемо, овде добијамо поруку о погрешци која каже неспојиви тип, могући губитак претворбе из дугог у кратко.

Шифра:

Дакле, оно што можемо овде урадити је да можемо да урадимо експлицитну групу. Само ћемо кратко то рећи. Дакле, сада важи тако да га можемо покренути.

Шифра:

И наравно, успијева. Јер дугачак није могао прећи у кратак, јер је то било сужење претворбе.

Излаз:

Али стављањем експлицитне представе испред ње, то је сада валидно. Ако желимо, можемо да напишемо да је нотација врло јасна и да кажемо да знате, знамо иако је бајтова претворба законита, желимо да изричито покажемо да је преносимо стављањем кратког уноса тамо, можемо да урадимо то, и то је потпуно легално.

Шифра:

Излаз:

Па погледајмо други сценарио. Створићемо другу променљиву коју ћемо назвати резултат2 , а резултат2 такође је кратак. И оно што овде желимо је да само узмемо свој битеВал и желимо да одузмемо лонгВал. Сада знамо да то није легално, јер ће резултат израза бити величина највећег целог броја у њему, а то је дужина.

Шифра:

Дакле, ако ово покренемо, добивамо грешку која каже да није валидно претварање дуга у кратко.

Али рецимо да желимо да наставимо и задржимо тај резултат кратким. Морамо да урадимо главну улогу. Али ми желимо да овај пут представимо вредност целокупног резултата. Дакле, оно што ћемо учинити је ставити кратку глуму испред ње овде.

Ставите кратку глуму испред ње. И све то умотајте у заграде. И покрени га.

Шифра:

Успешно ће се покренути.

Излаз:

Сада прогласите другу варијаблу која се зове резултат3, али декларирајте је као дугу. Тако смо добили резултат 3, а оно што ћемо овде учинити доделит ћемо том нашем лонгВал - флоатВал. Тако да то покренемо, грешка се губи претворбом претварајући се из флоат у лонг јер сваки пут када имамо цијели број и било који тип с помичном зарезом, резултат ће бити тип с помичном зарезом.

Шифра:

Дакле, идемо напријед и претворимо наш резултат сада у флоат. Дакле, чинећи то плутачу, требали бисмо бити у могућности да га водимо и покренемо га. И трчите успешно.

Шифра:

Излаз:

Али сада ако овде узмемо флоатВал и претворимо ово у доублеВал и ако покушамо да покренемо ово, добивамо грешку, јер каже да ће резултат бити двострук, јер када направите цео број и плутајућу тачку, то је величина највеће плутајуће тачке у једначини.

Шифра:

Дакле, идемо напријед и учинимо овај резултат двоструким, па ћемо га сада моћи и покренути.

Шифра:

Излаз:

Закључак

1. Варијабле су снажно куцане у Јави
2. Примитивни типови

  • Типови целих бројева, типови са помичним зарезом, цхар, буолов тип

3. Унесите конверзију

  • Често се морамо кретати између различитих врста, јер ће наши програми, како постају сложенији, вероватно укључивати више типова података.
  • Компајлер може обрадити конверзије типа које се шире, прелазећи из једног типа у други који могу да садрже веће вредности,
  • Али такође можете користити кастинг да изричито извршите оне врсте конверзија које компајлер не може извршити аутоматски.

Препоручени чланци

Ово је водич за претворбу типова на Јави. Овде смо расправљали о уводу, претворби типа у јави, као што је имплицитна и експлицитна, заједно са примерима који користе различите ситуације. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Конструктор на Јави
  2. Сортирање на Јави
  3. Конструктор на Јави
  4. ЈЦхецкБок на Јави
  5. Тхров вс Тхров | Топ 5 разлика које би требало да знате
  6. Како имплементирати потврдни оквир у боотстрапу
  7. Конверзија у Јави са примерима

Категорија: