ΠΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Class Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΡΠΎΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Class forNameCGum"),
ΠΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Class ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊΠ»Π°ΡΡΡ Class. ΠΠ±ΡΠ΅ΠΊΡ Class Π½ΠΈΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π½Π΅Π³ΠΎ (ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΈ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΊΠ»Π°ΡΡΠΎΠ²). ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Class Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° for-Name(), ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° (String) Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ° (ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²!). ΠΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Class, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Π°; ΠΌΠ΅ΡΠΎΠ΄ Class.forName() Π²ΡΠ·ΡΠ²Π°Π»ΡΡ ΡΠ°Π΄ΠΈ ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°, ΡΠΎ Π΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° Gum, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΠ΅ Π½Π΅ Π² ΠΏΠ°ΠΌΡΡΠΈ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ static-ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Gum.
ΠΡΠ»ΠΈ Π±Ρ Π² ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Class.forName() ΡΡΠ°Π±ΠΎΡΠ°Π» Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ (Π½Π΅ ΡΠΌΠΎΠ³ Π±Ρ Π½Π°ΠΉΡΠΈ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ), ΠΎΠ½ Π²ΠΎΠ·Π±ΡΠ΄ΠΈΠ» Π±Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ClassNotFoundException. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈ Π΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ Π΄Π°Π»ΡΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ RTTI Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Class. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² β Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Class.forName() β ΡΠ΄ΠΎΠ±Π΅Π½ ΡΠ΅ΠΌ, ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠΏΡΠΎΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Class ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ getClass(), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Object. ΠΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Class, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ»Π°ΡΡ Class ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
//β’ typeinfo/ToyTest.java
// Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Class.
package typeinfo.toys;
import static net.mindview.util Print.*;
interface HasBatteries {} interface Waterproof {} interface Shoots {}
class Toy {
// ΠΠ°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π΄Π°Π»Π΅Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ // ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΎΠ³Π΄Π° Π² ΡΡΡΠΎΠΊΠ΅ Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΎΠΉ (*1*) // Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° NoSuchMethodError. Π’ΠΎΡΠ {} Toy(int i) {}
}
class FancyToy extends Toy
implements HasBatteries. Waterproof, Shoots { FancyToyΠ { super(1); }
}
public class ToyTest {
static void printInfo(Class cc) {
print ("ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ°: " + cc.getNameO +
" ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ? [" + cc.isInterfaceO + "]"), print("ΠΡΠΎΡΡΠΎΠ΅ ΠΈΠΌΡ: " + cc.getSimpleName()); print("ΠΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ- " + cc.getCanonicalName()).
}
public static void main(String[] args) { Class Ρ = null. try {
Ρ = CI ass.forName("typeinfo.toys FancyToy"); } catch(ClassNotFoundException e) {
print("He Π½Π°ΠΉΠ΄Π΅Π½ ΠΊΠ»Π°ΡΡ FancyToy"); System.exit(l);
}
printlnfo(c);
for(Class face : c.getlnterfaces())
printlnfo(face); Class up = c.getSuperclassO; Object obj = null, try {
// ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎ = up.newInstanceO; } catchdnstantiationException Π΅) {
printCHe ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ"). System.exit(1); } catchdllegalAccessException Π΅) {
print("ΠΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ°"); System.exit(l);
}
printlnfo(obj.getClassO); } ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ &
} /* Output
ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° typeinfo toys FancyToy ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ? [false]
ΠΡΠΎΡΡΠΎΠ΅ ΠΈΠΌΡ FancyToy
ΠΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ- typeinfo.toys FancyToy
ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° typeinfo toys HasBatteries ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ? [true]
ΠΡΠΎΡΡΠΎΠ΅ ΠΈΠΌΡ HasBatteries
ΠΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ: typeinfo toys HasBatteries
ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° typeinfo toys Waterproof ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ? [true]
ΠΡΠΎΡΡΠΎΠ΅ ΠΈΠΌΡ. Waterproof
ΠΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ typeinfo toys Waterproof
ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ°, typeinfo.toys Shoots ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ? [true]
ΠΡΠΎΡΡΠΎΠ΅ ΠΈΠΌΡ: Shoots
ΠΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ: typeinfo.toys Shoots
ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ°: typeinfo.toys Toy ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ? [false]
ΠΡΠΎΡΡΠΎΠ΅ ΠΈΠΌΡ: Toy
ΠΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ typeinfo.toys.Toy *///.-
ΠΠ»Π°ΡΡ FancyToy, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ Toy, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²: HasBatteries, Waterproof ΠΈ Shoots. Π ΠΌΠ΅ΡΠΎΠ΄Π΅ main() ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Class Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° FancyToy, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠ΅ try Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ for-Name(). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°) Π² ΡΡΡΠΎΠΊΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ forName().
ΠΠ΅ΡΠΎΠ΄ printInfo() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ getName() Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ getSimpleName() ΠΈ getCanonicalName() (ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΠ΅ΡΡ Π² Java SE5), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΠΈΠΌΡ Π±Π΅Π· ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠ΅ΡΠΎΠ΄ islnterface() ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Class ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ Class ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΠΈΠΏΠ΅.
ΠΠ΅ΡΠΎΠ΄ Class.getlnterfaces() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Class, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Class. ΠΠ΅ΡΠΎΠ΄ getSuperclass() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ (ΡΠΎ Π΅ΡΡΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ) Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Class.
ΠΠ΅ΡΠΎΠ΄ newlnstance() ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΒ». ΠΡ ΠΊΠ°ΠΊ Π±Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅: Β«Π― Π½Π΅ Π·Π½Π°Ρ Π²Π°Ρ ΡΠΎΡΠ½ΡΠΉ ΡΠΈΠΏ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅Π±Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΒ». Π ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΡΠ»ΠΊΠ° up ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Class, Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΏΠ΅ Ρ Π²Π°Ρ Π½Π΅Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ newlnstance() Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Object. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Toy. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΡΡΠ»ΠΊΠΎΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° Toy, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π½ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° newlnstance(), ΠΎΠ±ΡΠ·Π°Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΎΠ·Π΄Π½Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Π»ΡΠ±ΡΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ Java.
ΠΠΈΡΠ΅ΡΠ°Π»Ρ class
Π Java ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Class β ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π»ΠΈΡΠ΅ΡΠ°Π»Π° class. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ Π±Ρ ΡΠ°ΠΊ:
FancyToy.class:
Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅, Π½ΠΎ Π΅ΡΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π ΡΠΎΠΌΡ ΠΆΠ΅ ΠΎΠ½ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π° forName(), Π° Π·Π½Π°ΡΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ.
ΠΠΈΡΠ΅ΡΠ°Π»Ρ class ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ, ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ. ΠΠ΄ΠΎΠ±Π°Π²ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠ°Ρ -ΠΎΠ±Π΅ΡΡΠΊΠ°Ρ Π΄Π»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ TYPE. ΠΡΠΎ ΠΏΠΎΠ»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Class Π΄Π»Ρ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π½ΠΈΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π±Π». 13.1.
Π’Π°Π±Π»ΠΈΡΠ° 13.1. ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Class Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ²
ΠΠΈΡΠ΅ΡΠ°Π»
Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Class
boolean.class
Boolean.TYPE
char.class
Character.TYPE
byte.class
Byte.TYPE
short.class
Short.TYPE
int.class
Integer.TYPE
long.class
Long.TYPE
float.class
Float.TYPE
double.class
Double.TYPE
void.class
Void.TYPE
Π₯ΠΎΡΡ ΡΡΠΈ Π²Π΅ΡΡΠΈΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ, Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΡΠΈΡ .class, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π»ΡΡΡΠ΅ ΡΠΎΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Class Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠΈ .class Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Class. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊΠ»Π°ΡΡΠ° ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Ρ ΡΡΠ°ΠΏΠΎΠ²:
β’ ΠΠ°Π³ΡΡΠ·ΠΊΠ° β Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ Class.
β’ ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° β Π² ΡΠ°Π·Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ°, Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ, ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ Π²ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠ»Π°ΡΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ.
β’ ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ β Π΅ΡΠ»ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈ Π±Π»ΠΎΠΊΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ (ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ) ΠΈΠ»ΠΈ Π½Π° Π½Π΅ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅:
//: typeinfo/Class Initialization.java import java util *;
class Initable {
static final int staticFinal = 47; static final int staticFinal2 =
Classlnitialization rand nextlnt(lOOO).
static {
System out ΡΠΏΠΏ^ΠΏΠ‘'ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Initable"), ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ &
}
}
class Initable2 {
static int staticNonFinal = 147, static {
System out.ΡΠΏΠΏ^ΠΏΠ‘ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Initable2"),
}
}
class Initable3 {
static int staticNonFinal = 74. static {
System ΠΎΠΈ^ΡΠ³Π¨1ΠΏ("ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Initable3").
}
}
public class Classlnitialization {
public static Random rand = new Random(47), public static void main(String[] args) throws Exception { Class initable = Initable class. System out printin("ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Initable"). // He ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ System out println(Initable.staticFinal). // ΠΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ-System out printin(Initable staticFinal2); // ΠΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ System out println(Initable2 staticNonFinal). Class initable3 = Class forName("Initable3"). System out printlnC"ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Initable3"). System out pri ntin(Initable3 staticNonFinal),
}
} /* Output
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Initable 47
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Initable 258
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Ini table2 147
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Initable3 ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Ini tablΠ΅Π 74 *///β’-
ΠΠΎ ΡΡΡΠΈ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° .class Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠ»Π°ΡΡ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π²ΡΠ·ΠΎΠ² Class.forNames() Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Class, ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ initable3.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
ΠΠ±ΡΠ΅ΠΊΡ Class ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π½Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΡΠ»ΠΊΠ° Π½Π° Class ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠΎΡΠ½ΡΠΉ ΡΠΈΠΏ ΡΠΎΠ³ΠΎ, Π½Π° ΡΡΠΎ ΠΎΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ β Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Class.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Java SE5 ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Class, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΠ°; Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΠΈ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Π΅ΡΠ½Ρ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°: