Класс
Object
, стоящий во главе иерархии классов Java, представляет все объекты, действующие в системе, является их общей оболочкой. Всякий объект можно считать экземпляром класса
Object
.
Класс с именем
class
представляет характеристики класса, экземпляром которого является объект. Он хранит информацию о том, не является ли объект на самом деле интерфейсом, массивом или примитивным типом, каков суперкласс объекта, каково имя класса, какие в нем конструкторы, поля, методы и вложенные классы.
В классе
class
нет конструкторов, экземпляр этого класса создается исполняющей системой Java во время загрузки класса и предоставляется методом
getciass()
класса
object
, например:
String s = "Это строка";
Class с = s.getClass();
Статический метод
forName(string class)
возвращает объект класса
class
для класса, указанного в аргументе, например:
Class cl = Class.forName("Java,lang.String");
Но этот способ создания объекта класса
class
считается устаревшим (deprecated). В новых версиях JDK для этой цели используется специальная конструкция — к имени класса через точку добавляется слово
class
:
Class c2 = Java.lang.String.class;
Логические методы
isArray(), isIntetface(), isPrimitive()
позволяют уточнить, не является ли объект массивом, интерфейсом или примитивным типом.
Если объект ссылочного типа, то можно извлечь сведения о вложенных классах, конструкторах, методах и полях методами
getoeciaredciasses()
,
getdeclaredConstructors(), getDeclaredMethods(), getDeclaredFields()
, в виде массива классов, соответствейно,
Class, Constructor, Method, Field
. Последние три класса расположены в пакете
java.lang.reflect
и содержат сведения о конструкторах, полях и методах аналогично тому, как класс
class
хранит сведения о классах.
Методы
getClasses(), getConstructors(), getlnterfaces(), getMethods(), getFieids()
возвращают такие же массивы, но не всех, а только открытых членов класса.
Метод
getsuperciass()
