導航:首頁 > 編程語言 > java類中靜態類

java類中靜態類

發布時間:2022-04-17 11:59:09

『壹』 java中靜態類 的概括

static:靜態的 共享的
同一個類中: 靜態方法可以直接調用靜態方法或屬性;調用非靜態的方法或屬性需要通過對象調 用
非靜態方法可以直接調用非靜態和靜態的屬性和方法
不同類中: 靜態方法可調用靜態方法或屬性通過 類名.屬性或方法名()
調用非靜態的方法或屬性需要通過對象調用
非靜態方法通過對象調用非靜態方法 通過類名.屬性或方法()調用靜態方法或屬性
靜態語句塊:類初始化時執行且只執行一次常用於靜態屬性初始化
非靜態語句塊:每創建一次對象就執行一次(了解)

『貳』 Java 靜態內部類作用

1、變值許可權修飾作用,在定義內部類的時候,可以在其前面加上一個許可權修飾符static。此時這個內部類就變為了靜態內部類。

2、在某些特殊的情況下,少了這個靜態內部類還真是不行。如在進行代碼程序測試的時候,如果在每一個Java源文件中都設置一個主方法(主方法是某個應用程序的入口,必須具有),那麼會出現很多額外的代碼。

3、最主要的時這段主程序的代碼對於Java文件來說,只是一個形式,其本身並不需要這種主方法。但是少了這個主方法又是萬萬不行的。在這種情況下,就可以將主方法寫入到靜態內部類中,從而不用為每個Java源文件都設置一個類似的主方法。

這對於代碼測試是非常有用的。在一些中大型的應用程序開發中,則是一個常用的技術手段。

(2)java類中靜態類擴展閱讀

例如:

對於兩個類,擁有相同的方法:

class People{

run();

}

interface Machine{

run();

}

此時有一個robot類:

class Robot extends People implement Machine.

此時run()不可直接實現。

interface Machine{

void run();

}

class Person{

void run(){

System.out.println("run");

}

}

class Robot extends Person{

private class MachineHeart implements Machine{

public void run(){

System.out.println("heart run");

}

}

public void run(){

System.out.println("Robot run");

}

Machine.getMachine(){returnnew MachineHeart();

}

class Test{

publicstaticvoid main(String[] args){

Robot robot=new Robot();

Machine m=robot.getMachine();

m.run();

robot.run();

}

}

『叄』 java的靜態類型有什麼特點

靜態屬性:隨著類的載入而載入,該屬性不屬於某個對象,屬於整個類
靜態方法:直接使用類名調用,靜態方法里不能訪問非靜態成員變數
靜態類:不能直接創建對象,不可被繼承

『肆』 Java 靜態內部類的使用

Java語言允許在類中再定義類,這種在其它類內部定義的類就叫內部類。內部類又分為:常規內部類、局部內部類、匿名內部類和靜態嵌套類四種。

1、靜態內部類定義

靜態內部類,定義在類中,任何方法外,用static定義;靜態內部類只能訪問外部類的靜態成員。

生成(new)一個靜態內部類不需要外部類成員:這是靜態內部類和成員內部類的區別。靜態內部類的對象可以直接生成:Outer.Inner in=new Outer.Inner();而不需要通過生成外部類對象來生成。這樣實際上使靜態內部類成為了一個頂級類。可以定義私有靜態內部類。

2、java實現靜態內部類注意事項

將某個內部類定義為靜態類,跟將其他類定義為靜態類的方法基本相同,引用規則也基本一致。不過其細節方面仍然有很大的不同。具體來說,主要有如下幾個地方要引起注意。

1)一般情況下,如果一個內部類不是被定義成靜態內部類,那麼在定義成員變數或者成員方法的時候,是不能夠被定義成靜態成員變數與靜態成員方法的。也就是說,在非靜態內部類中不可以聲明靜態成員

2)一般非靜態外部類可以隨意訪問其外部類的成員變數以及方法(包括聲明為private的方法),但是如果一個內部類被聲明為static,則其在訪問包括自身的外部類會有諸多的限制。靜態內部類不能訪問其外部類的非靜態成員變數和方法

3)在一個類中創建非靜態成員內部類的時候,有一個強制性的規定,即內部類的實例一定要綁定在外部類的實例中。然後要在一個外部類中定義一個靜態的內部類,不需要利用關鍵字new來創建內部類的實例。即在創建靜態類內部對象時,不需要其外部類的對象

3、靜態內部類示例

java在實現LinkedList時使用了如下內部類:

public class LinkedList<E>

extends AbstractSequentialList<E>

implements List<E>, Deque<E>, Cloneable, java.io.Serializable

{

........

private static class Entry<E> {

E element;

Entry<E> next;

Entry<E> previous;

Entry(E element, Entry<E> next, Entry<E> previous) {

this.element = element;

this.next = next;

this.previous = previous;

}

}

private Entry<E> addBefore(E e, Entry<E> entry) {

Entry<E> newEntry = new Entry<E>(e, entry, entry.previous);

newEntry.previous.next = newEntry;

newEntry.next.previous = newEntry;

size++;

modCount++;

return newEntry;

}

........

}

