Дар марҳилаи эҷоди барнома, таҳиякунанда, чун қоида, танҳо сохтори онро медонад ва фарз намекунад, ки кадом маълумотро коркард мекунад. Аммо, дар баъзе ҳолатҳо, шумо бояд баъзе маълумотро дар codeи барнома ба таври возеҳ нишон диҳед (масалан, шумораи такрорҳо ё паёме, ки бояд бароварда шавад). Дар ин ҳолат, адабҳо ба кӯмак меоянд. Мундариҷа:
- Ҳарфҳо чистанд
- Намудҳои ҳарфҳо ва истифодаи онҳо
- Ҳарфҳои ададӣ
- Ҳарфҳои сатр
- Ҳарфҳои ҳарфҳо
- Ҳарфҳои булӣ
- Техникаи Jedi бо литералҳо
- Литералҳо дар курси JavaRush
- Хулоса
Литералӣ чист?
Литералҳо арзишҳои возеҳ дар codeи барнома мебошанд - константаҳои як намуди муайян, ки ҳангоми оғозёбӣ дар code мебошанд.class Test {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Дар ин синф "Салом ҷаҳон!" - айнан. Литералҳо дар намудҳои гуногун меоянд, ки аз рӯи ҳадаф ва тарзи навиштани онҳо муайян карда мешаванд.
Намудҳои ҳарфҳо ва истифодаи онҳо
Ҳама литералҳо арзишҳои ибтидоӣ мебошанд (сатрҳо, рақамҳо, аломатҳо, логикӣ). Шумо наметавонед an objectи аслӣ эҷод кунед. Ягона ҳарфи бо an object алоқаманд астnull
. Мувофиқи ибтидоӣ, литералҳо низ ба қисмҳо тақсим мешаванд:
- Рақамӣ:
- Ададҳо;
- Нуқтаи шинокунанда;
- сатр;
- Характер;
- Тизери ақл.
Ҳарфҳои ададӣ
Ҳарфҳои бутун
Ин навъи лафз соддатарин аст. Рақамҳо дар шакли стандартии худ бидуни нишон додани аломатҳо ё ягон чизи дигар навишта мешаванд. Ҳар як адад бо нобаёнӣ адади бутун аст. Яъне, шумо метавонед ба таври возеҳ арзиши тағирёбанда ё шумораи такрорҳоро дар давра муқаррар кунед. Java 4 системаи рақамиро дастгирӣ мекунад:- Бинарӣ
- Октал
- Даҳӣ
- шонздаҳӣ
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 он бо нохунакҳои ягона ҷудо карда мешавад. Дар асоси таҷриба ду намуди рамзҳо мавҷуданд:- Онҳоеро, ки аз клавиатура ворид кардан мумкин аст, аломатҳои оддӣ мебошанд;
- Аломатҳое, ки аз клавиатура ба таври оддӣ ворид кардан ғайриимкон аст (рамзҳои забонҳои гуногун, шаклҳо ва ғайра).
,
' ё ' @
'. Агар аломат аломати хидматӣ бошад (масалан, танаффуси сатр ё ҷадвал), аз чунин аломат бояд бо хатти баръакс халос карда шавад. Аломатҳоеро, ки аз консол ба таври оддӣ ворид кардан ғайриимкон аст, метавонанд дар шакли 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()); // Выводим
Хулоса: Чеҳраи табассум: 😀 Гарчанде ки дисплейи эмодзи метавонад даҳшатнок бошад (вобаста ба татбиқ), ин ҳалли ин корро хуб иҷро мекунад. Бо вуҷуди ин, ҷустуҷӯи эмодзии дилхоҳ дар ҷадвали рамзгузории стандартӣ душвор аст; бахши Эмотикон дар вебсайти расмӣ кам аст. Истифодаи китобхонаҳои иловагӣ хеле осонтар аст.
GO TO FULL VERSION