導航:首頁 > 編程語言 > java靜態類的使用

java靜態類的使用

發布時間:2023-04-19 09:39:02

java中static怎麼用

static 屬於全局,也就是類的屬性 和方法,換句話說 一個類,不管有多少個實例,卻只有一個全局變數
class B {static int a=0;}
B b1=new B();..................;B bn=new B();
b1~bn 都是類B的實例,每個實例都共享 變數a,a是全局變數,屬於類B的屬性,每個實例都能引用變數a,
加入執行b1.a=1;後 那麼b2.a,b3.a,b4.a......bn.a 都等於1了,

static 方法也是類似的

需要注意的是 靜態屬性和方法屬於類方法,載入類後,就已經存在靜態屬性和方法,實例是需要用new構造出來後 才會有引用
根據先後順序,就有以下兩條規則
1、非靜態的方法可以調用靜態的或者非靜態的屬性和方法;
2、靜態的方法不可以調用非靜態的屬性和方法,因為非靜態的還不一定存在,只能先構造出來後,再通過實例引用
例如 在main方法中 可以直接調用static 的方法,調用非static方法 需要先構造出類的實例,通過實例才能調用方法

㈡ java 靜態類是什麼意思 有什麼特點

java沒有直接的靜態類這種東西,一個類可以為static的情況只是他作為另一個類的成員,static表明他可以不用建立實例被訪問而已,這樣的內部類完全沒有內部類的特點
1 內部類可以訪問所在外部類的成員變數和方法,而靜態內部類卻不能
2 內部類可以使用Outter.this作為外部類引用,但靜態內部類不能使用
3 靜態內部類就如同外部類的一個靜態成員,他只能訪問外部類的靜態成員和靜態方法
4 在外部類外必須使用Outter.Inner外部類名和內部類名都要使用,樓上所說的不需要建立對象, 指的是不需要建立外部類實例,
比如BigOuter.Nested n = New BigOuter.Nested();

㈢ java中static的用法

static可以修飾變數(屬性)、方法、代碼塊和內部類

  1. static屬性:屬於這個類所有,即由該類創建的所有對象共享同一個static屬性。可以對象創建後通過對象名.屬性名類名.屬性名兩種方式來訪問。也可以在沒有創建任何對象之前通過類名.屬性名的方式來訪問。

  2. static方法:也可以通過對象名.方法名和類名.方法名兩種方式來訪問

  3. static代碼塊:當類被第一次使用時(可能是調用static屬性和方法,或者創建其對象)執行靜態代碼塊,且只被執行一次,主要作用是實現static屬性的初始化。

  4. static內部類:屬於整個外部類,而不是屬於外部類的每個對象。不能訪問外部類的非靜態成員(變數或者方法),.可以訪問外部類的靜態成員

㈣ java中靜態類能否實例化

靜態類,一般使用在某個類的內容,簡稱靜態內部類。
靜態Static又有全局的意思,對於一般的public定義的外部類,沒有必要static關鍵詞,因為可以直接導入包得到該類的引用(只是在訪問其非靜態成員時需要實例化它);
而在一個類內部定義另一個類,如果該內部類不是靜態的,需要實例化它,就得先有一個外部類的對象,
如:public class A{
public class B{}
}
實例化B:
A a = new A();
B b = a.new B();
如果B是靜態的(全局的),即如下:
public class A{
public static class B{}
}
實例化B:
B b = A.new B();或者B b = new A.B();

㈤ java本類的靜態方法如何直接調用,其他類的靜態方法如何調用

java本類的靜態方法,直接使用靜態的方法咐褲困名傳入參數就可以了,如果是其他類的,許可權修飾符必須是public否者純團無法調用,調用方法是 其他類的類名 . 方法名(參數)衡念

㈥ java中static作用詳解

static表示「全局」或者「靜態」的意思,用來修飾成員變數和成員方法,也可以形成靜態static代碼塊,但是Java語言中沒有全局變數的概念。

被static修飾的成員變數和成員方法獨立於該類的任何對象。也就是說,它不依賴類特定的實例,被類的所有實例共享。

只要這個類被載入,Java虛擬機就能根據類名在運行時數據區的方法區內定找到他們。因此,static對象可以在它的任何對象創建之前訪問,無需引用任何對象。

用public修飾的static成員變數和成員方法本質是全局變數和全局方法,當聲明它類的對象市,不生成static變數的副本,而是類的所有實例共享同一個static變數。

static變數前可以有private修飾,表示這個變數可以在類的靜態代碼塊中,或者類的其他靜態成員方法中使用(當然也可以在非靜態成員方法中使用--廢話),但是不能在其他類中通過類名來直接引用,這一點很重要。實際上你需要搞明白,private是訪問許可權限定,static表示不要實例化就可以使用,這樣就容易理解多了。static前面加上其它訪問許可權關鍵字的效果也以此類推。

㈦ java靜態類在什麼時候使用

