日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

java核心技术笔记

發(fā)布時(shí)間:2023/12/13 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 java核心技术笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.類(lèi)和對(duì)象

第四章:面向?qū)ο?/p>

日歷的作用是提供某個(gè)時(shí)間點(diǎn)的信息

查詢(xún)?cè)O(shè)置信息:GregorianCalendar now = new GregorianCalendar()

int month = now.get(Calendar.MONTH);//得到當(dāng)前月份

更改設(shè)置信息:GregorianCalendar deadline = new GregorianCalendar();

deadline.set(Calendar.YEAR,2001);//把時(shí)間設(shè)置為2001年

deadline.set(Calendar.MONTH,Calendar.APRIL);//將時(shí)間設(shè)為5月

deadline.set(Calendar.DAY_OF_MONTH,15);

設(shè)置年月的方法:deadline.set(2001,Calendar.APRIL,15);//把時(shí)間設(shè)置為5月15日

為給定的日期增加天數(shù):deadline.add(Calendar.MONTH,3)//增加3個(gè)月

更改器方法:對(duì)實(shí)例域做出修改的方法

訪(fǎng)問(wèn)器方法:對(duì)實(shí)例域不能進(jìn)行修改的方法

顯示當(dāng)月日歷:

1.構(gòu)造一個(gè)日歷對(duì)象,并用當(dāng)前日期和時(shí)間進(jìn)行初始化。

2.將d設(shè)置為這個(gè)月的第一天,并得到這一天為星期幾weekday,

如果這一天為星期日,就將weekday設(shè)置為Calendar.SUNDAY

3.getFirstDayOfWeek()的方法獲得當(dāng)?shù)氐男瞧诘钠鹗既掌?,如果weekday不等于firthweekday日期,往前縮進(jìn),weekday在賦值為這個(gè)月的week

4.得到星期的格式并打印,

自定義簡(jiǎn)單的類(lèi)

想要要?jiǎng)?chuàng)建一個(gè)完整的程序,應(yīng)該將若干類(lèi)組合在一起,其中只有一個(gè)有main()方法。(方法在前面,定義變量的域在后面,更加關(guān)注接口消除了對(duì)實(shí)現(xiàn)的的注意)。

兩個(gè)類(lèi)寫(xiě)在同一個(gè)文件里面時(shí),編譯后會(huì)產(chǎn)生兩個(gè)class文件。編譯器發(fā)現(xiàn)一個(gè)類(lèi)使用另一個(gè)類(lèi)時(shí),會(huì)自動(dòng)查找另一個(gè)類(lèi)的class文件,如果沒(méi)有,自動(dòng)搜索Java文件,然后編譯。

構(gòu)造器(構(gòu)造函數(shù)):構(gòu)造器名與類(lèi)名相同,總是伴隨著new操作符的執(zhí)行被調(diào)用,沒(méi)有返回值,可以后0,1個(gè)以上的參數(shù)。

私有方法:如果改用其他方法實(shí)現(xiàn)相應(yīng)的操作,則不比保留原有的方法,如果數(shù)據(jù)的表達(dá)方式發(fā)生了變化,這個(gè)方法就變得難以實(shí)現(xiàn),或者不在需要。

靜態(tài)方法:靜態(tài)方法是一種不能向?qū)ο髮?shí)施操作的方法,Math.opow(x,a);x的a次冪,靜態(tài)方法是沒(méi)有this參數(shù)的方法,不能操作對(duì)象,不能在靜態(tài)方法中訪(fǎng)問(wèn)實(shí)例域。

一個(gè)方法不需要訪(fǎng)問(wèn)對(duì)象狀態(tài),其所需要參數(shù)都是通過(guò)顯示參數(shù)提供

一個(gè)方法只需要訪(fǎng)問(wèn)類(lèi)的靜態(tài)域、

一個(gè)方法不能修改一個(gè)基本數(shù)據(jù)類(lèi)型的參數(shù)

一個(gè)方法可以改變一個(gè)對(duì)象參數(shù)的狀態(tài)

一個(gè)方法不能實(shí)現(xiàn)讓對(duì)象參數(shù)引用一個(gè)新的對(duì)象

對(duì)象的構(gòu)造:

重載:方法名相同,參數(shù)不同,編譯器會(huì)根據(jù)參數(shù)類(lèi)型和特定方法調(diào)用所使用的值類(lèi)型進(jìn)行匹配來(lái)挑選相對(duì)應(yīng)的方法,如果編譯器找不到對(duì)應(yīng)的匹配參數(shù),或者找出多個(gè),會(huì)產(chǎn)生編譯錯(cuò)誤

