Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° JavaΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 70

Автор Н.А. Вязовик

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, полю, конструктору класса Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, список ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Class: getMethods(), getFields(), getConstructors(), getDeclaredMethods() ΠΈ Ρ‚.Π΄. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° поля, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, конструкторы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для формирования динамичСских Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Java – этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ называСтся reflection . НСобходимыС классы содСрТатся Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java.lang.reflection.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:


package demo.lang;

interface Vehicle {

void go();

}

class Automobile implements Vehicle {

public void go() {

System.out.println("Automobile go!");

}

}

class Truck implements Vehicle {

public Truck(int i) {

super();

}

public void go() {

System.out.println("Truck go!");

}

}

public class VehicleStarter {

public static void main(String[] args) {

Vehicle vehicle;

String[] vehicleNames = {"demo.lang.Automobile",

"demo.lang.Truck", "demo.lang.Tank"};

for(int i=0; i<vehicleNames.length; i++) {

try {

String name = vehicleNames[i];

System.out.println("look for class for: " + name);

Class aClass = Class.forName(name);

System.out.println("creating vehicle...");

vehicle = (Vehicle)aClass.newInstance();

System.out.println("create vehicle: " + vehicle.getClass());

vehicle.go();

} catch(ClassNotFoundException e) {

System.out.println("Exception: " + e);

} catch(InstantiationException e) {

System.out.println("Exception: " + e);

}

}

}

}


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 13.3.

Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π° экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:


look for class for: demo.lang.Automobile

creating vehicle...

create vehicle: class demo.lang.Automobile

Automobile go!

look for class for: demo.lang.Truck

creating vehicle...

Exception: java.lang.InstantiationException

look for class for: demo.lang.Tank

Class not found: java.lang.ClassNotFoundException: demo.lang.Tank


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 13.4.


Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ дСлаСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ reflection Ρ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ИмСна классов, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Ρ‹, записаны Π² массив vehicleNames. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ класса Automobile Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создан, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ, дальнСйшая Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌ вСлась Ρ‡Π΅Ρ€Π΅Π· интСрфСйс Vehicle. Класс Truck Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ java.lang.InstantiationException, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ конструктор Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² отсутствуСт. Класс java.lang.Tank ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π½Π΅ Π±Ρ‹Π» ΠΈ поэтому ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Class Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ java.lang.ClassNotFoundException.

ΠšΠ»Π°ΡΡΡ‹-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π° Π½Π΅ с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ использовании ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ значСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Java сущСствуСт свой класс-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ° . Π’Π°ΠΊΠΎΠΉ класс являСтся нСизмСняСмым (Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящий Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ), ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ final – ΠΎΡ‚ Π½Π΅Π³ΠΎ нСльзя Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ класс. ВсС классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ (ΠΊΡ€ΠΎΠΌΠ΅ Void ) Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ интСрфСйс Serializable, поэтому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ любого (ΠΊΡ€ΠΎΠΌΠ΅ Void ) класса-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сСриализованы. ВсС классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ содСрТат статичСскоС ΠΏΠΎΠ»Π΅ TYPE, ΡΡΡ‹Π»Π°ΡŽΡ‰Π΅Π΅ΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Class, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ.

Π’Π°ΠΊΠΆΠ΅ классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ содСрТат статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для обСспСчСния ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ манипулирования ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ строковому Π²ΠΈΠ΄Ρƒ.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 13.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ.

Π’Π°Π±Π»ΠΈΡ†Π° 13.1. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ.


Класс-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Byte

byte

Short

short

Character

char

Integer

int

Long

long

Float

float

Double

double

Boolean

boolean


ΠŸΡ€ΠΈ этом классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ числовых Ρ‚ΠΈΠΏΠΎΠ² Byte, Short, Integer, Long, Float, Double Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса – Number. Π’ Π½Π΅ΠΌ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎ всСх числовых Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Java ( byte, short, int, long, float ΠΈ double ).

ВсС классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ интСрфСйс Comparable. ВсС классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ числовых Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ equals(Object), ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ значСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Рассмотрим Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· классов-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ.

Integer

НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:


* public static int parseInt(String s) – ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ запись Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, Π² int ;

* public static int parseInt(String s, int radix) – ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ запись Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π² систСмС счислСния radix, Π² int.


Оба ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π±ΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ NumberFormatException, Ссли строка, пСрСданная Π½Π° Π²Ρ…ΠΎΠ΄, содСрТит Π½Π΅Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ символы.

