import語句
我自己是一個(gè)從事了6年的Java全棧工程師源织,最近整理了一套適合2019年學(xué)習(xí)的Java\大數(shù)據(jù)資料微猖,從基礎(chǔ)的Java、大數(shù)據(jù)面向?qū)ο蟮竭M(jìn)階的框架知識都有整理哦侠仇,可以來我的主頁免費(fèi)領(lǐng)取哦犁珠。
為了能夠使用某一個(gè)包的成員,我們需要在 Java 程序中明確導(dǎo)入該包余素。使用“import”語句可完成此功能炊昆。在 java 源文件中 import 語句應(yīng)位于 package 語句之后威根,所有類的定義之前视乐,可以沒有炊林,也可以有多條,其語法格式為:
import package1[.package2…].(classname|*);
java 運(yùn)行時(shí)環(huán)境將到 CLASSPATH + package1.[package2…]路徑下尋找并載入相應(yīng)的字節(jié)碼文件 classname.class独榴∞戎Γ“*”號為通配符,代表所有的類症歇。也就是說 import 語句為編譯器指明了尋找類的途徑谭梗。
例,使用 import 語句引入類程序:TestPackage.java
import p1.Test;
//或者 import p1.*;
public class TestPackage {
public static void main(String args[]) {
Test t = new Test(); // Test 類在 p1 包中定義
t.display();
}
}
java編譯器默認(rèn)為所有的java 程序引入了JDK的java.lang 包中所有的類(importjava.lang.*;)设塔,其中定義了一些常用類:System远舅、String、Object序六、Math 等蚤吹。因此我們可以直 接使用這些類而不必顯式引入。但使用其它非無名包中的類則必須先引入余佃、后使用跨算。
Java 類搜尋方式
程序中的 import 語句標(biāo)明要引入 p1 包中的 Test 類慨飘,假定環(huán)境變量 CLASSPATH 的值為“.;C:jdk6lib;D:ex”妈嘹,java 運(yùn)行環(huán)境將依次到下述可能的位置尋找并載入該字節(jié)碼文件 Test.class:
.p1Test.class
C:jdk6libp1Test.class
D:exp1Test.class
“.”代表當(dāng)前路徑坏瘩,如果在第一個(gè)路徑下就找到了所需的類文件漠魏,則停止搜索。否則依次搜索后續(xù)路徑哪自,如果在所有的路徑中都未找到所需的類文件禁熏,則編譯或運(yùn)行出錯瞧毙。
3、訪問修飾符
Java 語言允許對類中定義的各種屬性和方法進(jìn)行訪問控制宙彪,即規(guī)定不同的保護(hù)等級來限制對它們的使用释漆。為什么要這樣做?Java語言引入類似訪問控制機(jī)制的目的在于實(shí)現(xiàn)信息的封裝和隱藏灵汪。Java 語言為對類中的屬性和方法進(jìn)行有效地訪問控制享言,將它們分為四個(gè)等級:private、無修飾符荧琼、protected差牛、public。
變量和方法可以使用四個(gè)訪問級別中的任意一個(gè)修飾脐恩,類可以使用公共或無修飾級別修飾侦讨。
變量苟翻、方法或類有缺省(無修飾符)訪問性崇猫,如果它沒有顯式受保護(hù)修飾符作為它的聲明的一部分的話需忿。這種訪問性意味著,訪問可以來自任何方法涕烧,當(dāng)然這些方法只能在作為對象的同一個(gè)包中的成員類當(dāng)中擅这。
以修飾符 protected 標(biāo)記的變量或方法實(shí)際上比以缺省訪問控制標(biāo)記的更易訪問。一個(gè)protected 方法或變量可以從同一個(gè)包中的類當(dāng)中的任何方法進(jìn)行訪問痹扇,也可以是從任何子類中的任何方法進(jìn)行訪問溯香。當(dāng)它適合于一個(gè)類的子類但不是不相關(guān)的類時(shí)玫坛,就可以使用這種受保護(hù)訪問來訪問成員。
類定義
Java程序的基本單位是類炕吸,你建立類之后勉痴,就可用它來建立許多你需要的對象。Java把每一個(gè)可執(zhí)行的成分都變成類瀑罗。
類的定義形式如下:
<權(quán)限修飾符> [一般修飾符] class <類名> [extends 父類][implements 接口]{
[<屬性定義>]
[<構(gòu)造方法定義>]
[<方法定義>]
}
這里雏掠,類名要是合法的標(biāo)識符乡话。在類定義的開始與結(jié)束處必須使用花括號。你也許想建立一個(gè)矩形類蚊伞,那么可以用如下代碼:
public class Rectangle{
......//矩形具體的屬性和方法
}
構(gòu)造方法
類有一個(gè)特殊的成員方法叫作構(gòu)造方法时迫,它的作用是創(chuàng)建對象并初始化成員變量。在創(chuàng)建對象時(shí)癞揉,會自動調(diào)用類的構(gòu)造方法溺欧。
構(gòu)造方法定義規(guī)則
Java 中的構(gòu)造方法必須與該類具有相同的名字,并且沒有方法的返回類型(包括沒有void)芥牌。另外聂使,構(gòu)造方法一般都應(yīng)用 public 類型來說明柏靶,這樣才能在程序任意的位置創(chuàng)建類的實(shí)例--對象。
示例
下面是一個(gè) Rectangle 類的構(gòu)造方法痘昌,它帶有兩個(gè)參數(shù)炬转,分別表示矩形的長和寬:
public class Rectangle {
public Rectangle(int w, int h) {
width = w;
height = h;
}
public Rectangle() {
}
}
每個(gè)類至少有一個(gè)構(gòu)造方法。如果不寫一個(gè)構(gòu)造方法驻啤,Java 編程語言將提供一個(gè)默認(rèn)的测僵, 該構(gòu)造方法沒有參數(shù)捍靠,而且方法體為空。
注意:如果一個(gè)類中已經(jīng)定義了構(gòu)造方法則系統(tǒng)不再提供默認(rèn)的構(gòu)造方法磁携。
析構(gòu)方法
當(dāng)垃圾回收器將要釋放無用對象的內(nèi)存時(shí)良风,先調(diào)用該對象的finalize()方法闷供。如果在程序終止前垃圾回收器始終沒有執(zhí)行垃圾回收操作歪脏,那么垃圾回收器將始終不會調(diào)用無用對象的finalize()方法粮呢。在Java的Object基類中提供了protected類型的finalize()方法,因此任何Java類都可以覆蓋finalize()方法豪硅,通常挺物,在析構(gòu)方法中進(jìn)行釋放對象占用的相關(guān)資源的操作识藤。
Java 虛擬機(jī)的垃圾回收操作對程序完全是透明的,因此程序無法預(yù)料某個(gè)無用對象的finalize()方法何時(shí)被調(diào)用赖草。如果一個(gè)程序只占用少量內(nèi)存剪个,沒有造成嚴(yán)重的內(nèi)存需求,垃圾回收器可能沒有釋放那些無用對象占用的內(nèi)存乎折,因此這些對象的finalize()方法還沒有被調(diào)用侵歇,程序就終止了惕虑。
程序即使顯式調(diào)用System.gc()或Runtime.gc()方法,也不能保證垃圾回收操作一定執(zhí)行健提,也就不能保證對象的finalize()方法一定被調(diào)用伟叛。
當(dāng)垃圾回收器在執(zhí)行finalize()方法的時(shí)候,如果出現(xiàn)了異常紊遵,垃圾回收器不會報(bào)告異常,程序繼續(xù)正常運(yùn)行匀奏。
@Override
protected void finalize(){
System.out.println("in finalize");
}
在 Java 編程里面攒射,一般不需要我們?nèi)懳鰳?gòu)方法恒水,這里只是了解一下就可以了饲齐。
成員變量
成員變量是指類的一些屬性定義捂人,標(biāo)志類的靜態(tài)特征,它的基本格式如下:
訪問修飾符 修飾符 類型 屬性名稱=初始值;
訪問修飾符:可以使用四種不同的訪問修飾符中的一種酸纲,包括public(公共的)瑟匆、protected(受保護(hù)的)愁溜,無修飾符和 private(私有的)。public 訪問修飾符表示屬性可以從任何其它代碼調(diào)用代承。private 表示屬性只可以由該類中的其它方法來調(diào)用渐扮。protected 將在以后的課程中討論墓律。
修飾符:是對屬性特性的描述,例如后面會學(xué)習(xí)到的:static玖像、final 等等。
類型:屬性的數(shù)據(jù)類型捐寥,可以是任意的類型握恳。
屬性名稱:任何合法標(biāo)識符
初始值:賦值給屬性的初始值。如果不設(shè)置崇裁,那么會自動進(jìn)行初始化束昵,基本類型使用缺省值锹雏,對象類型自動初始化為 null。
成員變量有時(shí)候也被稱為屬性轻绞、實(shí)例變量佣耐、域兼砖,它們經(jīng)常被互換使用。
最后掖鱼,想學(xué)習(xí)JAVA的小伙伴們然走!
我自己是一個(gè)從事了6年的Java全棧工程師,最近整理了一套適合2019年學(xué)習(xí)的Java\大數(shù)據(jù)資料戏挡,從基礎(chǔ)的Java芍瑞、大數(shù)據(jù)面向?qū)ο蟮竭M(jìn)階的框架知識都有整理哦,可以來我的主頁免費(fèi)領(lǐng)取哦褐墅。
java學(xué)習(xí)資料