成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JAVA學(xué)習(xí)之路 (五) 類

luqiuwen / 864人閱讀

摘要:類的成員方法類的成員方法的定義中的使用之靜態(tài)變量我們可以基于一個(gè)類創(chuàng)建多個(gè)該類的對象,每個(gè)對象都擁有自己的成員,互相獨(dú)立。靜態(tài)初始化塊只在類加載時(shí)執(zhí)行,且只會執(zhí)行一次,同時(shí)靜態(tài)初始化塊只能給靜態(tài)變量賦值,不能初始化普通的成員變量。

java類的學(xué)習(xí) 先上一個(gè)代碼
package bankCard;
import java.util.Scanner;

// 銀行卡類
public class bankCard {
    // 靜態(tài)變量
    static String host = "www.gcsn.site";
    // 成員變量
    private static int ID; // 賬號
    private double blance; // 余額
    
    // 構(gòu)造函數(shù)
    public bankCard() {
        // 無參構(gòu)造函數(shù)
    }
    public bankCard(int id, double money) {
        //有參構(gòu)造函數(shù)
        ID = id;
        blance = money;
    }
    
    // 成員函數(shù)(共有) / 成員方法
    public double intId() {
        // 存錢
        System.out.println("請輸入您要存的錢數(shù),只能是整錢");
        Scanner write_in = new Scanner(System.in);
        // 局部變量
        double money = write_in.nextInt();
        this.blance +=money;
        System.out.println("您的ID卡號為"+ID+"的賬戶存入"+money+"元余額為"+blance);
        
        return blance;
    }
    // 成員函數(shù)(共有)
    public double outId() {
        // 取錢
        System.out.println("請輸入您要取出的錢數(shù),只能是整錢");
        Scanner write_in = new Scanner(System.in);
        double money = write_in.nextInt();
        if(money > blance) {
            System.out.println("您的余額不足!當(dāng)前余額為"+blance);
        }else {
            this.blance -=money;
            System.out.println("您的ID卡號為"+ID+"的賬戶取出"+money+"元,剩余余額為"+blance);
        }
        
        return blance;
    }
    
    public static void main(String [] args) {
        // 推薦使用類來訪問
        System.out.println("static-----" +bankCard.host);
        System.out.println("static-----" +host); // 靜態(tài)成員函數(shù)可以直接訪問靜態(tài)變量
        bankCard b1 = new bankCard(1234, 2000.00);
        b1.intId();
        b1.outId();
    }
}
成員變量和局部變量

成員變量和局部變量的區(qū)別

作用域不同

局部變量只能在定義它的方法內(nèi)使用。
成員變量則是可以在整個(gè)類內(nèi)都可以使用。

初始值不同

java會給成員變量一個(gè)初始值,
java不會給局部變量一個(gè)初始值(必須自己初始化)。

兩類變量同名時(shí),局部變量具有更高的優(yōu)先級

構(gòu)造方法
var car = new Car();

// 通常我們都會new 實(shí)例化一個(gè)對象,其實(shí)new后面跟的就是構(gòu)造方法
使用new + 構(gòu)造方法 來實(shí)例化一個(gè)新的對象。
構(gòu)造方法是定義在類中的,用來初始化一個(gè)對象。
構(gòu)造方法必須于類名相同,且沒有返回值。

當(dāng)沒有構(gòu)造方法時(shí),系統(tǒng)會自動(dòng)添加一個(gè)無參的構(gòu)造方法;
如果自定義了一個(gè)構(gòu)造方法,那么系統(tǒng)將不會為我們創(chuàng)建無參的構(gòu)造方法了,也就無法調(diào)用無參的構(gòu)造方法。

構(gòu)造方法的重載:
方法名相同,但是參數(shù)不同的多個(gè)方法,調(diào)用的時(shí)候會根據(jù)不同的參數(shù)來選擇相應(yīng)的構(gòu)造函數(shù)。

類的成員方法

1 類的成員方法的定義

Java 中的 static 使用之【靜態(tài)變量】
我們可以基于一個(gè)類創(chuàng)建多個(gè)該類的對象,每個(gè)對象都擁有自己的成員,互相獨(dú)立。然而在某些時(shí)候,我們更希望【該類所有的對象共享同一個(gè)成員】。此時(shí)就是 static 大顯身手的時(shí)候了!!

Java 中被 static 修飾的成員稱為【靜態(tài)成員或類成員】。它屬于整個(gè)類所有,而不是某個(gè)對象所有,即被類的所有對象所共享。靜態(tài)成員可以使用類名直接訪問,也可以使用對象名進(jìn)行訪問。當(dāng)然,鑒于他作用的特殊性更推薦用類名訪問~~