默認(rèn)構(gòu)造器:默認(rèn)構(gòu)造函數(shù),如果不寫(xiě),程序會(huì)提供一個(gè)空的構(gòu)造函數(shù)。

顯示域初始化:類(lèi)的構(gòu)造器可以重載,所以可以采用多種形式設(shè)置的實(shí)例域的初始狀態(tài),確保不管怎樣調(diào)用構(gòu)造器,每個(gè)實(shí)例域都有一個(gè)有意義的初值。

調(diào)用構(gòu)造器的具體處理步驟:

所以數(shù)據(jù)域均被初始化為默認(rèn)值
按照在類(lèi)中聲明出現(xiàn)的次序,依次執(zhí)行所有域初始化語(yǔ)句和初始化塊
如果構(gòu)造器第一行調(diào)用了第二個(gè)構(gòu)造器,則執(zhí)行第二構(gòu)造器主體
執(zhí)行這個(gè)構(gòu)造器的主體

類(lèi)的設(shè)計(jì)技巧:

一定將數(shù)據(jù)設(shè)為私有,絕對(duì)不要破壞封裝性。
一定要對(duì)數(shù)據(jù)初始化,Java不會(huì)對(duì)局部變量進(jìn)行初始化化,會(huì)對(duì)對(duì)象的實(shí)例域初始化。
不要再類(lèi)中使用過(guò)多的基本類(lèi)型,用其他的類(lèi)代替多個(gè)相關(guān)的基本數(shù)據(jù)類(lèi)型。
不是所有的域都需要獨(dú)立的域訪(fǎng)問(wèn)器和域更改器。
使用標(biāo)準(zhǔn)的格式進(jìn)行類(lèi)的定義:類(lèi)的順序:

a) 公有訪(fǎng)問(wèn)特性部分

b) 包作用域訪(fǎng)問(wèn)特性

c) 私有域訪(fǎng)問(wèn)特性

類(lèi)中每一部分:

實(shí)例方法

靜態(tài)方法

實(shí)例域

靜態(tài)域

將職責(zé)過(guò)多的類(lèi)進(jìn)行分解
類(lèi)名和方法名要能體現(xiàn)他們的職責(zé)

繼承:

Super:調(diào)用父類(lèi)所需要的關(guān)鍵字,使用super調(diào)用構(gòu)造器的語(yǔ)句必須是子類(lèi)構(gòu)造器的第一條語(yǔ)句。

多態(tài):一個(gè)變量可以引用多種實(shí)際類(lèi)型的現(xiàn)象,在運(yùn)行時(shí)能夠自動(dòng)地選擇調(diào)用哪個(gè)方法的現(xiàn)象叫動(dòng)態(tài)綁定。特性:無(wú)需要對(duì)現(xiàn)存的代碼進(jìn)行修改,就可以對(duì)程序進(jìn)行擴(kuò)展呢

多態(tài):

父類(lèi)的對(duì)象可以引用子類(lèi)的對(duì)象。

抽象類(lèi)不能創(chuàng)建這個(gè)類(lèi)的對(duì)象,但是可以創(chuàng)建一個(gè)具體子類(lèi)的對(duì)象

Error: new Person(“Vincent vu ”);

Right:Person p = new Student(“vience vu”,“Economics”);

Equals方法:用于檢測(cè)一個(gè)對(duì)象是否等于另外一個(gè)對(duì)象。判斷是否具有相同的引用,如果具有相同的引用,他們一定是相等的,檢測(cè)兩個(gè)對(duì)象的狀態(tài)相等。

完美教程:1.顯式參數(shù)命名為otherobject,稍后會(huì)將他轉(zhuǎn)換成一個(gè)叫other的變量

2.檢測(cè)this與otherobject是否是引用同一個(gè)變量

3.檢測(cè)otherobject是否為null,如果為null,返回false

4.比較this與otherobject是否屬于同一個(gè)類(lèi),如果equals的語(yǔ)義在每個(gè)子類(lèi)中有所改變,就用getclass,所有子類(lèi)都擁有統(tǒng)一的語(yǔ)義,就使用instanceof檢測(cè)。

5.將otherobject轉(zhuǎn)換成相應(yīng)的類(lèi)類(lèi)型變量

