O‘zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi muhammad al


Download 271.22 Kb.
bet8/9
Sana08.01.2022
Hajmi271.22 Kb.
#247281
1   2   3   4   5   6   7   8   9
Bog'liq
416-19 guruh talabasi Yuldoshov Abduraxmon

Javoblar


You can store them in a Map. Then with java < 8:

map.put("london", new Runnable() {

public void run() { functionA(); }

});

Yoki java 8 bilan statik usulni qabul qilsangiz:



map.put("london", YourClass::functionA);

Yoki bir misol usuli bilan:



map.put("london", this::functionA);

Barcha uch holatlarda siz faqatgina:



Runnable r = map.get(input.toLowerCase());

if (r != null) r.run();

4

qo'shib qo'ydi 08 Mart 2014 ichida 07:53 muallif assylias



 

manba

@quartz Mening tahrirlashga qarang.

qo'shib qo'ydi 08 Mart 2014 ichida 08:07, muallif assylias, manba

@Sakura no YourClass  functionA  ning imzosi  run  ning imzosiga mos kelishi sharti bilan har qanday sinf bo'lishi mumkin, ya'ni  static void functionA()  funksiyasini qaytaradi.

qo'shib qo'ydi 09 Mart 2014 ichida 12:29, muallif assylias, manba

Runnable.run()   void  kodini qaytaradi. Agar siz usulni qaytarib olishni xohlasangiz,  Callable  ni ishlatasiz

qo'shib qo'ydi 08 Mart 2014 ichida 08:25, muallif Brian Roach, manba

Buni sinab ko'rishim mumkin, lekin bu erda to'liqlik uchun  get  kodini qo'shishingiz mumkin, agar u Java 8da bo'lsa va siz  get  ni qabul qilsangiz qanday qilib uni chaqirishingiz mumkin?

qo'shib qo'ydi 08 Mart 2014 ichida 08:00, muallif sakura, manba

@assylias Albatta, hatto Java8 da xuddi shunday, Map va sizning namunangiz  YourClass  Runnable. To'g'ri? keyin  static  .. run() statik emasmi?

qo'shib qo'ydi 08 Mart 2014 ichida 08:11, muallif sakura, manba

Rahmat assylias, Qanday amalga oshirish vazifasi chaqiramiz?

qo'shib qo'ydi 08 Mart 2014 ichida 08:05, muallif quartz, manba

Bu  enum  uchun ajoyib imkoniyat:

enum City {

London {

@Override

void function() {

System.out.println("Hello from England");

}

},

Moscow {

@Override

void function() {

System.out.println("Hello from Russia");

}

},

Delhi {

@Override

void function() {

System.out.println("Hello from India");

}

};

//They ALL must have a `function`.

abstract void function ();

}

public void test() {

City.valueOf("Moscow").function();

}

1

qo'shib qo'ydi 08 Mart 2014 ichida 08:52 muallif OldCurmudgeon



 

manba

C ++ da siz std :: map-ni ishlatishingiz mumkin. Kod shu kabi bo'ladi:



typedef (void)(*funcPtr)(); //declaring a compatible function pointer

std::map myFunctions;

myFunctions["london"]=functionA;

myFunctions["paris"]=functionB;

//etc etc...

//calling the function

string wantedCity="london";

myFunction[wantedCity]();

EDIT: Men C ++-ni teglardan olib tashlaganingizni ko'raman. java shunga o'xshash konteynerga ega bo'lsa, siz uning usullarini qidirishingiz mumkin.

1

qo'shib qo'ydi 08 Mart 2014 ichida 07:55 muallif Yaniv Nikan



 

manba

Siz Guava Funktsiyasini bu holda xarakterli qiymat sifatida ishlatishingiz mumkin. Yaxshi yo'l Java polimorfizmidan foydalanish va pastki klassdagi ushbu mantiqni (functionA, functionB) aniqlashi mumkin:



public interface City {

public void doSomething();

}

public class Example {

private Map cities;

public void run(String param) {

cities.get(param).doSomething();

}

}

Keyin siz shaharga (London, Moskva ...) kerak bo'lgan ko'plab ilovalarni belgilab olasiz va ularning xaritalarini xaritaga qo'shasiz

1

qo'shib qo'ydi 08 Mart 2014 ichida 07:52 muallif hmashlah



 

manba

Ha, agar siz usul qiymati qaytarsa, iloji bor. Misol uchun:



public SomeReturnType doSomthing(){

return someReturnType;

}

va sizning xashmangizda quyidagilarni bajaring



HashMap hm = new HashMap();

Boolean usulda solishtirganda, ehtimol, eng yaxshi variant.

0

qo'shib qo'ydi 08 Mart 2014 ichida 07:49 muallif Mohammad Najar



 

manba

Buning qanday ahamiyatga ega ekanligiga men amin emasman. Men yangi sinf yaratmayapman. Faqat sizning V. kabi qaytib turini (SomeReturnType) belgilash.

qo'shib qo'ydi 08 Mart 2014 ichida 07:52, muallif Mohammad Najar, manba

O'z sinfingizni yaratishga hojat qolmaydi, va aslida siz ko'rsatgan narsalar mantiqsizdir. Buni Java'da qilishning standart usuli  Callable  interfeysidan foydalanadi.

qo'shib qo'ydi 08 Mart 2014 ichida 07:51, muallif Brian Roach, manba

Java Reflection dasturidan foydalanishingiz mumkin. Funktsiya nomini  HashMap  da saqlang, keyin uni  Method.invoke  orqali chaqiring.



Xulosa

Bugungi jamiyat taraqqiyoti insoniyat tafakkurining maxsuli bo’lgan rivojlangan ilm-fan yutuqlariga asoslangan texnika va texnologiyalar bilan bir qatorda, keng ma’noda, axborotlarning muhim ahamiyatga egaligi orqali xam belgilanadi. Faoliyat maqsadlarining turlicha bo’lishi tabiiy ravishda axborotlardan turli maqsadlarda foydalanish asoslariga sabab bo’ladi. Shuning uchun bugungi, axborotlarni saqlash va uzatish tizimlari bir tomondan takomillashib murakkablashgan va ikkinchi tomondan axborotdan foydalanuvchilar uchun keng qulayliklar vujudga kelgan davrda, axborotlarni maqsadli boshqarishning qator muhim masalalari kelib chiqadi. Bunday masalalar qatoriga katta xajmdagi axborotlarning tez va sifatli uzatish xamda qabul qilish, axborotlarni ishonchliligini ta’minlash, axborotlar tizimida axborotlarni begona shaxslardan(keng ma’noda) muxofaza qilish kabi ko’plab boshqa masalalar kiradi. Yuqoridagi keltirilgan asosli muloxazalardan kelib chiqib, axborotlarni asli xolidan o’zgartirilgan xolda, ya’ni shifrlangan xolda, saqlash va uzatish masalalarining muhim ekanligiga shubxa yo’qdir.



Xesh funksiyalar asosan ma’lumotning butunliligini ta’minlashda ya’ni axborot xavfsizligini ta’minlashda keng ko’lamda qo’llaniladi. Shuning uchun ham xesh funksiyalarning zamonaviy kriptografiya tutgan o’rni juda muhimdir.


Download 271.22 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling