小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JAVA速成

 昵稱22369024 2015-04-02

一  基本知識

1 數(shù)據(jù)類型

類似于c/c++


對于long類型常量書寫時(shí),要在數(shù)字后面加上L或者l。0L
    對于float類型常量書寫時(shí),要在小數(shù)點(diǎn)后面加上F或者f。0.0F
    對于double類型常量書寫時(shí),要在小數(shù)點(diǎn)后面加上D或者d。 0.0D

數(shù)據(jù)類型之間的轉(zhuǎn)換
Java中也有隱式轉(zhuǎn)換(Java則叫做自動(dòng)轉(zhuǎn)換)和顯式轉(zhuǎn)換(Java則叫做強(qiáng)制轉(zhuǎn)換)。自動(dòng)轉(zhuǎn)換由編譯器實(shí)現(xiàn),強(qiáng)制轉(zhuǎn)換則由用戶編程實(shí)現(xiàn),再由編譯器執(zhí)行。

自動(dòng)轉(zhuǎn)換的規(guī)則:低級數(shù)據(jù)類型 ==》 高級數(shù)據(jù)類型;所占字節(jié)數(shù)低的數(shù)據(jù)類型 ==》 所占字節(jié)數(shù)高的數(shù)據(jù)類型
例如:byte short int long(整數(shù)類型) ==》 float double(浮點(diǎn)數(shù)類型)
      byte short(8字節(jié)和16字節(jié)) ==》int(32字節(jié))
      byte short int(8字節(jié),16字節(jié)和32字節(jié)) ==》 long(64字節(jié))
      float(32字節(jié)) ==》 double(64字節(jié))
      char(16字節(jié)) ==》 int(32字節(jié))
注:整數(shù)類型中的long,雖然占64個(gè)字節(jié),但是卻能自動(dòng)轉(zhuǎn)換成float類型(32字節(jié))。因此,我認(rèn)為,在自動(dòng)轉(zhuǎn)換的過程中,先考慮數(shù)據(jù)類型的等級高低,再考慮數(shù)據(jù)類型的所占字節(jié)數(shù)。

再注:從簡單數(shù)據(jù)類型圖中不難看出,各數(shù)據(jù)類型的長度均為固定值,這使得Java能夠在不同的平臺上運(yùn)行相同的Java程序時(shí)不用修改代碼,提高了程序的可移植特性。
 

2  頭文件

(1)類似于c++的命名空間或者是頭文件

在JAVA中叫做包(package)。Java的核心包中,我們常用的有這樣5種:
(1)java.lang , 封裝了所有編寫java程序所需要的基本類,包括Object、Class、System等。其中,Object類是所有類的根類,任何類都是繼承該類而建立的;Class類是由編譯器動(dòng)態(tài)生成對象的一個(gè)伴隨每一個(gè)類的特殊類;System類是一個(gè)final類,主要提供標(biāo)準(zhǔn)I/O和對系統(tǒng)環(huán)境信息的訪問等,這個(gè)類不能被實(shí)例化。
(2)java.awt , 窗口工具包,提供操作圖形用戶界面的基本功能。
(3)java.applet , 封裝Applet類的包,提供Applet執(zhí)行時(shí)需要的類。
(4)java.io , 封裝I/O操作的包。
(5)java.util , 提供使用程序類以及集合類等常用的工具類。


3 程序結(jié)構(gòu)

首先,是package語句,用來指定源文件所在的包。

然后,是public classDefinitiom,也就是公共類,用來指定源文件的類名,這個(gè)類名要與源文件名相同,可有0個(gè)或1個(gè)。
再然后,是classDefinition,也就是一般類,可以有若干個(gè),也可以沒有。
注:一個(gè)java源文件中,最多只能有一個(gè)public類,且必須與文件名相同。

我們的第一個(gè)程序:

import java.lang.*;
import java.io.*;

class matrix  //一般類 
{     
    void luoyang1()
   {   } 
}

public class Matrixkey //public類,類名要與文件名相同
{     
     public static void main(String args[])
     {
        System.out.println("很高興認(rèn)識你,我是Matrixkey");
      }
}


Java的解釋執(zhí)行

