SlideShare una empresa de Scribd logo
1 de 15
Объект хандлагат програмчлалын хэл  Java Хичээл :  CS203 Улирал :  2010  хавар Бэлтгэсэн багш :   Д.Энхжаргал Mongolia University of Science & Technology Лабораторийн ажил №  9 Reflection Оноо: 3
Reflection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Класс/интерфейсийн тодорхойлогч public class Student  {…}  эсвэл public interface Cafe  {…} Interface   Cafe   extends  University   { …}  эсвэл   public class Student  extends  Person   { …} Interface   Cafe  extends   University   { …}  эсвэл   public class Student extends  Person   { …} print_method_or_constructor()  гэсэн статик функцын тусламжтай байгуулагч функцуудын мэдээлэл харах print_field()  гэсэн статик функцын тусламжтай гишүүн өгөгдлийн талаарх мэдээлэл харах print_method_or_constructor()  гэсэн статик функцын тусламжтай   гишүүн функцын талаарх мэдээлэл харах java.lang.reflect   пакет дахь классыг импортлох Дэлгэрэнгүй харахыг хүссэн класс/интерфейсийнхээ нэрийг програмд 0-р аргумент болгон дамжуулах
Жишээ  (Reflection) : Классын гишүүдтэй танилцах ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Төрөл хувиргалт
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reflection  of  Student class ҮР ДҮН: ShowClass.java
Reflection  of  University interface ҮР ДҮН: ShowClass.java
Жишээ  (Reflection) :  Invoking method dynamically ,[object Object],[object Object]
Жишээ:  Reflection  ,[object Object],[object Object],[object Object],[object Object],package csms.sw203.school; public class School { private String name; private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return name + " at " + address; } } School school  = new School(); school.setName("KTMC"); school.setAddress("Sansar, UB, Mongolia");
[object Object],[object Object],Жишээ:  Reflection  public class ReflectionTestClass1 { public static void main(String[] args) throws Exception { ReflectionTestClass1 test = new ReflectionTestClass1(); test.createSchool(); } private void createSchool() throws Exception { Properties prop = new Properties(); prop.load(this.getClass().getResourceAsStream("school.properties")); Object object = Class.forName("csms.sw203.school.School").newInstance(); Enumeration keys = prop.keys(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); String value = prop.getProperty(key); String methodName = "set" + key.substring(0, 1).toUpperCase() + key.substring(1); Method method = object.getClass().getMethod(methodName,    new Class[]{String.class}); method.invoke(object, new Object[]{value}); } System.out.println(object); } } String -ээс класс үүсгэх Шинэ объектыг динамикаар үүсгэх Гишүүн функцыг динамикаар тодорхойлох Функцыг динамикаар холбох
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Жишээ:  Reflection  Properties prop = new Properties(); prop.load(this.getClass().getResourceAsStream("school.properties")); Object object = Class.forName("csms.sw203.school.School").newInstance();
[object Object],[object Object],Жишээ:  Reflection  Object object = Class.forName("csms.sw203.school.School").newInstance(); Enumeration keys = prop.keys(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); String value = prop.getProperty(key); ... ... }
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Жишээ:  Reflection  name=KTMC address=Sansar, Ulaanbaator, Mongolian Enumeration keys = prop.keys(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); String value = prop.getProperty(key); String methodName = "set" + key.substring(0, 1).toUpperCase() + key.substring(1); Method method = object.getClass().getMethod(methodName, new Class[]{String.class}); method.invoke(object, new Object[]{value}); }
[object Object],[object Object],[object Object],Жишээ:  Reflection  Enumeration keys = prop.keys(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); String value = prop.getProperty(key); String methodName = "set" + key.substring(0, 1).toUpperCase() + key.substring(1); Method method = object.getClass().getMethod(methodName, new Class[]{String.class}); method.invoke(object, new Object[]{value}); }

Más contenido relacionado

La actualidad más candente (18)

Sw203 Lecture4 Class Object
Sw203 Lecture4  Class ObjectSw203 Lecture4  Class Object
Sw203 Lecture4 Class Object
 
Java lecture5
Java lecture5Java lecture5
Java lecture5
 
Лаборатор-3
Лаборатор-3Лаборатор-3
Лаборатор-3
 
Cs203 lecture13 composition
Cs203 lecture13 compositionCs203 lecture13 composition
Cs203 lecture13 composition
 
Sw203 Lecture6 Inheritance
Sw203 Lecture6 InheritanceSw203 Lecture6 Inheritance
Sw203 Lecture6 Inheritance
 
Lec04
Lec04Lec04
Lec04
 
Lecture3 4
Lecture3 4Lecture3 4
Lecture3 4
 
Pl lecture7
Pl lecture7Pl lecture7
Pl lecture7
 
Java lecture4
Java lecture4Java lecture4
Java lecture4
 
Pl lecture6
Pl lecture6Pl lecture6
Pl lecture6
 
Pl lecture8
Pl lecture8Pl lecture8
Pl lecture8
 
Лабораторийн ажил № 1
Лабораторийн ажил № 1Лабораторийн ажил № 1
Лабораторийн ажил № 1
 
Лабораторийн ажил № 2
Лабораторийн ажил № 2Лабораторийн ажил № 2
Лабораторийн ажил № 2
 
Lecture4
Lecture4Lecture4
Lecture4
 
Java lecture3
Java lecture3Java lecture3
Java lecture3
 
lab8
lab8lab8
lab8
 
