Java는 객체 지향 프로그래밍 언어라는 것을 모두 알고 있습니다. Java 세계에서는 모든 것이 대상입니다. 그 자바에서 물체를 어떻게 표현합니까? 수업
우리는 Java의 객체가 객체 클래스의 서브 클래스라는 것을 알고 있으므로 오늘 우리는 Java의 클래스 사용을 연구 할 것입니다.
작은 질문 : 클래스 대상입니까? 누구의 대상입니까? 답은 : 클래스는 java.lang.class 클래스의 객체, 강도 대상입니다.
패키지 com.edu.hpu;
public class test {public static void main (String [] args) {// new foo foo = new foo ()로 개체를 인스턴스화합니다. // 객체 클래스의 getClass () 메소드를 인스턴스화하여 클래스 클래스 인스턴스를 가져옵니다. c1 = foo.getClass (); // 모든 클래스는 암시 적 정적 변수 클래스 클래스 C2 = foo.class; // C1 및 C2는 FOO 클래스의 클래스 유형 (클래스 유형) System.out.println (C1 == C2)을 나타냅니다. 클래스 C3 = NULL; 시도 {// 클래스 유형의 클래스 유형을 얻으려면 C3 = class.forname ( "com.edu.hpu.foo"); } catch (classNotFoundException e) {e.printstacktrace (); } system.out.println (c1 == c3); 시도 {// 클래스 유형을 통해 클래스의 인스턴스 개체를 만듭니다. foo c4 = (foo) c1.newinstance (); c4.start (); } catch (InstantiationException e) {e.printstacktrace (); } catch (delegalAccessException e) {e.printstacktrace (); }}} class foo {public void start () {system.out.println ( "foo class"); }}위의 코드를 통해 수업에 대한 더 깊은 이해가 있습니까? 새 키워드를 통해 클래스 인스턴스 객체를 만들 수 있으며 클래스 유형을 통해 클래스 인스턴스 객체를 만들 수도 있습니다. 클래스 클래스 유형을 얻기위한 위의 방법에는 세 가지 형태가 있습니다. 그들은 하나의 클래스 유형 만 얻으므로 c1 == c2 == c3 : true.
위의 간단한 소개 후에, 당신은 Java에서 수업에 대한 더 깊은 이해를 가지고 있습니까? 작은 예제를 사용하여 클래스 유형 및 클래스 인스턴스의 실제 사용을 소개하겠습니다.
클래스 사무소 {public static void main (String [] args) {if ( "Word".Equals (args [0])) {Word w = new Word (); w.start (); } if ( "Excel".Equals (args [0])) {Excel e = new Excel (); e.start (); }}}위의 코드를 살펴 보겠습니다. 컴파일하면 정상적으로 통과 할 수 있습니까? 여기서 우리는 컴파일 및 작동에 대해 이야기해야합니다. 컴파일 시간에로드 된 클래스는 정적 로딩 클래스입니다. 런타임에로드 된 클래스는 동적 로딩 클래스입니다. class.forname ( "클래스 L의 이름"); 클래스 유형을 나타내는 것뿐만 아니라 동적 로딩 클래스도 나타냅니다. 위의 예에서는 반드시 단어와 엑셀을 사용할 필요는 없지만, 컴파일하면 단어와 엑셀이 존재하지 않으면 오류가 발생합니다. 다음으로 클래스 유형을 동적으로로드하여 위의 논리를 구현합니다.
클래스 사무실 {public static void main (String [] args) {try {class c = class.forname (args [0]); 공무원 OA = (직무) c.newinstance (); oa.write (); } catch (예외 e) {e.printstacktrace ();}}} Interface Officeable {public void write ();} 클래스 단어 emportable {public void write () {System.out.println ( "Word ... Start ..."); }} class Excel Ampess Officeable {public void write () {System.out.println ( "Excel..Write .."); }}이런 식으로, 우리는 필요에 따라 클래스를 동적으로 추가하여 응용 프로그램 기능의 확장을 용이하게 할 수 있습니다.