在系統(tǒng)運(yùn)行Java程序時(shí),Java編譯器將Java程序(*.java文件)轉(zhuǎn)化為字節(jié)碼(*.class文件),在運(yùn)行時(shí),解釋器將編譯得到的字節(jié)碼進(jìn)行解釋執(zhí)行。
Java語言一個(gè)源程序可以含有多個(gè)類(public類最多一個(gè)),每個(gè)類編譯都生成一個(gè)字節(jié)碼文件。也就是說,有幾個(gè)類,就有幾個(gè)字節(jié)碼文件。
這就是,我們在執(zhí)行一個(gè)Java程序時(shí)要先用javac *.java將Java程序轉(zhuǎn)化為字節(jié)碼的原因。
注:Java區(qū)分大小寫,因此上面的程序中,public類的類名:Matrixke,那么這個(gè)java程序的文件名必須為:Matrixkey.java


5 輸入輸出 

輸出使用println方法。println方法的使用方法如下:

System.out.println( x );

 System是java.lang.*包中的類,out是System類的一靜態(tài)屬性,而println()是out屬性的一個(gè)靜態(tài)方法。該方法用于打印后再換行,可以打印基本類型的數(shù)據(jù)以及字符串等,'+' 在字符串中代表將字符串相互連接。

        int x = 4772;
        /* 輸出一個(gè)字符m */
        System.out.println(m);  
       
        * 輸出一個(gè)數(shù)字4772 */

        System.out.println("變量x等于"+x); //或者直接System.out.println(x);
     
        /* 輸出一個(gè)字符串matrixkey */

        System.out.println("matrixkey");

        /* 輸出漢字落陽*/
        
System.out.println("落陽");
   

println方法打印后自動(dòng)換行,因此,下面2條代碼輸出結(jié)果是一致的

int x = 100;
System.out.println(x);
System.out.print(x + "\n");

注意:"+"號用來連接字符串是有點(diǎn)麻煩的! 例如:
System.out.println(1+2+"3"); 
Sysrem.out.println("1"+2+3); 
'+'號優(yōu)先級別,從左到右 
所以打印結(jié)果是這樣的:
33(先做1+2 變成字符串"3" 連接后面的"3",所以打印33) 
123(先把"1"和2連接成為"12",在連接3就變成"123")


6 運(yùn)算符和流程控制

C/C++類似,注意switch不能做實(shí)數(shù)的判斷


二 類  

1 概念

類作為JAVA程序的基本要素,由成員變量(即屬性)和成員方法組成,必須先定義在使用。
類聲明格式:[修飾符] class 類名 [extends 父類名] [implements 類實(shí)現(xiàn)的接口列表]
(1)修飾符用于確定類的訪問控制權(quán)限(public和friendly)以及類型(abstract和final)
(2)類名是合法的標(biāo)識符,并且首字母大寫
(3)保留字extends指明聲明的類所繼承的父類
(4)[ ]里的內(nèi)容可選

/* JAVA中類的聲明和繼承*/
public class Matrixkey
{成員變量
 成員方法}
 class Matrix extends Matrixkey

/* C#中類的聲明和繼承*/
public class Matrixkey
{成員變量
 成員方法}
 class Matrixk : Matrixkey

類體格式:class 類名 {成員變量 成員方法}
其中成員變量定義的格式為:<修飾符> <類型> <變量名稱>
        成員方法定義的格式為:<修飾符> <返回值類型> <方法名稱> ( [ <參數(shù)表> ] )
(1)成員變量和成員方法可以通過public private protected等修飾符控制訪問權(quán)限
(2)java中,方式是通過值傳遞參數(shù),而不是通過地址,因此方法不可以改變參數(shù)的值
例:

public class Matrixkey  //類聲明
 { public int a;
    public double b;        //成員變量的聲明
    
    static void Min(double c)  //成員方法的聲明 
 }

類成員的修飾符有兩種
訪問限定符:public  可以被外部類訪問
                        protected  可以被同一個(gè)包中的類以及該類的子類訪問
                        private  只能在該類內(nèi)部被訪問
                      
  default  可以被同一個(gè)包中的類訪問
非訪問限定符:靜態(tài)修飾符 static
                            最終修飾符  final
       抽象修飾符 abstract  syncronized

2 類的繼承

在java語言中,類繼承是通過extends保留字實(shí)現(xiàn)的,格式為:

 class Subclass extends Superclass {...}

(1) 用extends指明新定義的子類(Subclass)的父類(Superclass),就在兩個(gè)類之間建立了繼承的關(guān)系
(2)子類可以從父類繼承所有非private的屬性和方法作為自己的成員
(3)若子類成員變量的名字 和 父類成員變量的名字 相同,則子類成員隱藏父類成員
(4)若子類成員方法 與 父類成員方法的名字,返回值類型,參數(shù)表都相同,則子類方式是父類方法的重寫
(5)方法重寫時(shí)注意:子類方法的訪問權(quán)限要高于父類

子類方法的訪問權(quán)限比父類方法的訪問權(quán)限要高,一般用Super關(guān)鍵字來訪問父類的方法和變量,但是父類的對象不能直接訪問子類的方法和變量


3  數(shù)組

定義一維數(shù)組的格式:<類型> <數(shù)組名> [ ]; 或者 <類型> [ ] <數(shù)組名>;
因此,int A [ ]; int [ ] A ; 兩者是相同的
(1)<類型>可以是簡單或者復(fù)雜數(shù)據(jù)類型
(2)進(jìn)行數(shù)組定義時(shí),不分配內(nèi)存,因此不要求給出其元素的個(gè)數(shù)
(3)數(shù)組分配內(nèi)存通過new操作符或靜態(tài)初始化實(shí)現(xiàn)
創(chuàng)建一維數(shù)組的格式:<數(shù)組名> = new <類型> [ <數(shù)組大小> ];
                                          A = new int [3];
定義的同時(shí)創(chuàng)建:<類型> [ ] 數(shù)組名 = new <類型> [ <數(shù)組大小> ];
                                 int [ ] A = new int [3];
初始化數(shù)組:對已定義的數(shù)組元素賦值,有動(dòng)態(tài)和靜態(tài)兩種方式
(1)當(dāng)初始化元素?cái)?shù)目較少,采用靜態(tài)初始化
            int A[ ];
            A[0] = 1; A[1] = 2;A[2] = 3;
(2)對簡單類型,定義數(shù)組的同時(shí),用new操作符進(jìn)行初始化
           int [ ] A = new int [3]{1,2,3};
(3)當(dāng)初始化元素?cái)?shù)目較多,可以利用循環(huán)語句對數(shù)組元素動(dòng)態(tài)初始化

多維數(shù)組
定義的格式:<類型> <數(shù)組名> [ ] [ ];  或者 <類型> [ ] [ ] <數(shù)組名>;
初始化:在定義的同時(shí)對數(shù)組元素進(jìn)行賦值(靜態(tài))
                可以按順序直接對每一維分配內(nèi)存或從最高維開始對每一維分配內(nèi)存(動(dòng)態(tài))

數(shù)組操作
(1)方法arraycopy()用來進(jìn)行數(shù)組的拷貝
(2)ArrayList類用來動(dòng)態(tài)調(diào)整數(shù)組的大小  


4 字符串的表示

(1)用String類表示字符串,String類的對象表示的是固定長度的字符串
(2)用StringBuffer類表示字符串,StringBuffer類的每個(gè)對象都是長度可變的字符串
字符串的操作
(1)對String的修改
String類提供了concat() replace() substring()方法分別實(shí)現(xiàn)字符串的連接,替換,取子串的操作;“+”運(yùn)算符也可以用來連接字符串。
(2)對StringBuffer的修改
 StringBuffer類表示的是可變長度的字符串,使用它,就可以方便地在字符串中插入或在字符串尾追加字符。相應(yīng)的方法是:insert(),setCharAt(),append()。
(3)判斷兩個(gè)字符串是否相等,使用equals()方法

三  異常處理 

參考類似c/c++。
對于try和catch子句的排列方式,下列哪個(gè)是正確的?
A。 子類異常在前,父類異常在后
B。 父類異常在前,子類異常在后
C。 只能有子類異常
D。 父類異常和子類異常不能同時(shí)出現(xiàn)在同一個(gè)try程序段內(nèi)
解析:在java語言中,在捕獲父類異常時(shí)對其子類異常也捕獲了,根據(jù)try與catch的匹配原則,盡量使用一個(gè)父類去捕獲其所有子類的異常,而父類和子類異常是可以同時(shí)出現(xiàn)的。
答案:A

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多