Ⅰ java 靜態類是什麼意思 有什麼特點
java沒有直接的靜態類這種東西,一個類可以為static的情況只是他作為另一個類的成員,static表明他可以不用建立實例被訪問而已,這樣的內部類完全沒有內部類的特點
1 內部類可以訪問所在外部類的成員變數和方法,而靜態內部類卻不能
2 內部類可以使用Outter.this作為外部類引用,但靜態內部類不能使用
3 靜態內部類就如同外部類的一個靜態成員,他只能訪問外部類的靜態成員和靜態方法
4 在外部類外必須使用Outter.Inner外部類名和內部類名都要使用,樓上所說的不需要建立對象, 指的是不需要建立外部類實例,
比如BigOuter.Nested n = New BigOuter.Nested();
Ⅱ java 有沒有靜態類
java有靜態內部類
Java語言允許在類中再定義類,這種在其它類內部定義的類就叫內部類。內部類又分為:常規內部類、局部內部類、匿名內部類和靜態嵌套類四種。
Ⅲ java中靜態聲明指的是什麼
. 靜態方法 通常,在一個類中定義一個方法為static,那就是說,無需本類的對象即可調用此方法
聲明為static的方法有以下幾條限制:
1. 它們僅能調用其他的static 方法。
2· 它們只能訪問static數據。 · 它們不能以任何方式引用this 或super。
調用一個靜態方法就是「類名.方法名」,靜態方法的使用很簡單如上所示。一般來說,靜態方法常常為應用程序中的其它類提供一些實用工具所用,在Java的類庫中大量的靜態方法正是出於此目的而定義的。此類方法,不需要創建對象。
2. 靜態變數
聲明為static的變數實質上就是全局變數。當聲明一個對象時,並不產生static變數的拷貝,而是該類所有的實例變數共用同一個static變數。靜態變數與靜態方法類似。所有此類實例共享此靜態變數,也就是說在類裝載時,只分配一塊存儲空間,所有此類的對象都可以操控此塊存儲空間,當然對於final則另當別論了
3.靜態類
通常一個普通類不允許聲明為靜態的,只有一個內部類才可以。這時這個聲明為靜態的內部類可以直接作為一個普通類來使用,而不需實例一個外部類。
4.static和final一塊用表示什麼
static final用來修飾成員變數和成員方法,可簡單理解為「全局常量」!
對於變數,表示一旦給值就不可修改,並且通過類名可以訪問。
對於方法,表示不可覆蓋,並且可以通過類名直接訪問。
Ⅳ 關於Java語言中靜態的含義
static修飾方法、變數,相當於定義全局共享的方法、變數,即類被載入到內存時(或程序初始化時)就為它們分配了內存。可通過類名調用靜態變數、方法。而實例方法、變數(沒有用static修飾)則要在創建對象之後才為它們分配內存,不過實例方法為所有的對象共享,即類的實例方法只在第一個對象生成時創建,非static變數則每個對象都創建。
Ⅳ java 外部類可以定義成靜態類嗎,如果可以,它會起到什麼作用呢
靜態類只用於包含靜態成員的類型,它既不能實例化,靜態類的特性是防止繼承,防止外部來NEW。它相當於一個sealed abstract類。
static class MyUtility
{
public const int data;
public static void Foo()
{
...
}
}
靜態類的幾個注意點
靜態類不能有實例構造器。
靜態類不能有任何實例成員。
靜態類不能使用abstract或sealed修飾符。
靜態類默認繼承自System.Object根類,不能顯式指定任何其他基類。
靜態類不能指定任何介面實現。
靜態類的成員不能有protected或protected internal訪問保護修飾符。
Ⅵ Java靜態類(static class)是什麼意思
java一半不用static 修飾類,除非這個類是內部類,
在定義內部類的時候,可以在其前面加上一個許可權修飾符static。此時這個內部類就變為了靜態內部類。不過由於種種的原因,如使用上的限制等等因素(具體的使用限制,筆者在下面的內容中會詳細闡述),在實際工作中用的並不是很多。但是並不是說其沒有價值。在某些特殊的情況下,少了這個靜態內部類還真是不行。如在進行代碼程序測試的時候,如果在每一個Java源文件中都設置一個主方法(主方法是某個應用程序的入口,必須具有),那麼會出現很多額外的代碼。而且最主要的時這段主程序的代碼對於Java文件來說,只是一個形式,其本身並不需要這種主方法。但是少了這個主方法又是萬萬不行的。在這種情況下,就可以將主方法寫入到靜態內部類中,從而不用為每個Java源文件都設置一個類似的主方法。這對於代碼測試是非常有用的。
Ⅶ java 內部類和靜態內部類的區別
Java語言允許在類中再定義類,這種在其它類內部定義的類就叫內部類。內部類又分為:常規內部類、局部內部類、匿名內部類和靜態嵌套類四種。
1、靜態內部類定義
靜態內部類,定義在類中,任何方法外,用static定義;靜態內部類只能訪問外部類的靜態成員。
生成(new)一個靜態內部類不需要外部類成員:這是靜態內部類和成員內部類的區別。靜態內部類的對象可以直接生成:Outer.Inner in=new Outer.Inner();而不需要通過生成外部類對象來生成。這樣實際上使靜態內部類成為了一個頂級類。可以定義私有靜態內部類。
2、java實現靜態內部類注意事項
將某個內部類定義為靜態類,跟將其他類定義為靜態類的方法基本相同,引用規則也基本一致。不過其細節方面仍然有很大的不同。具體來說,主要有如下幾個地方要引起注意。
1)一般情況下,如果一個內部類不是被定義成靜態內部類,那麼在定義成員變數或者成員方法的時候,是不能夠被定義成靜態成員變數與靜態成員方法的。也就是說,在非靜態內部類中不可以聲明靜態成員
2)一般非靜態外部類可以隨意訪問其外部類的成員變數以及方法(包括聲明為private的方法),但是如果一個內部類被聲明為static,則其在訪問包括自身的外部類會有諸多的限制。靜態內部類不能訪問其外部類的非靜態成員變數和方法
3)在一個類中創建非靜態成員內部類的時候,有一個強制性的規定,即內部類的實例一定要綁定在外部類的實例中。然後要在一個外部類中定義一個靜態的內部類,不需要利用關鍵字new來創建內部類的實例。即在創建靜態類內部對象時,不需要其外部類的對象