Содержание
- 2. Поняття про відображення (reflection, інтроспекція) Засоби, які дозволяють під час виконання програми отримувати інформацію про класи,
- 3. Отримання інформації про клас – базові можливості String s = "qwerty"; Class kl = s.getClass(); System.out.println
- 4. Три способи отримання екземпляру класу Class метод getClass() класу Object; виклик статичного методу Class.forName(ім’я класу) –
- 5. Приклад: отримання методів класу import java.io.*; import java.lang.reflect.*; public class reflection { public static void main(String[]
- 6. Різниця між getMethods та getDeclaredMethods Перший повертає всі публічні методи з урахуванням успадкування, а другий –
- 7. Динамічне завантаження класу та створення екземпляру public static void main(String[] args) throws Exception { Class c
- 8. Або: Class cl = Kl.class; Kl ekz = cl.newInstance(); ekz.metod();
- 9. Як це зробити більш гнучко? Треба уникнути зведень до класу, який за ідеєю прикладу має бути
- 10. Злам приватності: клас class Bastion { private String msg = "You cannot change this string"; public
- 11. Злам приватності: власне злам Bastion b = new Bastion(); System.out.println("Our field is: "+b.getMsg()); //b.str="Ku-ku"; - це
- 12. Вказівники на функцію: клас з функцією… class Ext { private int Pole; public Ext(int Pole) {
- 13. … і виклик функції Method m = Ext.class.getMethod("metod"); Ext ext = new Ext(50); m.invoke(ext);
- 14. Ще один приклад: виведення таблиці значень функції Method square = Ext.class.getMethod("square", double.class); Method sqrt = Math.class.getMethod("sqrt",
- 16. Скачать презентацию