/*
static(靜態\修飾符岩肆)

1. static修飾成員變數 :如果有數據需要被共享給所有對象使用時,那麼就可以使用static修飾。

靜態成員變數的訪問方式:

方式1: 可以使用對象進行訪問。
格式: 對象.變數名。

方式二: 可以使用類名進行訪問。
格式: 類名.變數名;

注意:
1. 非靜態的成員變數只能使用對象進行訪問,不能使用類名進行訪問。
2. 千萬不要為了方便訪問數據而使用static修飾成員變數,只有成員變數的數據是真正需要被共享的時候
才使用static修飾。

static修飾成員變數的應粗兆轎用場景: 如果一個數據需要被所有對象共享使用的時猜虧候,這時候即可好實用static修飾。

2. static修飾成員函數:

*/

class Student{

static String name; //非靜態成員變數

static String country = "中國"; //靜態的成員變數

public Student(String name){
this.name = name;
}
}

class Demo10 {

public static void main(String[] args)
{
Student s1 = new Student("狗娃");
Student s2 = new Student("狗剩");

//System.out.println("國籍:"+ Student.country);
System.out.println("名字:"+ s1.name);
System.out.println("名字:"+ s2.name);
}
}

㈧ JAVA 靜態類寫法和調用

js?還是指JSP的腳本段。先看一般是如何顯示數據吧,最後在介紹js:
我們可以使用JSP頁面的腳本段,首先寫個Bean類:
public class SomeBean{
public String getName(){return "123";}
public void setName(String name){}
}
<!-- test.jsp-->
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%
SomeBean bean=new SomeBean();
out.println("Bean-name is "+bean.getName());
%>
就是這樣,腳本段裡面的東西其實就是java代碼,而JSP頁面本質就是servlet。我不太清楚你是否了解JSP的編譯,如果你不知道的話我建議你到網路搜一下"JSP的java代碼"一類的東西看看,這是基礎。
你說的靜態類應該是指類中包含靜態域吧,除了內部類可以是靜態的外,別的類都不行。不論是靜態域還是普通域,用上面的腳本段都可以搞定。
再看看struts,靜態的顯示我放在後面了:
首先我們來寫一個Action類:
public class LoginAction{
public String execute(){
return SUCCESS;
}
public void setValue(SomeBean value){
this.value=value;
}
public SomeBean getValue(){
return this.value;
}
private SomeBean value;
}
再寫出Bean類:
public class SomeBean{
public String getName(){}
public void setName(String name){}
}
配置Action應該不用說了,沒什麼特別的,不會就上網查吧。
我們現在說方法。
方法一:
使用OGNL表達式。你可以使用struts自帶的標簽,他們都支持OGNL,比如s:property。舉個例子:
<!--test.jsp-->
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:property value="value.name"/>

你訪問LoginAction的時候s:property標簽就會顯示getValue().getName();
如果你想了解更多的struts2標簽和OGNL表達式建議去找更詳盡的資料。
方法二:
當然是使用JSP本身的性質了。通過request和session來獲取值。
我們把Action類改一下:
public class LoginAction{
public string execute(){
SomeBean value=new SomeBean();
value.setName("sfsfjsfje");
ActionContext context=ActionContext.getContext();
//往request里放attribute
context.put("value",value);
//往session里放
context.getSession().put("value",value);
return SUCCESS;
}
}
接下來我們改頁面:
<!-- test.jsp -->
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%= ((SomeBean) request.getAttribute("value")).getName() %>
<%= ((SomeBean) session.get("value")).getName() %>

OGNL也可以顯示靜態域:
public class SomeBean{
public static String name="123";
public static String getAlias(){return "abc";}
}
public class LoginAction{
public String execute(){return SUCCESS;}
}
配置文件不寫了。
頁面:
<!--test.jsp-->
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!--還是用s:property-->
<s:property value="@SomeBean@name"/>
<s:property value="@SomeBean@getAlias()"/>
當你訪問LoginAction時就會顯示SomeBean的name和getAlias()。不知道你是不是問的這個。

如果你要在js中調用數據也很容易:

<!-- test.jsp -->
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<script language="javascript" type="text/javascript">
var name="<s:property value="@SomeBean@name"/>";
</script>
這樣js中就有相應的數據了。

閱讀全文

與java靜態類的使用相關的資料

熱點內容
怎麼初步認識編程 瀏覽:206
為什麼程序員都喜歡谷歌 瀏覽:889
壓縮性骨拆能自愈嗎 瀏覽:275
安卓怎麼設置游戲畫面 瀏覽:112
k線上寫字源碼 瀏覽:455
單擊按鈕保存資料源碼 瀏覽:352
華為gt加密卡 瀏覽:211
河北超融合伺服器廠家雲主機 瀏覽:892
芙兒優安全座椅app怎麼連接 瀏覽:292
專業美團騎手app怎麼開通 瀏覽:947
個人音樂分享網站源碼 瀏覽:375
在新電腦上怎麼注冊加密狗 瀏覽:123
最後一戰游戲源碼 瀏覽:5
phpmysql實例下載 瀏覽:751
傳智黑馬安卓非加密 瀏覽:553
伺服器如何配置host 瀏覽:1001
守望執行命令 瀏覽:371
加密狗插上去了怎麼辦 瀏覽:624
錘子m1怎麼把文件夾重置 瀏覽:213
APP的數據會存在哪裡 瀏覽:66