国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) Java Java入門 static關(guān)鍵字的三大作用

static關(guān)鍵字的三大作用

Aug 19, 2020 pm 05:07 PM
static 關(guān)鍵字

static關(guān)鍵字的三大作用

static關(guān)鍵字的三大作用:

(推薦教程:java入門教程

static靜態(tài)成員變量

static靜態(tài)成員方法

static靜態(tài)代碼塊

分析:

1、static靜態(tài)成員變量

說(shuō)明:如果一個(gè)成員變量使用了static關(guān)鍵字,那么這個(gè)變量不再屬于對(duì)象自己,而是屬于所在類。多個(gè)對(duì)象共享同一份數(shù)據(jù)。

代碼舉例說(shuō)明:

我們建一個(gè)Student學(xué)生類,設(shè)置room教室和idCounter兩個(gè)靜態(tài)成員變量。在main()方法中實(shí)例化兩個(gè)學(xué)生對(duì)象one和two,只給one對(duì)象的room賦值,打印輸出的時(shí)候會(huì)發(fā)現(xiàn)此時(shí)two.room的值和one.room的值一樣。

可以看出,因?yàn)閞oom使用了static關(guān)鍵字,所以它屬于類,不再屬于對(duì)象自己,可以被多個(gè)對(duì)象所共享一。因?yàn)閕dCounter是一個(gè)靜態(tài)變量,只會(huì)初始化一次,所以,每創(chuàng)建一個(gè)對(duì)象id都會(huì)自增長(zhǎng)1。

public class Demo01StaticField {
    public static void main(String[] args) {
        Student one=new Student("郭靖",19);
        Student two=new Student("黃蓉",16);
        one.room="101教室";
        System.out.println("姓名:"+one.getName()+",年齡:"
                +one.getAge()+",教室:"+one.room
                +",學(xué)號(hào):"+one.getId());        //姓名:郭靖,年齡:19,教室:101教室,學(xué)號(hào):1
        System.out.println("姓名:"+two.getName()
                +",年齡:"+two.getAge()+",教室:"+two.room
                +",學(xué)號(hào):"+two.getId());        //姓名:黃蓉,年齡:16,教室:101教室,學(xué)號(hào):2
    }
}
 
public class Student {
 
    private int id;             //學(xué)號(hào)
    private String name;        //姓名
    private int age;            //年齡
    static String room;         //所在教室
    private static int idCounter=0;     //學(xué)號(hào)計(jì)數(shù)器,每當(dāng)new了一個(gè)新對(duì)象的時(shí)候,計(jì)數(shù)器++
 
    public Student() {
        this.id= ++idCounter;
    }
 
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
        this.id= ++idCounter;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    //name和age的Getter,Setter方法同上id,省略
}

2、static靜態(tài)成員方法

說(shuō)明:如果一個(gè)成員方法使用了static關(guān)鍵字,同樣,那么這就成為了靜態(tài)方法。靜態(tài)方法不屬于對(duì)象,而是屬于類的。

static修飾成員方法的優(yōu)點(diǎn):避免了new對(duì)象的繁瑣和資源的消耗,可以直接通過(guò)【類名.方法名】來(lái)使用。

代碼舉例說(shuō)明:

新建一個(gè)Myclass類,里面有一個(gè)成員變量,一個(gè)靜態(tài)成員變量,一個(gè)成員方法,一個(gè)靜態(tài)成員方法。我們可以看到,成員方法既可以訪問(wèn)成員變量也可以訪問(wèn)靜態(tài)變量。而靜態(tài)方法只能訪問(wèn)靜態(tài)變量,不能訪問(wèn)非靜態(tài),也不能使用this關(guān)鍵字。在使用該類的時(shí)候,有了static關(guān)鍵字,那么不需要?jiǎng)?chuàng)建對(duì)象,直接就能通過(guò)類名稱來(lái)使用它。對(duì)于本類當(dāng)中的靜態(tài)方法,可以省略類名稱。

public class Demo02StaticMethod {
    public static void main(String[] args) {
 
        //非靜態(tài)方法使用:1.首先創(chuàng)建對(duì)象
        MyClass obj=new MyClass();
        //2.然后才能使用沒(méi)有static關(guān)鍵字的方法
        obj.method();
 
        //對(duì)于靜態(tài)方法來(lái)說(shuō),可以通過(guò)對(duì)象名進(jìn)行調(diào)用,也可以通過(guò)類名稱來(lái)調(diào)用。
        obj.methodStatic();     //正確,不推薦,這種寫法也會(huì)被javac翻譯成“類名稱.靜態(tài)方法名”
        MyClass.methodStatic(); //正確,推薦
 
        //對(duì)于本類當(dāng)中的靜態(tài)方法,可以省略類名稱
        myMethod();
        Demo02StaticMethod.myMethod();      //完全等效
 
    }
    public static void myMethod(){
        System.out.println("自己的方法!");
    }
}
public class MyClass {
 
