>  기사  >  Java  >  Java에서 클래스 클래스의 역할에 대한 자세한 설명

Java에서 클래스 클래스의 역할에 대한 자세한 설명

黄舟
黄舟원래의
2017-10-17 09:31:362687검색

이 글은 주로 Java에서 Class 클래스의 역할과 심층적인 이해를 소개합니다. 이 부분의 내용을 이해하는 데 도움이 되기를 바랍니다. Java의 클래스 클래스 심층 이해

프로그램이 실행되는 동안 Java 런타임 시스템은 항상 모든 객체에 대해 런타임이라는 유형 식별자를 유지합니다. 이 정보는 각 객체가 속한 클래스를 추적합니다. JVM은 런타임 정보를 사용하여 적절한 실행 방법을 선택합니다. 이 정보를 보유하는 클래스를 클래스라고 합니다. 혼란을 주기 쉬우며, 계급을 생각하기 쉽습니다. 그러나 이 둘은 서로 아무런 관련이 없습니다. Class는 클래스를 설명하는 키워드일 뿐입니다. 클래스는 런타임 정보를 저장하는 클래스입니다.

무엇을 할 수 있나요? Class 클래스는 프로그램이 실행될 때 클래스를 분석하는 데 도움을 줄 수 있습니다. 직설적으로 말하면 클래스의 값을 얻는 것입니다. 아마도 나는 즉시 반성을 생각했을 것입니다. 그렇습니다! 클래스는 일반적으로 리플렉션과 함께 사용됩니다. 클래스 또는 클래스의 클래스 이름을 Class에 제공하고 클래스는 속성/메서드/수정자/생성자/클래스 이름 등과 같은 많은 정보를 제공할 수 있기 때문입니다. 그러면 우리는 성찰을 통해 더 나아갈 수 있습니다. 하지만 먼저 Class 클래스의 내용과 사용법을 간략하게 살펴보겠습니다! + 이 클래스에는 너무 많은 정보가 포함되어 있으므로 이를 사용하여 특정 클래스의 필드/메서드 및 생성자를 얻을 수 있습니다. 다음은 일반적으로 사용되는 몇 가지 방법입니다.

 String str = new String();
 Class cl = str.getClass();

클래스를 통해 클래스 객체를 얻은 다음 이러한 유형의 정보를 얻을 수 있습니다. 전체 클래스 이름으로 Class 객체를 가져올 수도 있습니다.


 public static void main(String[] args) throws Exception {
 // 以String.class为例
 String str = new String();
 Class cl = str.getClass();
 /**
  * 获取包名+类名<br>
  * java.lang.String
  */
 cl.getName();
 /**
  * 只获取类名 - String
  */
 cl.getSimpleName();
 /**
  * 获取数组的Class对象<br>
  * 因为所有的Java类都继承自Object,数组也一样.所以数组本身也是个Class, 得到数组的Class自然也可以转回数组.
  */
 cl.getComponentType();
 /**
  * 返回构造器数组,包括超类的公有成员.
  */
 cl.getConstructors();
 /**
  * 返回方法数组,包括超类的公有成员.
  */
 cl.getMethods();
 /**
  * 返回域数组,包括超类的公有成员.
  */
 cl.getFields();
 /**
  * 返回全部构造器数组,无论是public/private还是protected,不包括超类的成员.
  */
 cl.getDeclaredConstructors();
 /**
  * 返回全部域数组,无论是public/private还是protected,不包括超类的成员.
  */
 cl.getDeclaredFields();
 /**
  * 返回全部方法数组,无论是public/private还是protected,不包括超类的成员.
  */
 cl.getDeclaredMethods();
 /**
  * 获取类前的修饰符
  */
 cl.getModifiers();
 }

이 클래스의 Class 개체를 사용하여 이 클래스의 개체를 만들 수 있습니다. 가장 편리하고 빠른 방법은 newInstance()를 호출하는 것입니다. 기본적으로 인수가 없는 생성자를 호출하여 객체를 반환합니다.


Class cl = Class.forName("java.lang.String");

다음은 생성자를 가져와서 객체를 생성하는 생성자를 사용하는 방법입니다.


String str = (String)(Class.forName("java.lang.String").newInstance());

클래스는 정보 클래스이기 때문에 크게 어렵지 않습니다. 런타임 시 클래스를 추적하고 클래스에 대한 모든 정보를 마스터하세요.

위 내용은 Java에서 클래스 클래스의 역할에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.