BloveSaga

          在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks

          =============================封裝類===============
          針對八種基本數據類型定義的相應的引用類型-封裝類(包裝類,包裹類)
          基本數據類型????????? 封裝類
          ?boolean?????????????? Boolean
          ?byte????????????????? Byte
          ?short???????????????? Short
          ?int?????????????????? Integer
          ?long????????????????? Long
          ?char????????????????? Character
          ?float???????????????? Float
          ?double??????????????? Double
          所有的封狀類都是一個只讀類(不能修改的).針對沒個基本類型我們只能建立一個這讀的。

          class Test
          {
          ?public static void main(String[] args)
          ?{
          ??int i=3;
          ??Integer in=new Integer(i);
          ??int j=in.intValue();
          ??System.out.println(j);
          ??String str=in.toString();? //把Integer對象轉換為String類型
          ??System.out.println("str="+str);
          ??
          ??String str1="123";
          ??System.out.println(Integer.valueOf(str1));? //把String類型轉換為Integer類型
          ??
          ??boolean b1=false;
          ??Boolean b=new Boolean(b1);
          ??String s1=b.toString();
          ??System.out.println(s1);
          ??
          ??String s2="NO";
          ??System.out.println(Boolean.valueOf(s2));
          ?}
          }

          *****************Class*********************
          1> 在Java中,每個class都有一個相應的Class對象。也就是說,當我們編寫一個類,編譯完成后,在生成
          ?? 的.class文件中,就會產生一個Class對象,用于表示這個類的類型信息。
          2> 獲取Class實例的方法有三種:
          ?? <1>利用對象調用getClass()方法獲得該對象的Class實例。
          ?? <2>使用Class類的靜態方法forName(),用類的名字獲取一個Class的是實例。
          ?? <3>運用.class的方式來獲取Class實例,對于基本數據類型的封裝類,還可以用.TYPE來獲取相應的
          ????? 基本數據類型的Class實例。
          ?? <4>在運行期間,如果我們要產生某個類的對象,JAVA虛擬機(JVM)會檢查該類型的Class對象是否被
          ????? 加載,如果沒有加載,JVM會根據類的名稱找到.class文件并加載它。一旦某個類型的Class對象已
          ????? 經被加載到內存,就可以用它來產生該類型所有的對象。
          ?? <5>newInstance()調用類中缺省的構造方法。(好處是我們在不知道類的名字的情況下去創造一個實例)
          import java.lang.reflect.*;?????? //子包必須手動導入
          class ClassTest
          {
          ?public static void main(String[] args)//throws Exception
          ?{
          ??/*
          ??Point pt=new Point();?????????????
          ??Class c1=pt.getClass();//利用對象調用getClass()方法獲得該對象的Class實例
          ??System.out.println(c1.getName());
          ??
          ??Class c2=Class.forName("Point");//使用Class類的靜態方法forName(),用類的名字獲取一個Class的是實例
          ??System.out.println(c2.getName());
          ??
          ??Class c3=Point.class;//運用.class的方式來獲取Class實例
          ??System.out.println(c3.getName());
          ??
          ??Class c4=Integer.TYPE;//封裝類用.TYPE來獲取相應的基本數據類型的Class實例。
          ??System.out.println(c4.getName());
          ??*/
          ??/*
          ??System.out.println("before new Point()");
          ??new Point();
          ??System.out.println("after new Point()");
          ??Class.forName("Line");
          ??*/
          ??/*
          ??if(args.length!=1)
          ??{
          ???return;
          ??}
          ??try
          ??{
          ???Class c=Class.forName(args[0]);
          ???Point pt=(Point)c.newInstance();
          ???pt.output();
          ??}
          ??catch(Exception e)
          ??{
          ???e.printStackTrace();
          ??}
          ??*/
          ??if(args.length!=1)
          ??{
          ???return;
          ??}
          ??try
          ??{
          ???Class c=Class.forName(args[0]);
          ???Constructor[] cons=c.getDeclaredConstructors();
          ???/*
          ???for(int i=0;i<cons.length;i++)
          ???{
          ????System.out.println(cons[i]);
          ???}
          ???Method[] ms=c.getDeclaredMethods();
          ???for(int i=0;i<ms.length;i++)
          ???{
          ????System.out.println(ms[i]);
          ???}*/
          ???Class[] params=cons[0].getParameterTypes();
          ???Object[] paramValues=new Object[params.length];
          ???for(int i=0;i<params.length;i++)
          ???{
          ????if(params[i].isPrimitive())
          ????{
          ?????paramValues[i]=new Integer(i+3);
          ????}
          ???}
          ???Object o=cons[0].newInstance(paramValues);
          ???Method[] ms=c.getDeclaredMethods();
          ???ms[0].invoke(o,null);
          ??}
          ??catch(Exception e)
          ??{
          ???e.printStackTrace();
          ??}
          ??
          ?}
          }

          class Point
          {
          ?static
          ?{
          ??System.out.println("Loading Point");
          ?}
          ?int x,y;
          ?void output()
          ?{
          ??System.out.println("x="+x+","+"y="+y);
          ?}
          ?Point(int x,int y)
          ?{
          ??this.x=x;
          ??this.y=y;
          ?}
          }

          class Line
          {
          ?static
          ?{
          ??System.out.println("Loading Line");
          ?}
          }

          posted on 2006-06-05 05:59 藍色Saga 閱讀(139) 評論(0)  編輯  收藏 所屬分類: Basic Study for JAVA
          主站蜘蛛池模板: 蕉岭县| 长汀县| 文化| 福清市| 绍兴县| 巩义市| 平原县| 孟村| 米易县| 科技| 崇明县| 上栗县| 明光市| 饶平县| 班戈县| 昭苏县| 翁牛特旗| 莱阳市| 长春市| 达拉特旗| 灵石县| 哈尔滨市| 张家界市| 恩平市| 双辽市| 西吉县| 佛山市| 晋州市| 昌宁县| 运城市| 梓潼县| 辽阳县| 宁南县| 兰溪市| 孝昌县| 贞丰县| 沁源县| 临海市| 修武县| 临桂县| 雷山县|