欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基礎(chǔ)類Class使用指南

 更新時間:2015年12月29日 11:39:17   投稿:hebedich  
關(guān)于通過類名訪問class屬性,我朋友問過好幾次了,一直沒明白這個東西到底是什么?對此,我參照網(wǎng)友們的博客,總結(jié)了一些小知識,如發(fā)現(xiàn)錯誤,希望糾正,謝謝

大家都知道Java是一門面向?qū)ο缶幊陶Z言,在Java世界里,萬事萬物皆對象,那個Java中怎么表示對象呢?Class

我們知道Java中的對象都是Object類的子類,那么今天我們就一起來研究一下Java中的Class的使用。

問一下小問題:類是對象嗎?類是誰的對象?答案是:類是對象,是java.lang.Class類的實力對象。

package com.edu.hpu;

public class Test {
  
  public static void main(String[] args) {
    //通過new實例化一個對象
    Foo foo = new Foo();
    //通過實例化對象的getClass()方法得到Class類的實例
    Class c1 = foo.getClass();
    //任何一個類都有一個隱含的靜態(tài)變量class
    Class c2 = Foo.class;
    //c1、c2表示了Foo類的類類型(class type)
    System.out.println(c1 == c2);
    
    Class c3 = null;
    try {
      //第三種獲得類的類類型的方法
      c3 = Class.forName("com.edu.hpu.Foo");
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
    System.out.println(c1 == c3);
    
    try {
      //通過類的類類型來創(chuàng)建類的實例對象
      Foo c4 = (Foo) c1.newInstance();
      c4.start();
    } catch (InstantiationException e) {
      e.printStackTrace();
    } catch (IllegalAccessException e) {
      e.printStackTrace();
    }
  }

}

class Foo{
  public void start(){
    System.out.println("Foo類");
  }
}

  通過上面的代碼大家是不是對于Class有了一個更深入的認(rèn)識,我們可以通過new關(guān)鍵字來創(chuàng)建類的實例對象,同樣可以通過類的類類型來創(chuàng)建類的實例對象,獲取類的類類型的方式以上有三種形式,他們得到的類類型只有一個,所以c1==c2==c3:true。

  經(jīng)過上面的簡單介紹大家是不是對于Java中的class有了一個更深入的認(rèn)識,下面我們通過一個小例子為大家介紹一下類類型與類的實例在實際中的使用。

class Offices{
  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();
    }
  }
}

  大家看一下上面的代碼,當(dāng)我們編譯時,是否可以正常通過?這里我們需要說一下編譯與運(yùn)行:編譯時刻加載的類是靜態(tài)加載類;運(yùn)行時刻加載的類是動態(tài)加載類。Class.forName("l類的全稱");不僅代表了類類型,而且代表了動態(tài)加載類。上面的例子中,Word、Excel我們并不一定用的到,但是當(dāng)我們編譯時,如果Word、與Excel不存在,那么便會出錯。所以接下來我們通過類類型動態(tài)加載類的方式來實現(xiàn)上面的邏輯。

class Office{
  public static void main(String [] args){
    try{
      Class c = Class.forName(args[0]);
      OfficeAble oa = (OfficeAble)c.newInstance();
      oa.Write();
    }catch(Exception e){e.printStackTrace();}
  }
}

interface OfficeAble{
  public void Write();
}
class Word implements OfficeAble{
  public void Write(){
    System.out.println("Word...start...");
  }
}
class Excel implements OfficeAble{
  public void Write(){
    System.out.println("Excel..Write..");
  }
}

  這樣我們就可以根據(jù)需要動態(tài)的增加類,方便我們應(yīng)用的功能拓展。

相關(guān)文章

  • maven配置多個鏡像的實現(xiàn)方法

    maven配置多個鏡像的實現(xiàn)方法

    這篇文章主要介紹了maven配置多個鏡像的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java servlet 幾種頁面跳轉(zhuǎn)的方法

    java servlet 幾種頁面跳轉(zhuǎn)的方法

    java servlet 幾種頁面跳轉(zhuǎn)的方法,需要的朋友可以參考一下
    2013-04-04
  • Java知識梳理之泛型用法詳解

    Java知識梳理之泛型用法詳解

    從JDK?5.0以后,Java引入了“參數(shù)化類型(Parameterized?type)”的概念,允許我們在創(chuàng)建集合時再指定集合元素的類型。本文就來和大家深入聊聊Java泛型的使用
    2022-08-08
  • Java批量從svn導(dǎo)出多個項目代碼實例

    Java批量從svn導(dǎo)出多個項目代碼實例

    這篇文章主要介紹了java批量從svn導(dǎo)出多個項目代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot實現(xiàn)人臉識別等多種登錄方式

    SpringBoot實現(xiàn)人臉識別等多種登錄方式

    本文主要介紹了SpringBoot實現(xiàn)人臉識別等多種登錄方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • java數(shù)組基礎(chǔ)詳解

    java數(shù)組基礎(chǔ)詳解

    下面小編就為大家?guī)硪黄狫ava創(chuàng)建數(shù)組的幾種方式總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望能給大家?guī)韼椭?/div> 2021-06-06
  • IDEA中使用Git的圖文教程

    IDEA中使用Git的圖文教程

    本文主要介紹了IDEA中使用Git的圖文教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Spring工作原理簡單探索

    Spring工作原理簡單探索

    這篇文章主要介紹了Spring工作原理簡單探索,涉及Springaop與IOC,動態(tài)代理靜態(tài)代理,反射等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Mybatis中傳遞多個參數(shù)的4種方法總結(jié)

    Mybatis中傳遞多個參數(shù)的4種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于Mybatis中傳遞多個參數(shù)的4種方法,并且介紹了關(guān)于使用Mapper接口時參數(shù)傳遞方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 利用maven deploy上傳本地jar至私服的方法

    利用maven deploy上傳本地jar至私服的方法

    這篇文章主要介紹了利用maven deploy上傳本地jar至私服的方法,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02

最新評論