JavaRush /Блоги Java /Random-TG /Литералҳо дар Java

Литералҳо дар Java

Дар гурӯҳ нашр шудааст
Дар марҳилаи эҷоди барнома, таҳиякунанда, чун қоида, танҳо сохтори онро медонад ва фарз намекунад, ки кадом маълумотро коркард мекунад. Аммо, дар баъзе ҳолатҳо, шумо бояд баъзе маълумотро дар codeи барнома ба таври возеҳ нишон диҳед (масалан, шумораи такрорҳо ё паёме, ки бояд бароварда шавад). Дар ин ҳолат, адабҳо ба кӯмак меоянд. Мундариҷа:

Литералӣ чист?

Литералҳо арзишҳои возеҳ дар codeи барнома мебошанд - константаҳои як намуди муайян, ки ҳангоми оғозёбӣ дар code мебошанд.
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
Дар ин синф "Салом ҷаҳон!" - айнан. Литералҳо дар намудҳои гуногун меоянд, ки аз рӯи ҳадаф ва тарзи навиштани онҳо муайян карда мешаванд.

Намудҳои ҳарфҳо ва истифодаи онҳо

Ҳама литералҳо арзишҳои ибтидоӣ мебошанд (сатрҳо, рақамҳо, аломатҳо, логикӣ). Шумо наметавонед an objectи аслӣ эҷод кунед. Ягона ҳарфи бо an object алоқаманд аст null. Мувофиқи ибтидоӣ, литералҳо низ ба қисмҳо тақсим мешаванд:
  1. Рақамӣ:
    • Ададҳо;
    • Нуқтаи шинокунанда;
  2. сатр;
  3. Характер;
  4. Тизери ақл.

Ҳарфҳои ададӣ

Ҳарфҳои бутун

Ин навъи лафз соддатарин аст. Рақамҳо дар шакли стандартии худ бидуни нишон додани аломатҳо ё ягон чизи дигар навишта мешаванд. Ҳар як адад бо нобаёнӣ адади бутун аст. Яъне, шумо метавонед ба таври возеҳ арзиши тағирёбанда ё шумораи такрорҳоро дар давра муқаррар кунед. Java 4 системаи рақамиро дастгирӣ мекунад:
  • Бинарӣ
  • Октал
  • Даҳӣ
  • шонздаҳӣ
JDK 7 қобorяти навиштани арзишҳои бинариро ҷорӣ кард . Ин бо истифода аз префикси 0b ё 0B анҷом дода мешавад . Баъдан навиштан бо истифода аз 0 ва 1 меояд. Рақамҳо дар ҳашттогӣ бо истифода аз 0 пешбаранда навишта мешаванд. Рақамҳои дуруст аз 0 то 7 мебошанд. Навиштани 09 ё 08 боиси хатогии ҷамъоварӣ мегардад. Дар системаи шумораҳои даҳӣ мушкилот вуҷуд надорад : рақамҳо дар шакле, ки ба мо маълум аст, нишон дода мешаванд. Ягона маҳдудият дар он аст, ки рақам бо 0 оғоз шуда наметавонад, зеро компилятор онро ҳамчун ҳашттогӣ қабул мекунад. Рақамҳо дар шонздаҳӣ бо истифода аз префиксҳои 0x ва 0X навишта мешаванд. Рақамҳои дуруст аз 0 то 15 мебошанд, ки дар он рақамҳои 10-15 мутаносибан бо аломатҳои AF нишон дода мешаванд.
public static void main(String[] args) {
       int a = 0b1101010110;
       int b = 012314;
       int c = 456;
       int d = 0x141D12;
       System.out.println("Число a в двоичной системе: " + a);
       System.out.println("Число b в восьмеричной системе: " + b);
       System.out.println("Число c в десятичной системе: " + c);
       System.out.println("Число d в шестнадцатеричной системе: " + d);
}
Натиҷа: Шумораи а дар системаи дуӣ: 854 Шумораи b дар системаи ҳашттоӣ: 5324 Шумораи c дар системаи даҳӣ: 456 Шумораи d дар системаи шонздагӣ: 1318162 Сарфи назар аз он, ки ададҳо дар системаҳои рақамии гуногун нишон дода шудаанд, дар барнома онҳо ҳамчун даҳӣ коркард карда мешаванд. рақамҳо. Зиёд кардани арзишҳо ба хатогии тартибдиҳӣ оварда мерасонад:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
Вақте ки дар марҳилаи тартибдиҳӣ иҷро мешавад, мо натиҷаи зеринро мегирем:

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
Дар бораи чоп кардан чӣ гуфтан мумкин аст? Ҳар як адади ададӣ навъи пешфарз дорад int. Агар арзиши он берун аз ҳудуди тағирёбандаи таъиншуда бошад, хатогии тартибдиҳӣ ба амал меояд. Ҳангоми истифодаи намуд, longшумо бояд дар охири он аломате гузошта L, ки ин намудро нишон медиҳад:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
Кӯшиши тартиб додани натиҷаҳо дар хатои зерин:

Error(11, 26) java: integer number too large: 1101010110

Литералҳои нуқтаи шинокунанда