    int num;        //成員變量
    static int numStatic;       //靜態(tài)變量
 
    //成員方法
    public void method(){
        System.out.println("這是一個(gè)普通的成員方法。");
        //成員方法可以訪問(wèn)成員變量
        System.out.println(num);
        //成員方法可以訪問(wèn)靜態(tài)變量
        System.out.println(numStatic);
    }
 
    //靜態(tài)方法
    public static void methodStatic(){
        System.out.println("這是一個(gè)普通的靜態(tài)方法。");
        //靜態(tài)方法可以訪問(wèn)靜態(tài)變量
        System.out.println(numStatic);
        //靜態(tài)不能直接訪問(wèn)非靜態(tài)【重點(diǎn)】
        //System.out.println(num);        //錯(cuò)誤寫法
        //靜態(tài)方法中不能使用this關(guān)鍵字
        //System.out.println(this);        //錯(cuò)誤寫法
    }
}

(學(xué)習(xí)視頻推薦:java課程

3、static靜態(tài)代碼塊

格式:

public class 類名稱{    
   static{                      
       //靜態(tài)代碼塊的內(nèi)容                
   }
}

特點(diǎn):當(dāng)?shù)谝淮斡玫奖绢悤r(shí),靜態(tài)代碼塊執(zhí)行唯一的一次,可以用來(lái)優(yōu)化程序性能。我們大多數(shù)情況下,會(huì)將一些只會(huì)執(zhí)行一次的初始化操作(初始化靜態(tài)資源)的代碼放在static代碼塊中,例如:加載配置文件等。注意:靜態(tài)內(nèi)容總是優(yōu)先于非靜態(tài),所以靜態(tài)代碼塊比構(gòu)造方法先執(zhí)行。

public class Demo04StaticCode {
    public static void main(String[] args) {
        Person one=new Person();
        System.out.println("************************");
        //無(wú)論創(chuàng)建幾個(gè)Person對(duì)象,靜態(tài)代碼塊只執(zhí)行一次
        Person two=new Person();
    }
}
public class Person {
 
    static{
        System.out.println("靜態(tài)代碼塊執(zhí)行!");
    }
 
    public Person() {
        System.out.println("構(gòu)造方法執(zhí)行!");
    }
}

執(zhí)行結(jié)果:

static關(guān)鍵字的三大作用

以上是static關(guān)鍵字的三大作用的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
深入解析C語(yǔ)言中static關(guān)鍵字的作用和用法 深入解析C語(yǔ)言中static關(guān)鍵字的作用和用法 Feb 20, 2024 pm 04:30 PM

深入解析C語(yǔ)言中static關(guān)鍵字的作用和用法在C語(yǔ)言中,static是一種非常重要的關(guān)鍵字,它可以被用于函數(shù)、變量和數(shù)據(jù)類型的定義上。使用static關(guān)鍵字可以改變對(duì)象的鏈接屬性、作用域和生命周期,下面就來(lái)詳細(xì)地解析一下static關(guān)鍵字在C語(yǔ)言中的作用和用法。static變量和函數(shù):在函數(shù)內(nèi)部使用static關(guān)鍵字定義的變量稱為靜態(tài)變量,它具有全局生命周

c語(yǔ)言static的作用和用法是什么 c語(yǔ)言static的作用和用法是什么 Jan 31, 2024 pm 01:59 PM

c語(yǔ)言static的作用和用法:1、變量作用域;2、生命周期;3、函數(shù)內(nèi)部;4、修飾全局變量;5、修飾函數(shù);6、其他用途;詳細(xì)介紹:1、變量作用域,當(dāng)一個(gè)變量前有static關(guān)鍵字,那么這個(gè)變量的作用域被限制在聲明它的文件內(nèi),也就是說(shuō),這個(gè)變量是“文件級(jí)作用域”,這對(duì)于防止變量的“重復(fù)定義”問(wèn)題很有用;2、生命周期,靜態(tài)變量在程序開(kāi)始執(zhí)行時(shí)初始化一次,并在程序結(jié)束時(shí)銷毀等等。

PHP中var關(guān)鍵字的作用和示例 PHP中var關(guān)鍵字的作用和示例 Jun 28, 2023 pm 08:58 PM