НС слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:


public static Integer valueOf(String s)

public static Integer valueOf(String s, int radix)


Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° конструктора для создания экзСмпляров класса Integer:


* Integer(String s) – конструктор, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° строку, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

* Integer(int i) – конструктор, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

public static String toString(int i) – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСобразования значСния Ρ‚ΠΈΠΏΠ° int Π² строку.

Π”Π°Π»Π΅Π΅ пСрСчислСны ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠ΅ int Π² строковоС Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅, Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС:


* public static String toOctalString(int i) – Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅;

* public static String toBinaryString(int i) – Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅;

* public static String toHexString(int i) – ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅.

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π΅ статичСскиС константы:


* Integer.MIN_VALUE – минимальноС int Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;

* Integer.MAX_VALUE – максимальноС int Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


АналогичныС константы, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… классов-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ числовых ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

public int intValue() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Integer. ΠšΠ»Π°ΡΡΡ‹-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² – Byte, Short, Long – содСрТат Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ константы (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²: byte, short, long ).

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


public static void main(String[] args) {

int i = 1;

byte b = 1;

String value = "1000";

Integer iObj = new Integer(i);

Byte bObj = new Byte(b);

System.out.println("while i==b is " +

(i==b));

System.out.println("iObj.equals(bObj) is "

+ iObj.equals(bObj));

Long lObj = new Long(value);

System.out.println("lObj = " +

lObj.toString());

Long sum = new Long(lObj.longValue() +

iObj.byteValue() +

bObj.shortValue());

System.out.println("The sum = " +

sum.doubleValue());

}



Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ классов-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ ΠΈ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Π½Π° экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:


while i==b is true

iObj.equals(bObj) is false

lObj = 1000

The sum = 1002.0


ΠžΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ числовых Ρ‚ΠΈΠΏΠΎΠ² Float ΠΈ Double, ΠΏΠΎΠΌΠΈΠΌΠΎ описанного для цСлочислСнных ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ содСрТат опрСдСлСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… констант (ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π»ΠΈΡΡŒ Π² Π»Π΅ΠΊΡ†ΠΈΠΈ 4):


* NEGATIVE_INFINITY – ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ;

* POSITIVE_INFINITY – ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ;

* NaN – нСчисловоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄Ρ€ΡƒΠ³ΠΎΠΉ смысл ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ MIN_VALUE – вмСсто наимСньшСго значСния ΠΎΠ½ΠΎ прСдставляСт минимальноС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ (строго > 0) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно этим ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ.

ΠšΡ€ΠΎΠΌΠ΅ классов-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… числовых Ρ‚ΠΈΠΏΠΎΠ², Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Java.

Character

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйсы Comparable ΠΈ Serializable.

Из конструкторов ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ char Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

ΠšΡ€ΠΎΠΌΠ΅ стандартных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² equals(), hashCode(), toString(), содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° нСстатичСских ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:


* public char charValue() – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ char;

* public int compareTo(Character anotherCharacter) – сравниваСт ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ значСния char ΠΊΠ°ΠΊ числа, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ return this.value – anotherCharacter.value.

Π’Π°ΠΊΠΆΠ΅ для совмСстимости с интСрфСйсом Comparable ΠΌΠ΅Ρ‚ΠΎΠ΄ compareTo() ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Object:


* public int compareTo(Object o) – Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Character, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Π²Ρ‹Π·ΠΎΠ²Ρƒ compareTo((Character)o), ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ClassCastException, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Character ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Character.

БтатичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² классС Character довольно ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ всС ΠΎΠ½ΠΈ просты ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ понятна ΠΈΠ· названия. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… - это ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ char ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠ΅ всСвозмоТныС свойства. НапримСр:


public static boolean isDigit(char c)

// провСряСт, являСтся Π»ΠΈ char Ρ†ΠΈΡ„Ρ€ΠΎΠΉ.

Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ истина ΠΈΠ»ΠΈ лоТь, Π² соотвСтствии с Ρ‚Π΅ΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π»ΠΈ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

Boolean

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ класс-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° boolean.

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс java.io.Serializable ΠΈ Π²ΠΎ всСм Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ.

Для получСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ booleanValue().

Void

Π­Ρ‚ΠΎΡ‚ класс-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс java.io.Serializable. Он Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ конструктора. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, экзСмпляр этого класса Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½. Он Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для получСния ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Class, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ void. Π­Ρ‚Π° ссылка прСдставлСна статичСской константой TYPE.