Рақамҳои нуқтаи шинокунанда ё рақамҳои касрро бо ду роҳ навиштан мумкин аст. Якум ҳамчун касри даҳии классикӣ аст: 3.14159 ё 2.718281282459045. Дуюм дар шакли илмӣ, яъне касри оддии даҳӣ бо иловаи суффикс дар шакли аломати e ё E ва қудрати 10, ки ба воситаи он касри зикршуда бояд зарб карда шавад. Масалан, 4.05E-13, ин маънои 4.05 * 10 -13 мебошад .
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
Натиҷа: Навъи дугонаи классикӣ: 2.718281828459045 Навъи дуҷонибаи илмӣ: 4.05E-13 Баръакси ададҳои бутун ва системаҳои шумора, қайди илмӣ дар як тағирёбанда нигоҳ дошта мешавад ва ҳамон тавре ки аломати классикӣ коркард мешавад. Дар бораи чоп кардан чӣ гуфтан мумкин аст? Ҳар як рақами нуқтаи шинокунанда як намуди эҷод мекунад double. Агар шумо бояд намудро истифода баред float, шумо бояд дар охири он fё илова кунед F. Дар ин ҳолат doubleон ба намуди кам карда мешавад float. Ин ба таври худкор рӯй намедиҳад:
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
Ҳангоми оғоз дар марҳилаи тартибдиҳӣ мо хатои зеринро мебинем:

Error:(11, 27) java: incompatible types: possible lossy conversion from double to float

Ҳарфҳои сатр

Сатри литералӣ маҷмӯи аломатҳоест, ки дар нохунакҳои дукарата дохил карда шудаанд. Ин намуд ҳамчун ададҳои ададӣ истифода мешавад. Сатр инчунин метавонад аломатҳои хидматрасониро дар бар гирад, ки бояд гурезанд (ба истилоҳ пайдарпайии фирор). Мисол:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
Натиҷа: Ин сатри муқаррарӣ аст. Ҳамон тавре ки ба дигарон стандартӣ ва ғайриоддӣ аст. Ва ин як «хати» ғайриоддӣ аст. Агар факат барои он ки баъзе аз «калимахо»-и он дар «ихтисос» бошанд.

Ҳарфҳои ҳарфҳо

Литералҳои аломатҳо дар Java бо маҷмӯи аломатҳои Юниcode ифода карда мешаванд, яъне ҳар як аломат арзиши 16-бит аст. Барои нишон додани аломат дар code он бо нохунакҳои ягона ҷудо карда мешавад. Дар асоси таҷриба ду намуди рамзҳо мавҷуданд:
  1. Онҳоеро, ки аз клавиатура ворид кардан мумкин аст, аломатҳои оддӣ мебошанд;
  2. Аломатҳое, ки аз клавиатура ба таври оддӣ ворид кардан ғайриимкон аст (рамзҳои забонҳои гуногун, шаклҳо ва ғайра).
Аломатҳои муқаррариро метавон ба таври возеҳ нишон дод: ' ,' ё ' @'. Агар аломат аломати хидматӣ бошад (масалан, танаффуси сатр ё ҷадвал), аз чунин аломат бояд бо хатти баръакс халос карда шавад. Аломатҳоеро, ки аз консол ба таври оддӣ ворид кардан ғайриимкон аст, метавонанд дар шакли 16-битии онҳо муайян кунанд. Барои ин, шумо бояд рамзи аломатро бо префикси \u, масалан ' \u00F7', муайян кунед. Шумо инчунин метавонед аломатҳоро бо услуби ҳашттогӣ (рақами се-рақама) бо танҳо илова кардани хатти баръакс дар аввал, масалан ' \122', муайян кунед. Ба андешаи ман, истифодаи он хеле осонтар аст \u. Намунаи истифода:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
Натиҷа: Амперсанд - & Рамзи Шӯъба - ÷

Ҳарфҳои булӣ

Соддатарин калимаи мантиқӣ аст. Танҳо 2 арзиш вуҷуд дорад: falseва true, ки ба таври возеҳ бидуни аломатҳои гуногун нишон дода шудаанд. Чунин литералҳоро метавон ба тағирёбандаҳои навъи мантиқӣ таъин кард ё дар ҷойе, ки навъи мантиқӣ интизор аст, таъин карда шавад (масалан, дар блоки if, гарчанде ки ин амалия одоби бад ҳисобида мешавад, нармтар карда мешавад).
boolean flag = false;

if(true) {
    // Действия будут выполняться всегда.
}

Техникаи Jedi бо литералҳо

Бо шарофати рамзҳо дар Java, шумо метавонед бисёр чизҳои ҷолибро иҷро кунед, аз ҷумла идоракунии эмодзиҳо. Масалан, биёед чеҳраи табассумро нишон диҳем:
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
Хулоса: Чеҳраи табассум: 😀 Гарчанде ки дисплейи эмодзи метавонад даҳшатнок бошад (вобаста ба татбиқ), ин ҳалли ин корро хуб иҷро мекунад. Бо вуҷуди ин, ҷустуҷӯи эмодзии дилхоҳ дар ҷадвали рамзгузории стандартӣ душвор аст; бахши Эмотикон дар вебсайти расмӣ кам аст. Истифодаи китобхонаҳои иловагӣ хеле осонтар аст.

Литералҳо дар курси JavaRush

Дар курси JavaRush, литералҳо дар сатҳи 10 дар лексияи 8-и курси Java Syntax омӯхта мешаванд , ки дар он мисолҳо фаҳмонда медиҳанд, ки ҳарфҳо чист ва чаро онҳо лозиманд. JavaRush як курси онлайн оид ба барномасозии Java бо таваҷҷӯҳ ба амалия мебошад: 1200+ вазифаҳо бо санҷиши фаврӣ, лоиҳаҳои хурд, бозиҳо.

Хулоса

Литералҳо дар Java як чизи мувофиқ дар ҳама гуна барномаҳо мебошанд, аммо онҳо бояд дар он ҷойҳое истифода шаванд, ки мувофиқ аст. Шумо набояд параметрҳои пайвасти пойгоҳи додаҳо ё ҳар гуна арзишҳоеро, ки метавонанд дар давоми давраи ҳаёти барнома дар codeи ибтидоӣ тағйир ёбанд, рамзгузорӣ накунед.
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION