SQL2000需要三個(gè)jar包:http://dl.dbank.com/c01lhhrw11
SQL2005需要一個(gè)jar包:http://dl.dbank.com/c02tkdkmmy
加載驅(qū)動(dòng)與得到連接的區(qū)別:
SQL2005的用:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;d atabaseName=stdb","sa","sa");
SQL2000的用:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;d atabaseName=stdb","sa","sa");第二步,看你的sql 2005是否開(kāi)啟了遠(yuǎn)程訪問(wèn)權(quán)限,具體設(shè)置如下:
進(jìn)入“Microsoft SQL Server 2005 ”——“配置工具”——“SQL Server 外圍應(yīng)用配置器”
在進(jìn)入“MSSQLSERVER"——“DATABASE" Engine”——“遠(yuǎn)程連接”
選擇“本地連接和遠(yuǎn)程連接(R)"——”同時(shí)使用tcp/ip和named pipes(B)"
最后重啟sql server 2005
方法重載
# Java的方法重載是指一個(gè)類中有多個(gè)方法具有相同的名字,但參數(shù)不同。
調(diào)用方法時(shí)通過(guò)傳遞給它們的不同個(gè)數(shù)和類型的參數(shù)來(lái)區(qū)分具體使用哪個(gè)方法, 這
就是多態(tài)性。
1. 方法名相同
2. 方法的參數(shù)類型,個(gè)數(shù),順序至少有一項(xiàng)不同
3. 方法返回類型可以不同
4. 方法的修飾符可以不同
方法覆蓋(重寫(xiě))
#在Java中,子類可繼承父類中的方法,而不需要重新編寫(xiě)相同的方法。但有時(shí)子類并不想原封不動(dòng)地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫(xiě)。
1. 方法覆蓋就是子類有一個(gè)方法和父類的某個(gè)方法的名稱、返回類型、參數(shù)一樣,那么我們就說(shuō)子類的這個(gè)方法覆蓋了父類的那個(gè)方法。
2. 子類的方法的返回類型,參數(shù),方法名稱要和父類的完全一致,否則編譯出錯(cuò)。
3. 子類方法不能縮小父類方法的訪問(wèn)權(quán)限(子類方法的修飾符定義得要比父類方法的修飾符的訪問(wèn)范圍大)
成員變量和局部變量
1.類體屬性部分定義的變量稱為成員變量;方法體內(nèi)定義的變量稱為局部變量。
2.成員變量在整個(gè)類內(nèi)都有效;局部變量只在定義它的方法體內(nèi)有效。
3.如果成員變量和局部變量的名字相同,則在方法體里成員變量將被隱藏。
Public class Person{
int age; //成員變量
String name; //成員變量
public Person(int age,String name)
{
this.age=age; //this.age中的age為成員變量,age為局部變量
this.name=name;
}
實(shí)例變量和類變量(靜態(tài)變量)以及類方法
1. 實(shí)例變量+類變量=成員變量。
2. 類變量聲明時(shí)要帶有“static”關(guān)鍵字。
3. 實(shí)例變量使用時(shí)是被對(duì)象調(diào)用的,即“對(duì)象名.實(shí)例變量名”;
類變量使用時(shí)被類調(diào)用(也可以是對(duì)象),即“類名.類變量”( 對(duì)象名. 類變量)。
4. 某個(gè)對(duì)象更改其實(shí)例變量,其他對(duì)象不受影響;類變量改變時(shí),所有對(duì)象的這個(gè)類變量都被改變。
5. 實(shí)例方法既能對(duì)類變量操作,用能對(duì)實(shí)例變量操作,而類方法只能對(duì)類變量進(jìn)行操作。
Public class Child{
int age;
String name;
static int total=0;
public void joinGame(){
System.out.println("有一個(gè)小孩加進(jìn)來(lái)啦");
total++;
}
}
public static void main(String []args)
{
Child ch1=new Child();
ch1.age=10;
ch1.name=”小小”;
System.out.println("共有"+ch1.total); }
靜態(tài)代碼塊static{...}
首先靜態(tài)代碼塊static{...}是在類被裝載的時(shí)候執(zhí)行,且只執(zhí)行一次;靜態(tài)代碼塊是在內(nèi)存中開(kāi)辟的一塊公共區(qū)域,類的多個(gè)實(shí)例共享的區(qū)域,任何該類的實(shí)例對(duì)該區(qū)域的操作都對(duì)所有所有該類的實(shí)例對(duì)該區(qū)域的操作都是生效的。
static代碼塊主要用在想在類加載的時(shí)候就初始化一些內(nèi)容,如:初始化數(shù)據(jù)庫(kù)鏈接classforName("XXX"),
什么是是JAVA構(gòu)造函數(shù)
每創(chuàng)建一個(gè)類的實(shí)例都去初始化它的所有變量是乏味的。如果一個(gè)對(duì)象在被創(chuàng)建時(shí)就完成了所有的初始工作,將是簡(jiǎn)單的和簡(jiǎn)潔的。因此,Java在類里提供了一個(gè)特殊的成員函數(shù),叫做構(gòu)造函數(shù)(Constructor)。
一個(gè)構(gòu)造函數(shù)是對(duì)象被創(chuàng)建時(shí)初始對(duì)象的成員函數(shù)。它具有和它所在的類完全一樣的名字。一旦定義好一個(gè)構(gòu)造函數(shù),與new運(yùn)算符一起使用,創(chuàng)建對(duì)象時(shí)就會(huì)自動(dòng)調(diào)用它。構(gòu)造函數(shù)沒(méi)有返回類型,即使是void類型也沒(méi)有。這是因?yàn)橐粋€(gè)類的構(gòu)造函數(shù)的返回值的類型就是這個(gè)類本身。構(gòu)造函數(shù)的任務(wù)是初始化一個(gè)對(duì)象的內(nèi)部狀態(tài),所以用new操作符創(chuàng)建一個(gè)實(shí)例后,立刻就會(huì)得到一個(gè)清楚、可用的對(duì)象。
構(gòu)造方法是一種特殊的方法,具有以下特點(diǎn)。
(1)構(gòu)造方法的方法名必須與類名相同。
(2)構(gòu)造方法沒(méi)有返回類型,也不能定義為void,在方法名前面不聲明方法類型。
(3)構(gòu)造方法的主要作用是完成對(duì)象的初始化工作,它能夠把定義對(duì)象時(shí)的參數(shù)傳給對(duì)象的域。
(4)構(gòu)造方法不能由編程人員調(diào)用,而要系統(tǒng)調(diào)用。
(5)構(gòu)造函數(shù)不能被直接調(diào)用,必須通過(guò)new運(yùn)算符在創(chuàng)建對(duì)象時(shí)才會(huì)自動(dòng)調(diào)用(即在new的時(shí)候就開(kāi)始執(zhí)行構(gòu)造函數(shù)里面的語(yǔ)句);而一般的方法是在程序執(zhí)行到它的時(shí)候被調(diào)用的.
(6)一個(gè)類可以定義多個(gè)構(gòu)造方法,如果在定義類時(shí)沒(méi)有定義構(gòu)造方法,則編譯系統(tǒng)會(huì)自動(dòng)插入一個(gè)無(wú)參數(shù)的默認(rèn)構(gòu)造器,這個(gè)構(gòu)造器不執(zhí)行任何代碼。
(7)構(gòu)造方法可以重載,以參數(shù)的個(gè)數(shù),類型,或排列順序區(qū)分。
(8)當(dāng)定義一個(gè)類的時(shí)候,如果程序員不創(chuàng)建構(gòu)造函數(shù),則Java編譯器就會(huì)提供一個(gè)默認(rèn)的不帶參數(shù)的構(gòu)造函數(shù)。創(chuàng)建對(duì)象時(shí)系統(tǒng)就會(huì)自動(dòng)調(diào)用這個(gè)默認(rèn)的構(gòu)造函數(shù)來(lái)創(chuàng)建類的對(duì)象。如
Public Class Person{
Int age;
String name;
//默認(rèn)的構(gòu)造函數(shù)為(java編輯器會(huì)自動(dòng)生成的)
Public Person(){
}
Person p=new Person();
p.age=10;
p.name=”張三”;
}
java 構(gòu)造函數(shù)的執(zhí)行過(guò)程
類初始化時(shí)構(gòu)造函數(shù)調(diào)用順序: public class Demo_1 { /** * @param args */ public static void main(String[] args){ new Money(); new Dollar(); new Rmb(); } } class Money{ public Money(){ System.out.println("Money is construct"); } } class Dollar{ public Dollar(){ System.out.println("Dollar is construct!"); } } class Rmb{ public Rmb(){ System.out.println("RMB is construct"); } } 輸出結(jié)果: Dollar is construct! RMB is construct
(1)初始化對(duì)象的存儲(chǔ)空間為零或null值;
(2)調(diào)用父類構(gòu)造函數(shù);
(3)按順序分別調(diào)用類成員變量和實(shí)例成員變量的初始化表達(dá)式;
Money is construct