PHP中var關(guān)鍵字的作用和示例在PHP中,var關(guān)鍵字用于聲明一個(gè)變量。以前的PHP版本中,使用var關(guān)鍵字是聲明成員變量的慣用方式,現(xiàn)在已經(jīng)不再推薦使用。然而,在某些情況下,var關(guān)鍵字依然會(huì)被使用。var關(guān)鍵字主要用于聲明一個(gè)局部變量,并且會(huì)自動(dòng)將該變量標(biāo)記為局部作用域。這意味著該變量?jī)H在當(dāng)前的代碼塊中可見(jiàn),并且不能在其他函數(shù)或代碼塊中訪問(wèn)。使用var

C語(yǔ)言中g(shù)o是關(guān)鍵字嗎?詳細(xì)解析 C語(yǔ)言中g(shù)o是關(guān)鍵字嗎?詳細(xì)解析 Mar 16, 2024 am 10:30 AM

標(biāo)題:C語(yǔ)言中g(shù)o是關(guān)鍵字嗎?詳細(xì)解析在C語(yǔ)言中,"go"并不是一個(gè)關(guān)鍵字。C語(yǔ)言的關(guān)鍵字是由C標(biāo)準(zhǔn)規(guī)定的,用于表示特定的語(yǔ)法結(jié)構(gòu)或者功能,在編譯器中有特殊的含義,不能被用作標(biāo)識(shí)符或者變量名。例如,關(guān)鍵字"int"表示整型數(shù)據(jù)類型,"if"表示條件語(yǔ)句等等。如果我們想驗(yàn)證在C語(yǔ)言中"go"是否是關(guān)鍵字,可以編寫一個(gè)簡(jiǎn)單的程序進(jìn)行測(cè)試。下面是一個(gè)例子:#inc

go語(yǔ)言中while是關(guān)鍵字嗎 go語(yǔ)言中while是關(guān)鍵字嗎 Jun 04, 2021 pm 05:01 PM

在go語(yǔ)言中,while不是關(guān)鍵字,可以用for語(yǔ)句加break來(lái)實(shí)現(xiàn)while循環(huán)的效果,例“for {sum++ if sum>10{break}else{...}}”。go語(yǔ)言有break、default 、func、select、case、defer、go、map、else、goto、for、if、var等25個(gè)關(guān)鍵字。

C語(yǔ)言中static關(guān)鍵字的實(shí)際應(yīng)用場(chǎng)景及使用技巧 C語(yǔ)言中static關(guān)鍵字的實(shí)際應(yīng)用場(chǎng)景及使用技巧 Feb 21, 2024 pm 07:21 PM

C語(yǔ)言中static關(guān)鍵字的實(shí)際應(yīng)用場(chǎng)景及使用技巧一、概述static是C語(yǔ)言中的一個(gè)關(guān)鍵字,用于修飾變量和函數(shù)。它的作用是改變其在程序運(yùn)行過(guò)程中的生命周期和可見(jiàn)性,使得變量和函數(shù)具有靜態(tài)的特性。本文將介紹static關(guān)鍵字的實(shí)際應(yīng)用場(chǎng)景及使用技巧,并通過(guò)具體的代碼示例進(jìn)行說(shuō)明。二、靜態(tài)變量延長(zhǎng)變量的生命周期使用static關(guān)鍵字修飾局部變量可以將其生命周期

Java中的static、this、super、final怎么使用 Java中的static、this、super、final怎么使用 Apr 18, 2023 pm 03:40 PM

一、static  請(qǐng)先看下面這段程序:publicclassHello{publicstaticvoidmain(String[]args){//(1)System.out.println("Hello,world!");//(2)}}看過(guò)這段程序,對(duì)于大多數(shù)學(xué)過(guò)Java的從來(lái)說(shuō),都不陌生。即使沒(méi)有學(xué)過(guò)Java,而學(xué)過(guò)其它的高級(jí)語(yǔ)言,例如C,那你也應(yīng)該能看懂這段代碼的意思。它只是簡(jiǎn)單的輸出“Hello,world”,一點(diǎn)別的用處都沒(méi)有,然而,它卻展示了static關(guān)鍵字的主

c語(yǔ)言中關(guān)鍵字有多少個(gè) c語(yǔ)言中關(guān)鍵字有多少個(gè) Nov 22, 2022 pm 03:39 PM

C語(yǔ)言的關(guān)鍵字共有32個(gè),根據(jù)關(guān)鍵字的作用,可分其為數(shù)據(jù)類型關(guān)鍵字、控制語(yǔ)句關(guān)鍵字、存儲(chǔ)類型關(guān)鍵字和其它關(guān)鍵字四類。數(shù)據(jù)類型關(guān)鍵字有12個(gè),包括char、double、float、int等;控制語(yǔ)句關(guān)鍵字有12個(gè),包括for、break、if、else、do等;存儲(chǔ)類型關(guān)鍵字有4個(gè),包括auto、static、extern等;其它關(guān)鍵字有4個(gè),包括const、sizeof等。

See all articles