国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java基礎類Class使用指南

Java基礎類Class使用指南

2020-03-19 12:53hebedich JAVA教程

關于通過類名訪問class屬性,我朋友問過好幾次了,一直沒明白這個東西到底是什么?對此,我參照網友們的博客,總結了一些小知識,如發現錯誤,希望糾正,謝謝

大家都知道Java是一門面向對象編程語言,在Java世界里,萬事萬物皆對象,那個Java中怎么表示對象呢?Class

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

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

package com.edu.hpu;

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class Test {
  
  public static void main(String[] args) {
    //通過new實例化一個對象
    Foo foo = new Foo();
    //通過實例化對象的getClass()方法得到Class類的實例
    Class c1 = foo.getClass();
    //任何一個類都有一個隱含的靜態變量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 {
      //通過類的類類型來創建類的實例對象
      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有了一個更深入的認識,我們可以通過new關鍵字來創建類的實例對象,同樣可以通過類的類類型來創建類的實例對象,獲取類的類類型的方式以上有三種形式,他們得到的類類型只有一個,所以c1==c2==c3:true。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
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();
    }
  }
}

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

?
1
2
3
4
5
6
7
8
9
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();}
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
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..");
  }
}

  這樣我們就可以根據需要動態的增加類,方便我們應用的功能拓展。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 爱干视频 | 一级片在线播放 | 亚洲www啪成人一区二区 | 五月婷婷激情 | 91免费视频| 免费骚视频 | 免费观看在线午夜影视 | 午夜影晥| 国产精品久久久999 一区二区三区视频免费在线观看 | 久久久成人精品 | 国产精品无码久久久久 | 日韩精品久久久久 | 亚洲精品久久 | 黄色小视频免费 | 久久五月天婷婷 | 欧美精品一区二区三区蜜桃视频 | av一区二区三区 | 亚洲视频区 | 欧美日韩精品在线观看 | 伊人二区| 在线观看成人 | 午夜伦理影院 | av网站观看 | 白浆一区 | 久草视频在线播放 | 亚洲国产精品电影在线观看 | 国产毛片毛片 | 一区二区免费视频 | 黄色免费成人 | 久久久久久网站 | 久草.com| 91视频免费看 | 激情久久婷婷 | 在线免费看黄 | 精品一区二区久久久久黄大片 | 久久精品国产视频 | 午夜影院免费 | 艹逼逼视频 | 国产高清自拍 | 国产片在线观看 | 91av在线电影|