6.現(xiàn)在開(kāi)始對(duì)所有需要比較的域進(jìn)行比較,使用==比較基本類(lèi)型域,使用equals比較對(duì)象域,如果所有的域都匹配,則返回true,否則返回false

對(duì)象包裝器和自動(dòng)打包:

接口:

Arrays類(lèi)中的sort方法承諾可以對(duì)對(duì)象數(shù)組進(jìn)行排序,但要求滿(mǎn)足下列前提,對(duì)象所屬的類(lèi)必須實(shí)現(xiàn)了comparab接口,也就是說(shuō)任何實(shí)現(xiàn)comparable接口的類(lèi)都需要包含compareTo方法,并且這個(gè)方法的參數(shù)必須是一個(gè)object對(duì)象,返回一個(gè)整形數(shù)值。

回調(diào):指出某個(gè)特定事件發(fā)生時(shí)應(yīng)該采取的動(dòng)作。

內(nèi)部類(lèi):內(nèi)部類(lèi)是定義在一個(gè)類(lèi)中的類(lèi),定義內(nèi)部類(lèi)的原因:內(nèi)部類(lèi)方法可以訪(fǎng)問(wèn)該類(lèi)定義所在的作用域中的數(shù)據(jù),包括私有數(shù)據(jù)。

內(nèi)部類(lèi)可以對(duì)同一個(gè)包中的其他類(lèi)隱藏起來(lái)

想要調(diào)一個(gè)回調(diào)函數(shù)并且不想編寫(xiě)大量代碼時(shí),使用匿名內(nèi)部類(lèi)比較便捷。

圖形程序設(shè)計(jì):

頂層窗口:Frame類(lèi)(Swing版本為jframe)

默認(rèn)關(guān)閉:frame.setDefaultCloseOperation(JFrame.Exit_on_close);

setLocation()和setBounds()設(shè)置框架的位置

setIconImage():用于告訴系統(tǒng)在標(biāo)題欄,任務(wù)欄切換窗口位置顯示的圖標(biāo)

setTitle()改變標(biāo)題欄的文字

setResizable()是否顯示

isVisible():

setVisible(Boolean b):設(shè)置窗口是否可見(jiàn)

setSize(int width,int height)設(shè)置窗口寬高

Dimension getSize()

Void setSize()獲取或者設(shè)置當(dāng)前組件的size屬性

toFront將窗口顯示到其他窗口前面

toBack()將窗口移到桌面窗口棧的后面

isLocationByPlatfrom()

setLocationByPlatfrom()設(shè)置或者獲取LocationByPlatfrom的屬性,屬性在窗口顯示之前被設(shè)置

Container getContentPane()返回這個(gè)JFrame的內(nèi)容窗格對(duì)象

Component add(Componen c)將一個(gè)給定的組件添加到該框架的內(nèi)容格

Void repaint()從新繪制組件

Void repaint(int x.int y,int width,int height)從新繪制組件的一部分

PaintComponent(Grphics g)覆蓋這個(gè)方法來(lái)描述應(yīng)該來(lái)如何繪制自己的組件

創(chuàng)建一個(gè)二維圖形:

Graphics2D g2 = (Graphics2D) g;創(chuàng)建一個(gè)繪圖方法的對(duì)象,

創(chuàng)建一個(gè)矩形對(duì)象:Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);

通過(guò)繪圖方法把矩形繪畫(huà)出來(lái),g2.draw(rect);

創(chuàng)建一個(gè)橢圓對(duì)象:Ellipse2D ellipse = new Ellipse2D.Double();

在矩形內(nèi)部畫(huà)一個(gè)橢圓:ellipse.setFrame(rect);

通過(guò)繪圖的方法把圖形畫(huà)出來(lái):g2.draw(ellipse);

把畫(huà)圖組件添加到窗體上面: DrawComponent component = new DrawComponent();

add(component);

jdbc:

我們可以將JDBC包看作一個(gè)用于將sql語(yǔ)句傳遞給數(shù)據(jù)庫(kù)的應(yīng)用編程的接口。

Jdbc語(yǔ)法的實(shí)例:jdbc:derby://localhost:1527/COREJAVA;creat=true

Jdbc:postgresql:COREJAVA

JDBC URL的一般語(yǔ)法:jdbc:subprotocol:other stuff

Subprotocol用于指明連接到數(shù)據(jù)庫(kù)的特定驅(qū)動(dòng)程序

Other stuff參數(shù)的格式隨所用的subproyocol不同而不同

總結(jié)

以上是生活随笔為你收集整理的java核心技术笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。