static 修飾符
static 介紹
在咱們平常生活中,有些事物不屬於某一個對象,而是屬於整個事物的類型。java
好比:全世界人口總數、人的毀滅行爲 應該屬於人類,不該該屬於某一我的。spa
狀態和行爲應該有 對象 和 類 之分:code
- 有的狀態和行爲,應該屬於某個對象;
- 有的狀態和行爲,應該屬於類型;
經過Static修飾符就能解決這個問題,它修飾的成員就不屬於對象,它屬於類自己。對象
它能夠修飾字段、方法、內部類。blog
static 做用
肯定修飾的內容是屬於類仍是屬於對象。接口
static 特色
一、static修飾的內容,是隨着類的加載而加載的。生命週期
當JVM把class字節碼加載到虛擬機當中時,static他修飾的成員會自動的加載到內存當中。(方法區)內存
二、static修飾的內容,優先於對象的存在。作用域
對象是須要咱們手動new出來的,static加載字節碼時已經自動加載到JVM了。開發
三、static修飾的內容,被該類型的全部對象所共享
根據該類建立出來的對象,均可以訪問static成員,表面上是經過對象訪問,其本質依然是使用類名訪問,和對象沒有任何關係。
四、static修飾的內容,能夠直接使用類名來調用。
由於static修飾的成員屬於類,不屬於對象。
變量劃分
變量
數據類型 變量名 = 值;
1. 成員變量
直接定義在類中的變量
(1)類成員變量:在成員變量前加static,就是類成員變量 (2)實例成員變量: 沒加static就是實例成員變量
類成員和實例成員的訪問:
- 在static方法中只能調用static成員
- 非static方法,能夠訪問靜態成員,也能夠訪問非靜態成員
注意:在方法當中不能定義static變量
成員變量是有初始值的;不給初始值, 會有默認,能夠直接使用。
2. 局部變量
定義在方法或代碼塊當中的變量(包括參數列表,和內部定的變量)
必須得要初始化以後才能使用
變量的做用域和生命週期
包
什麼是包
在開發中,咱們存在幾百上千個Java文件,若是全部的Java文件都在一個目錄中,管理起來也很痛苦,Java能夠建立一個相似文件夾的東西,咱們稱這個文件夾爲包。
包的做用
(1)把功能類似或相關的類或接口組織在同一個包中,方便類的查找和使用。
(2)如同文件夾同樣,包也採用了樹形目錄的存儲方式,同一個包中的類的名字是不一樣的,不一樣的包中的類的名字是能夠相同的,但同時調用兩個不一樣包中相同類名的類時,應該加上包名加以區別。所以,包能夠避免名字衝突。
(3)包也限定了訪問權限,擁有包訪問權限的類才能訪問某個包中的類。
包的語法
package 包名.子包名.子子包名;
必須把該語句做爲Java文件中的第一行代碼。
包名定義
(1)包名必須遵循標識符規範,所有小寫。
(2)企業開發中,包名用公司域名倒寫
使用格式: package 域名倒寫.模塊名.組件名;
類的名稱
類的簡單名稱:直接類名
類的全限定名稱:包名.類名
import 語句
當 A 類和 B 類不在同一個包中,若 A 類須要使用到 B 類,此時就得讓 A 類去引入 B 類。
屬性
屬性和字段相似,也是一個成員變量。可是必需要有 getter/setter 方法。
有 getter/setter 方法纔是屬性,沒有就是字段。
通常屬性都是私有的,公有的別人能夠直接獲取和設置值。