靜態(tài)成員屬于整個(gè)類,當(dāng)系統(tǒng)第一次使用該類時(shí),就會為其分配內(nèi)存空間直到該類被卸載才會進(jìn)行資源回收!~~

public class HelloWorld {
    
    // 定義靜態(tài)變量,保存班級名稱
    static String host = "www.gcsn.site";

    public static void main(String[] args) {
        HelloWorld.host = "www.baidu.com";
        // 訪問靜態(tài)變量,輸出班級名稱
        System.out.println("static-----" +HelloWorld.host);
    }
}

Java 中的 static 使用之【靜態(tài)方法】
與靜態(tài)變量一樣,我們也可以使用 static 修飾方法,稱為【靜態(tài)方法或類方法】。其實(shí)之前我們一直寫的 main 方法就是靜態(tài)方法。

1. 靜態(tài)方法可以直接調(diào)用靜態(tài)變量,但是不能直接調(diào)用非靜態(tài)變量

如果希望在靜態(tài)方法中調(diào)用非靜態(tài)變量,可以通過創(chuàng)建類的對象,然后通過對象來訪問非靜態(tài)變量。如

2、 在普通成員方法中,則可以直接訪問同類的非靜態(tài)變量和靜態(tài)變量,

3、 靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法,需要通過對象來訪問非靜態(tài)方法。

總結(jié)

靜態(tài)方法: 能夠直接調(diào)用靜態(tài)成員,不可以直接調(diào)用非靜態(tài)成員, 不能夠直接調(diào)用非靜態(tài)方法
普通方法, 既可以直接訪問靜態(tài)變量又可以訪問非靜態(tài)變量
Java 中的初始化塊和靜態(tài)初始化塊

如果使用 static 修飾初始化塊,就稱為靜態(tài)初始化塊。

靜態(tài)初始化塊只在類加載時(shí)執(zhí)行,且只會執(zhí)行一次,同時(shí)靜態(tài)初始化塊只能給靜態(tài)變量賦值,不能初始化普通的成員變量。

來看一個(gè)例子

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76709.html

相關(guān)文章

  • 開發(fā)之路(設(shè)計(jì)模式:單件模式)

    摘要:單件模式提供這個(gè)實(shí)例的全局訪問點(diǎn)。實(shí)現(xiàn)單件模式,需要私有構(gòu)造器,一個(gè)靜態(tài)方法,一個(gè)靜態(tài)變量。設(shè)計(jì)到多線程問題,同步會降低程序效率。 擁有獨(dú)立且唯一的對象 這次講述的是單件模式,就是整個(gè)內(nèi)容里只有一個(gè)實(shí)例化唯一對象。這么說可能有點(diǎn)拗口,這么說吧,比方說,線程池,緩存,注冊表,日志文件,甚至做JDBC中連接,關(guān)閉,增刪改查數(shù)據(jù)庫的Connection類(個(gè)人命名也許并不一樣)、工具類等等...

    Steven 評論0 收藏0
  • 我的阿里之路+Java面經(jīng)考點(diǎn)

    摘要:我的是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)。因?yàn)槲倚睦砗芮宄业哪繕?biāo)是阿里。所以在收到阿里之后的那晚,我重新規(guī)劃了接下來的學(xué)習(xí)計(jì)劃,將我的短期目標(biāo)更新成拿下阿里轉(zhuǎn)正。 我的2017是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕JDK源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)offer。然后五月懷著忐忑的心情開始了螞蟻金...

    姘擱『 評論0 收藏0
  • 【全棧之路JAVA基礎(chǔ)課程_哲學(xué)家就餐問題(20190614v1.2)

    摘要:歡迎進(jìn)入基礎(chǔ)課程博客地址本系列文章將主要針對一些基礎(chǔ)知識點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸開發(fā)菜鳥還是業(yè)界資深人士,都希望對廣大同行帶來一些幫助。若有問題請及時(shí)留言或加。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎(chǔ)知識點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸JAVA開發(fā)菜鳥還是業(yè)界...

    Mr_houzi 評論0 收藏0
  • 【全棧之路JAVA基礎(chǔ)課程_哲學(xué)家就餐問題(20190614v1.2)

    摘要:歡迎進(jìn)入基礎(chǔ)課程博客地址本系列文章將主要針對一些基礎(chǔ)知識點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸開發(fā)菜鳥還是業(yè)界資深人士,都希望對廣大同行帶來一些幫助。若有問題請及時(shí)留言或加。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎(chǔ)知識點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸JAVA開發(fā)菜鳥還是業(yè)界...

    JerryZou 評論0 收藏0
  • 從小白程序員一路晉升為大廠高級技術(shù)專家我看過哪些書籍?(建議收藏)

    摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級技術(shù)專家我看過哪些技術(shù)類書籍。 大家好,我是...

    sf_wangchong 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<