∪∩deniable Design

          個人JAVA版GAE(google app engine),struts2+jpa+jQuery開發,互相交流 http://iunbug.appspot.com/
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Java學習筆記(一)

          Posted on 2008-07-27 17:01 ∪∩BUG 閱讀(515) 評論(1)  編輯  收藏 所屬分類: Java學習筆記
           1JAVA筆記
           22008 04 22
           31.用javac編譯代碼時,javac 后的文件名對大小寫不敏感,如一個名為Hello.java的文件,
           4    可以這樣寫:javac hello.java或javac HEllO.java
           52.用java解釋代碼時,java 后跟的是一個類名,而不是一個文件名.如要解釋文件名為Hello.java的文件(類名為Hello是一個類名,
           6    文件名要寫類名相同)必須寫成java Hello.
           73.        Label prompt1;                //Label 對象是一個可以容器中放置文本的組件
           8            TextField input1;                //TextField 對象是個允許編輯單行文本的文本組件
           94.java中對boolean類型賦值時只能是true或false,不能像C語言一樣的賦任意不為0 的數.
          10    如在用到if或while語句時,條件只能用boolean值的true或false.如:
          11        if(true){
          12                }

          13        while(false){
          14            }

          155.java中數組:
          16    1)可以在定義數組時值,
          17        如:
          18        int [] num={1,2,3}//ok
          19        或:
          20        int [] num=new int[]{1,2,3}//ok
          21        注意:不能這么指定大小:
          22        int [] num =new int[3]{1,2,3}//error!!!
          23    但不能在定義之后再賦值,(非法)
          24        如:
          25        int [] num;
          26        num={1,2,3}//error
          27    2)二維數組
          28            int [][]num =new int[][]{1,2,3,4,5,6};//error
          29            int [][]num =new int[][]{{1,2,3},{4,5,6}};//初始化賦值兩行三列ok
          30            int [][]num =new int[2][3]{{1,2,3},{4,5,6}};//初始化指定大小兩行三列error
          316.關于JAVA的"++"操作:
          32            int i =3
          33      int count =(i+++(i+++(i++);  //這么計算:(3) +(4) +(5)
          34      int count =(++i) +(++i) +(++i);            //這么計算:(4) +(5) +(6)
          35      System.out.println("i="+i); 
          36      System.out.println("count="+count); 
          37

           1JAVA筆記
           22008 04 24
           3
           41.補碼:
           5      已知一個負數的補碼,將其轉換為十進制數,步驟:
           6      1、先對各位取反;
           7      2、將其轉換為十進制數;
           8      3、加上負號,再減去1。
           9      例如:
          10      11111010,最高位為1,是負數,先對各位取反得00000101,轉換為十進制數得5,加上負號得-5,再減1得-6
          112.左移,右移,無符號右移.
          12                            int j = 8;
          13                            int f = j << 2;//左移.每左移一位相當于乘以2,這里乘以4
          14                            int g = j >> 2;//右移,每右移一位相當于除以2,這里除以4
          15                            int h = j >>> 2;//無符號右移,每右移一位相當于除以2,這里除以4
          16

            1JAVA筆記
            2
            32008 04 26
            4
            51.特殊變量this的使用:
            6    關于實例方法和實例數據成員的進一步說明 
            7     一個類所有的實例(對象)調用的成員方法在內存中只有一份拷貝,
            8     盡管在內存中可能有多個對象,而數據成員在類的每個對象所在內存中都存在著一份拷貝。
            9     this變量允許相同的實例方法為不同的對象工作。每當調用一個實例方法時,
           10     this變量將被設置成引用該實例方法的特定的類對象。方法的代碼接著會與this所代表的對象的特定數據建立關聯。
           11
           12        1)this代表對象本身,當類的成員變量與類成員方法的局部變量同名時,可以用this來區分.
           13        2)this 還可以簡化構造函數的調用
           14class Point
           15{
           16            int x,y; //類的成員變量
           17            //
           18            Point ()//構造方法主要為類的對象定義初始化狀態
           19            {
           20                this(1,2);    //通過this簡化構造函數的調用。    
           21            }

           22            Point(int a ,int b)//重載構造方法
           23            {
           24                //initialization phase初始化段
           25                    x = a;
           26                    y = b;
           27            }
              
           28            
           29            //termination phase終止段
           30            void output()
           31            {
           32                    System.out.println("x ="+x);
           33                    System.out.println("y ="+y);    
           34            }
              
           35            
           36            //void output(int x ,int y) //this變量代表對象本身                                                                                                              
           37            //{                         //當類中有兩個同名變量,一個屬于類(類的成員變量),
           38            //                                                    //而另一個屬于某個特定的方法(方法中的局部變量),使用this區分成員變量和局部變量。
           39            //        this.x = x;                                                                                                                 
           40            //        this.y = y;  
           41            //}
           42                            
           43            //processing phase處理段
           44            public static void main(String[] args)// main method
           45            {
           46                    Point pt1;
           47                    pt1 = new Point();
           48                    //pt1.putput(4,5);
           49                    pt1.output();
           50                    
           51            }

           52}
                       
           53
           542. 類方法(靜態方法)和類變量(靜態變量)
           55        1)class Point{
           56            .
           57            static int a;//定義一個類變量
           58            stactic void output(){}//定義一個類方法
           59            
           60            Point.output();//調用一個類方法
           61            }

           62        2)類方法只能引用類變量,不能引用非類變量,也不能調用非類方法
           63        3)類變量可以被非類方法引用,類方法也可以通過對象調用
           643.用final聲明常量:
           65        1)用final聲明的常量的同時必須對他進行初始化;
           66        2)非靜態常量也可以在類的構造方法中初始化,
           67            但如果類中有多個重載構造方法則必須在*每個沒有調用已經初始化final常量方法*中都進行初始化.
           68        3)**如果把這個常量聲明為靜態常量時(static final PI = 3.1415926)則必須在聲明時初始化!
           69
           704.關于繼承extends[**構造方法和析構方法不能被繼承**]
           71        1)JAVA是不允許多繼承的.
           72        2)在子類中定義一個與父類中同名,同返回類型,同參數個數和類型的成員方法稱為方法的覆蓋.即**子類的方法把父類的方法覆蓋掉了**!!
           73            在子類中的同名變量亦是如此,此時父類的同名變更將在子類中被隱藏起來!
           74        3)如果要訪問父類中被隱藏的成員變量或調用被覆蓋的方法可以用Super.
           75        4)每個子類構造方法的第一條語句,都是隱含地調用super();
           76                **如果子類和父類中都有構造方法,則必須通過super()顯示調用父類的構造方法!**
           775.關于多態性:
           78        1)通過覆蓋父類的方法來實現,在運行時根據傳遞的對象引用,來調用相應的方法。
           79        2)當我們把子類對象的引用傳給聲明為父類的一個對象變量,
           80            如果子類有的方法就調用子類的方法,如果子類沒有的方法就調用父類的方法!
           816.可以用instanceof來驗證某個對象是否是某個類的實例
           82        
           83class Animal
           84{
           85            int weight,height;
           86            Animal(int weight,int height)//Animal類的構造方法
           87            {
           88                        System.out.println("Animal construct");
           89            }

           90            void eat()
           91            {
           92                        System.out.println("Animal eat");
           93            }

           94            
           95            void breathe()
           96            {
           97                        System.out.println("Animal breathe");
           98            }

           99}

          100
          101class Fish extends Animal        //Fish類繼承了Animal類
          102{            
          103            int height; 
          104            Fish()//Fish類的構造方法
          105            {
          106                        super(30,40);//顯示調用父類中帶參數的構造方法
          107                        System.out.println("Fish construct");
          108            }

          109            void breathe()//在了類中重寫breathe方法
          110            {
          111                        //super.breathe();//用super可以調用父類被覆蓋的方法
          112                        //super.height = 40;//用super可以訪問父類被隱藏的成員變量
          113                        System.out.println("Fish bubble");
          114            }
                  
          115}

          116
          117class Intergration
          118{
          119            public static void main(String[] args)
          120            {
          121                        //Animal an = new Animal();
          122                        Fish fh = new Fish();
          123                        //
          124                        //an.breathe();
          125                        //fh.height = 30;
          126                        //fh.breathe();
          127                        Animal an=new Animal(30,40);
          128                        Fish fh=new Fish();
          129                        an=fh;//將Fish的對象fh的引用賦給Animal的對象an后,an也變成了Fish的一個實例!
          130                        /*if(an instanceof Animal)
          131                        {
          132                            System.out.println("an is animal's instance");
          133                        }
          134                        if(fh instanceof Fish)
          135                        {
          136                            System.out.println("fh is fish's instance");
          137                        }*/

          138                        if(an instanceof Fish)//驗證an是否是Fish的一個實例
          139                        {
          140                            System.out.println("an is fish's instance");
          141                        }

          142                        else
          143                        {
          144                            System.out.println("an isn't fish's instance");
          145                        }

          146                        if(fh instanceof Animal)
          147                        {
          148                            System.out.println("fh is animal's instance");
          149                        }

          150                        else
          151                        {
          152                            System.out.println("fh isn't animal's instance");
          153                        }

          154            }

          155}

          156
          1577.用面向對象的方法求:
          158求一個長方形的周長和面積。
          159以面向對象的程序設計方式思考:
          160     1、一個長方形可以看成一個長方形對象。
          161     2、一個長方形對象有兩個狀態(長和寬)和兩個行為(求周長和求面積)。
          162     3、將所有長方形的共性抽取出來,設計一個長方形類。
          163     4、通過長方形對象的行為,就可以求出某個具體的長方形對象的周長和面積。
          164
          165//create a Rectangle class
          166//declaration l and w variables for length and width
          167//create perimeter method and area to count
          168//creat main method
          169//declaration object Rectal1 and Recral2
          170//intialization variable l and w by object Rectal1 and Recral2
          171//print the value
          172
          173class Rectangle
          174{
          175            int l,w;
          176            
          177            //processing phase
          178            int perimeter()
          179            {
          180                    return 2*(l+w);
          181            }

          182            
          183            int area()
          184            {
          185                    return l*w;
          186            }

          187            
          188            public static void main(String[] args)
          189            {
          190                    Rectangle Recta1 = new Rectangle();
          191                    Rectangle Recta2 = new Rectangle();
          192                    
          193                    //initialization phase
          194                    Recta1.l = 10;
          195                    Recta1.w = 30;           
          196                    Recta2.l = 30;
          197                    Recta2.w = 20;
          198                    
          199                    //termination phase
          200                    System.out.println("Recta1's Perimeter is: \t" + Recta1.perimeter());
          201                    System.out.println("Recta1's Area is: \t" + Recta1.area());
          202                    System.out.println("Recta2's Perimeter is: \t" + Recta2.perimeter());
          203                    System.out.println("Recta2's Area is: \t" + Recta2.area());
          204            }
             
          205}

          206            

           1JAVA筆記
           22008 04 29
           3
           41.package(包)
           5    1)package語氣必須是程序的第一條語氣(除了注釋語氣和空白語氣)
           6    2)package的包名指的是一個文件夾或路徑,也就是說,類名在package所在的目錄下,在解釋執行時必須標明類所在的路徑.
           7            如:
           8            package cn.mybole;
           9
          10            class Test
          11            {
          12                    public static void main(String[] args)
          13                    {
          14                            System.out.println("package test!");
          15                    }

          16            }

          17            
          18        //執行:java cn.mybole.Test
          19    3)可以在編譯時用 "-d ."(-d 和.之間有一個空格,.和*.java之間有一個空格)參數來在當前目錄下生成目錄 cn/mybole/Test.class,
          20        即將*.class文件在生成的目錄下生成.
          21        如:    javac -d . Test.java        //在當前目錄一生成包
          22                javac -d E:\javalesson\Test.java        //在指定目錄(E:\javalesson)一生成包
          23    4)用import關鍵字導入一個包(其中,java.lang包是自動導入的):
          24        1.import java.io.File        //導入java.io包中的File類
          25        2.import java.io.*            // 導入java.io包中的所有類
          26            這種導入所有類的方法雖然方便,但是:
          27            1.會消耗機器的大量內存
          28            2.當遠程加載時會因加載到本地的類過多而造成明顯的延時.
          29    5)導入一個包中的類后可以在當前類中用所導入的類直接定義變量
          30        如: File f;        //用已經導入的類定義變量
          31                java.io.File f        //當沒有用import導入包時也可以通過完整的類名定義
          32    6)如果要使用的類在同一個包中,無需用import語氣就可以相互引用.
          33
          342.類的說明符
          35    1)從外部軟件包中訪問非同一個包的一個類--public類
          36        1.缺省的類是不能被外部軟件包訪問的.
          37        2.只有聲明為public的類才能通過import(或在當前類中以完整類名)被外部軟件包訪問.
          38        如:
          39            //Test2.java
          40            
          41            //package cn.mybole;
          42            package com.winsunlight;        //com.winsunlight包
          43            
          44            public class Test2 //Test類是public類.
          45            {
          46                    
          47            }

          48            //Test.java
          49    
          50            package cn.mybole;
          51            
          52            //import java.io.File;
          53            //import java.io.*;
          54            import com.winsunlight.Test2;//導入com.winsunlight包中的Test2類
          55            class Test
          56            {
          57                    public static void main(String[] args)
          58                    {
          59                            //File f;
          60                            //java.io.File f;
          61                            //System.out.println("package test!");
          62                            Test2 t2 = new Test2();        //訪問com.winsunlight包中的Test2類
          63                    }
             
          64            }

          65    2)final類(最終類)不能被其他類所繼承,其方法也不能被覆蓋.
          66        1.public final class Test2 //用public和final修飾的類可以用import引用,亦不能被繼承.


          評論

          # re: Java學習筆記(一)  回復  更多評論   

          2008-07-28 16:29 by ∪∩BUG
          從UltraEdit里復制的代碼在這里都不整齊了..
          花是半天時間才把比較喜歡的這個Blog的主題改成可以夠寬的顯示代碼了..
          主站蜘蛛池模板: 页游| 石棉县| 高雄市| 类乌齐县| 邹城市| 镶黄旗| 乐业县| 内乡县| 嘉兴市| 阿坝| 黄浦区| 湄潭县| 紫云| 凉城县| 千阳县| 丹阳市| 海安县| 宜黄县| 宁明县| 德昌县| 仪陇县| 浠水县| 屯昌县| 枣庄市| 九江县| 且末县| 临潭县| 隆安县| 灯塔市| 富平县| 社旗县| 绿春县| 蒙阴县| 古蔺县| 江阴市| 嘉峪关市| 太仆寺旗| 婺源县| 新田县| 高陵县| 陕西省|