Ood lesson12.1 ---------
Ood lesson12.1  ---------Ood lesson12.1  ---------
Ood lesson12.1 ---------
 
Sw203 Lecture8 Interface
Sw203 Lecture8 InterfaceSw203 Lecture8 Interface
Sw203 Lecture8 Interface
 

Destacado (20)

Java laboratoriin udirdamj 2
 Java laboratoriin udirdamj 2 Java laboratoriin udirdamj 2
Java laboratoriin udirdamj 2
 
SW203 Lab10
SW203  Lab10SW203  Lab10
SW203 Lab10
 
Microsoft IT Academy
Microsoft IT AcademyMicrosoft IT Academy
Microsoft IT Academy
 
Java programchlal s.uuganbayr
Java programchlal s.uuganbayrJava programchlal s.uuganbayr
Java programchlal s.uuganbayr
 
Computer ethics and system security
Computer ethics and system securityComputer ethics and system security
Computer ethics and system security
 
Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)
 
Tutorial of python
Tutorial of pythonTutorial of python
Tutorial of python
 
Laboratory 14
Laboratory 14Laboratory 14
Laboratory 14
 
Lab10 11
Lab10 11Lab10 11
Lab10 11
 
Sw203lab6
Sw203lab6Sw203lab6
Sw203lab6
 
Lab5
Lab5Lab5
Lab5
 
Video lab1-web
Video lab1-webVideo lab1-web
Video lab1-web
 
Lab7
Lab7Lab7
Lab7
 
Sw203 Lab7
Sw203 Lab7Sw203 Lab7
Sw203 Lab7
 
Sw203lab5
Sw203lab5Sw203lab5
Sw203lab5
 
Lab 12
Lab 12Lab 12
Lab 12
 
Cs203 lab8
Cs203 lab8Cs203 lab8
Cs203 lab8
 
Lab6 db
Lab6 dbLab6 db
Lab6 db
 
Програм ба зүйрлэл
Програм ба зүйрлэлПрограм ба зүйрлэл
Програм ба зүйрлэл
 
S W203 Lecture8 Interface
S W203  Lecture8  InterfaceS W203  Lecture8  Interface
S W203 Lecture8 Interface
 

Similar a SW203 Lab9 (15)

Lecture
LectureLecture
Lecture
 
Java lecture4
Java lecture4Java lecture4
Java lecture4
 
Android json parsing
Android json parsingAndroid json parsing
Android json parsing
 
001cclass 120926194905-phpapp02
001cclass 120926194905-phpapp02001cclass 120926194905-phpapp02
001cclass 120926194905-phpapp02
 
Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
 
Лабораторийн ажил 1
Лабораторийн ажил 1Лабораторийн ажил 1
Лабораторийн ажил 1
 
CS203 Лекц02 Oop
CS203 Лекц02  OopCS203 Лекц02  Oop
CS203 Лекц02 Oop
 
Pl lecture8
Pl lecture8Pl lecture8
Pl lecture8
 
3
33
3
 
33
3333
33
 
Lecture5 6
Lecture5 6Lecture5 6
Lecture5 6
 
Lec5 angi
Lec5 angiLec5 angi
Lec5 angi
 
Java лекц№5
Java лекц№5 Java лекц№5
Java лекц№5
 
Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11
 
Java лекц5
Java лекц5Java лекц5
Java лекц5
 

SW203 Lab9

  • 1. Объект хандлагат програмчлалын хэл Java Хичээл : CS203 Улирал : 2010 хавар Бэлтгэсэн багш : Д.Энхжаргал Mongolia University of Science & Technology Лабораторийн ажил № 9 Reflection Оноо: 3
  • 2.
  • 3. Класс/интерфейсийн тодорхойлогч public class Student {…} эсвэл public interface Cafe {…} Interface Cafe extends University { …} эсвэл public class Student extends Person { …} Interface Cafe extends University { …} эсвэл public class Student extends Person { …} print_method_or_constructor() гэсэн статик функцын тусламжтай байгуулагч функцуудын мэдээлэл харах print_field() гэсэн статик функцын тусламжтай гишүүн өгөгдлийн талаарх мэдээлэл харах print_method_or_constructor() гэсэн статик функцын тусламжтай гишүүн функцын талаарх мэдээлэл харах java.lang.reflect пакет дахь классыг импортлох Дэлгэрэнгүй харахыг хүссэн класс/интерфейсийнхээ нэрийг програмд 0-р аргумент болгон дамжуулах
  • 4.
  • 6.
  • 7. Reflection of Student class ҮР ДҮН: ShowClass.java
  • 8. Reflection of University interface ҮР ДҮН: ShowClass.java
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

Notas del editor

  1. Хэрэв програмд 0-р аггументаар интерфейсийн нэр дамжигдсан бол: Тухайн интерфейсийн нэрийг хандалт тодорхойлогчийнх нь хамт хэвлэнэ. Харин классын нэр дамжигдсан бол классын нэрийг хандалт тодорхойлогчийн хамт хэвлэхийн зэрэгцээ түүний эх классыг нь тодорхойлно. Хэрэв програмд 0-р аргументаар Интерфейсийн нэрийг дамжуулсан бол тэрээр өөр интерфейстай удамшил - extends Классын нэрийг дамжуулсан бол тэрээр интерфейсийг хэрэгжүүлэх- implements гэсэн холбоосоор тус тус холбогдоно. public class Student extends Person implements University{ protected String id; int age; public Student(){ } public void setInfo(String i, String n, int a){ id=i; name=n; age=a; } public void display() {} }