這里即靜態內部類的典型用法

『伍』 什麼是靜態類(java中)

類是沒有靜態一說的,只有靜態方法和靜態變數,又稱為類變數和類方法,他們值得是這個都是屬於整個類的,而不是某個對象獨有的,也就是類的所有的對象都共享的

『陸』 java中靜態內部類是怎麼定義的

需要了解2個概念:內部類和靜態修飾符static
1)首先,用內部類是因為內部類與所在外部類有一定的關系,往往只有該外部類調用此內部類。所以沒有必要專門用一個Java文件存放這個類。
2)靜態都是用來修飾類的內部成員的。比如靜態方法,靜態成員變數,靜態常量。它唯一的作用就是隨著類的載入(而不是隨著對象的產生)而產生,以致可以用類名+靜態成員名直接獲得。
這樣靜態內部類就可以理解了,因為這個類沒有必要單獨存放一個文件,它一般來說只被所在外部類使用。並且它可以直接被用
外部類名+內部類名
獲得。
以下舉例說明怎麼使用:
Student類有個叫School的內部類(非靜態)
Student
stu
=
new
Student();
stu.School
sch
=
new
stu.School();
sch就是School的一個對象。
假如School是內部靜態類:
Student.School
sch
=
new
Student.School();

『柒』 Java靜態類(static class)是什麼意思

java一半不用static 修飾類,除非這個類是內部類,
在定義內部類的時候,可以在其前面加上一個許可權修飾符static。此時這個內部類就變為了靜態內部類。不過由於種種的原因,如使用上的限制等等因素(具體的使用限制,筆者在下面的內容中會詳細闡述),在實際工作中用的並不是很多。但是並不是說其沒有價值。在某些特殊的情況下,少了這個靜態內部類還真是不行。如在進行代碼程序測試的時候,如果在每一個Java源文件中都設置一個主方法(主方法是某個應用程序的入口,必須具有),那麼會出現很多額外的代碼。而且最主要的時這段主程序的代碼對於Java文件來說,只是一個形式,其本身並不需要這種主方法。但是少了這個主方法又是萬萬不行的。在這種情況下,就可以將主方法寫入到靜態內部類中,從而不用為每個Java源文件都設置一個類似的主方法。這對於代碼測試是非常有用的。

『捌』 java靜態類和非靜態類的區別

你是說靜態內部類嗎?
編譯結果上看,那就是兩個類,至於內部內能訪問類的變數,可以看作類給自己補充了一些內部類調用的方法

『玖』 java中為什麼每個類都有靜態變數class

Java所有的類(自定義和已定義的)都繼承了Object類
也就是說Object類是所有類的基類(父類)
Object類中定義了這個靜態變數;其子類也繼承了這個靜態變數
所有的類都能通過.class得到類名信息

『拾』 java中的靜態內部類的特點是什麼

需要了解2個概念:內部類和靜態修飾符static1)首先,用內部類是因為內部類與所在外部類有一定的關系,往往只有該外部類調用此內部類。所以沒有必要專門用一個Java文件存放這個類。2)靜態都是用來修飾類的內部成員的。比如靜態方法,靜態成員變數,靜態常量。

它唯一的作用就是隨著類的載入(而不是隨著對象的產生)而產生,以致可以用類名+靜態成員名直接獲得。這樣靜態內部類就可以理解了,因為這個類沒有必要單獨存放一個文件,它一般來說只被所在外部類使用。

並且它可以直接被用 外部類名+內部類名 獲得。以下舉例說明怎麼使用:Student類有個叫School的內部類(非靜態)Student stu = new Student();stu.School sch = new stu.School();sch就是School的一個對象。假如School是內部靜態類:Student.School sch = new Student.School()。

閱讀全文

與java類中靜態類相關的資料

熱點內容
dns使用加密措施嗎 瀏覽:172
php獨立運行 瀏覽:530
手機sh執行命令 瀏覽:727
雲伺服器的角色 瀏覽:733
單片機頻率比例 瀏覽:840
我的世界伺服器如何關閉正版驗證 瀏覽:504
如何查roid伺服器上的 瀏覽:130
安卓手機主板如何撬晶元不掉電 瀏覽:249
php各個框架的優缺點 瀏覽:101
php1100生成數組 瀏覽:359
以後做平面設計好還是程序員好 瀏覽:552
雲伺服器應用管理 瀏覽:438
飢荒雲伺服器搭建過程 瀏覽:186
可編程式控制制器優點 瀏覽:99
壓縮垃圾車說明書 瀏覽:28
五輪書pdf 瀏覽:802
單片機定時流水中斷系統流水燈 瀏覽:701
u8如何連接伺服器配置 瀏覽:68
動力在於緩解壓力 瀏覽:867
報考科一用什麼app 瀏覽:346