Java 언어 class 클래스 사용법 및 일반화(상세)

3371 단어
이 글은 주로 자바 언어class 클래스의 사용법과 일반화(상해)를 소개했다. 자바 프로그램이 실행하는 과정에서 모든 대상에 대해 유형 표지, 즉 RTTI를 하는 것을 모두가 알고 있다.이 정보는 모든 대상이 속하는 클래스를 기록하였다.가상 머신은 보통 실행할 때 유형 정보를 정확하게 선택하는 방법을 사용합니다. 이 유형 정보를 저장하는 클래스는Class 클래스입니다.Class 클래스는 하나의 대상과 인터페이스가 실행될 때의 상태를 봉인하고 클래스를 불러올 때 Class 유형의 대상은 자동으로 생성됩니다. 구체적인 내용은 다음과 같습니다.
말하자면 다음과 같다.
Class 클래스도 클래스의 일종으로 이름과class 키워드의 높이가 비슷할 뿐이다.Java는 대소문자에 민감한 언어입니다.클래스의 대상 내용은 당신이 만든 클래스의 유형 정보입니다. 예를 들어shapes 클래스를 만들면 자바는 shapes의Class 클래스의 대상을 생성합니다. 클래스의 대상은 일반 클래스처럼 new shapes () 방식으로 만들 수 없습니다. 이 클래스는public 구조 함수가 없기 때문입니다. 클래스의 역할은 실행할 때 특정한 대상의 유형 정보를 제공하거나 얻는 것입니다.C++의 typeid() 함수와 유사합니다.이러한 정보는 반사에도 사용할 수 있다.
1. 클래스 클래스 원리
우리는 모든java클래스가object클래스를 계승하는 것을 알고 있다.object클래스에는 getclass()가 있다.이 방법은 이 클래스가 실례화된 대상을 얻는 데 사용되는 이 클래스의 인용입니다. 이 인용은Class 클래스의 대상을 가리킵니다.우리는class 대상을 만들 수 없습니다. (구조 함수는private) 이 Class 클래스의 대상은 여러 종류가 불러올 때 자바 가상기에서 자동으로 Class 대상을 만들거나 클래스 마운트의 defineClass 방법을 통해 생성됩니다.생성된 객체에는 Class 클래스에 속한 객체의 위치를 기록하는 필드가 있습니다.다음 그림은 다음과 같습니다.
2. Class 클래스 객체 획득
Class 클래스의 forName 함수
 
  
public class shapes{} 
Class obj= Class.forName("shapes");

두 번째 방법은 대상의 getClass () 함수를 사용합니다
 
  
public class shapes{}
shapes s1=new shapes();
Class obj=s1.getClass();
Class obj1=s1.getSuperclass();// shapes

세 번째 방법은 유서면 상량을 사용한다
 
  
Class obj=String.class;
Class obj1=int.class;

이 방법을 사용하여 Class 클래스 객체를 생성할 때 JVM에서 클래스(예: String 클래스)를 자동으로 로드하지 않습니다.다른 방법으로는 JVM이 클래스를 초기화할 수 있습니다.
3. Class 클래스의 대상을 사용하여 목표 클래스의 실례를 생성한다
부정확한 Object 인스턴스 생성
클래스의 대상을 가져오면 newInstance () 함수로 대상 클래스의 실례를 생성할 수 있습니다.그러나 이 함수는 목표 클래스의 실례를 직접 생성할 수 없고 Object 클래스의 실례만 생성할 수 있다
 
  
Class obj=Class.forName("shapes");
Object ShapesInstance=obj.newInstance();

범주화된 Class 참조를 사용하여 대역 유형의 대상 인스턴스 생성
 
  
Class obj=shapes.class;
shapes newShape=obj.newInstance();

유형 제한이 있기 때문에 범용 클래스 문법을 사용하는 대상 인용은 다른 클래스를 가리킬 수 없습니다.
 
  
Class obj1=int.class;
Class obj2=int.class;
obj1=double.class;
//obj2=double.class;

이 줄 코드는 불법입니다. obj2는 다른 클래스를 가리킬 수 없습니다. 그러나, 클래스의 대상으로 기본 클래스의 하위 클래스를 가리킬 수 있는 유연한 사용법이 있습니다.
 
  
Class extends Number> obj=int.class;
obj=Number.class;
obj=double.class;

따라서 다음 구문으로 생성된 Class 객체는 모든 클래스를 가리킬 수 있습니다.
 
  
Class> obj=int.class;
obj=double.class;
obj=shapes.class;

마지막으로 이상한 용법은 당신이 가지고 있는 클래스 대상의 기본 클래스 대상을 구축할 때 다음과 같은 특수 문법을 사용해야 한다는 것이다
 
  
public class shapes{}
class round extends shapes{}
Class rclass=round.class;
Class super round> sclass= rclass.getSuperClass();
//Class sclass=rclass.getSuperClass();

여기서 주의해야 할 것은 round의 기본 클래스가 shapes라는 것을 뻔히 알면서도 Class를 직접 성명할 수 없고 반드시 특수 문법인 Class
이상의 내용 소개는 자바 언어class 클래스 사용법 및 일반화(상해)에 대한 모든 내용입니다. 상기 내용 소개를 좋아해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기