欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入了解Java中成員變量與局部變量的使用與區(qū)別

 更新時(shí)間:2022年08月23日 09:56:13   作者:夏志121  
成員變量和局部變量在每種編程語(yǔ)言中都有涉及,本文將通過(guò)示例為大家詳細(xì)講講Java中成員變量與局部變量的使用與區(qū)別,感興趣的可以了解一下

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

類中位置不同:成員變量(類中方法外)局部變量(方法內(nèi)部或方法聲明上)

內(nèi)存中位置不同:成員變量(堆內(nèi)存)局部變量(棧內(nèi)存)

生命周期不同:成員變量(隨著對(duì)象的存在而存在,隨著對(duì)象的消失而消失)局部變量(隨著方法的調(diào)用而存在,醉著方法的調(diào)用完畢而消失)

初始化值不同:成員變量(有默認(rèn)初始化值)局部變量(沒(méi)有默認(rèn)初始化值,必須先定義,賦值才能使用)

二、封裝

1.、封裝概述,是面向?qū)ο笕筇卣髦唬ǚ庋b,繼承,多態(tài)) 是面向?qū)ο缶幊陶Z(yǔ)言對(duì)客觀世界的模擬,客觀世界里成員變量都是隱藏在對(duì)象內(nèi)部的,外界是無(wú)法直接操作的

2.、封裝原則,將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),而是通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn) 成員變量private,提供對(duì)應(yīng)的getXxx()/setXxx()方法

3.、封裝好處,通過(guò)方法來(lái)控制成員變量的操作,提高了代碼的安全性把代碼用方法進(jìn)行封裝,提高了代碼的復(fù)用性

private關(guān)鍵字

private是一個(gè)修飾符,可以用來(lái)修飾成員(成員變量,成員方法)

被private修飾的成員,只能在本類進(jìn)行訪問(wèn),針對(duì)private修飾的成員變量,如果需要被其他類使用,提供相應(yīng)的操作

提供“get變量名()”方法,用于獲取成員變量的值,方法用public修飾

提供“set變量名(參數(shù))”方法,用于設(shè)置成員變量的值,方法用public修飾

示例代碼:

/*
    學(xué)生類
 */
class Student {
    //成員變量
    String name;
    private int age;
    //提供get/set方法
    public void setAge(int a) {
        if(a<0 || a>120) {
            System.out.println("你給的年齡有誤");
        } else {
            age = a;
        }
    }
    public int getAge() {
        return age;
    }
    //成員方法
    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    學(xué)生測(cè)試類
 */
public class StudentDemo {
    public static void main(String[] args) {
        //創(chuàng)建對(duì)象
        Student s = new Student();
        //給成員變量賦值
        s.name = "小明";
        s.setAge(22);
        //調(diào)用show方法
        s.show();
    }
}    

private的使用

需求:定義標(biāo)準(zhǔn)的學(xué)生類,要求name和age使用private修飾,并提供set和get方法以及便于顯示數(shù)據(jù)的show方法,測(cè)試類中創(chuàng)建對(duì)象并使用,要求控制臺(tái)輸出 小李,22

代碼:

/*
    學(xué)生類
 */
class Student {
    //成員變量
    private String name;
    private int age;
    //get/set方法
    public void setName(String n) {
        name = n;
    }
    public String getName() {
        return name;
    }
    public void setAge(int a) {
        age = a;
    }
    public int getAge() {
        return age;
    }
    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    學(xué)生測(cè)試類
 */
public class StudentDemo {
    public static void main(String[] args) {
        //創(chuàng)建對(duì)象
        Student s = new Student();
        //使用set方法給成員變量賦值
        s.setName("小李");
        s.setAge(22);
        s.show();
        //使用get方法獲取成員變量的值
        System.out.println(s.getName() + "---" + s.getAge());
        System.out.println(s.getName() + "," + s.getAge());
    }
}

this關(guān)鍵字

this修飾的變量用于指代成員變量,其主要作用是(區(qū)分局部變量和成員變量的重名問(wèn)題)

方法的形參如果與成員變量同名,不帶this修飾的變量指的是形參,而不是成員變量

方法的形參沒(méi)有與成員變量同名,不帶this修飾的變量指的是成員變量

public class Student {
    private String name;
    private int age;
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getAge() {
        return age;
    }
    public void show() {
        System.out.println(name + "," + age);
    }
}

注意:this代表當(dāng)前調(diào)用方法的引用,哪個(gè)對(duì)象調(diào)用的方法,this就代表哪一個(gè)對(duì)象

到此這篇關(guān)于深入了解Java中成員變量與局部變量的使用與區(qū)別的文章就介紹到這了,更多相關(guān)Java成員變量 局部變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring實(shí)現(xiàn)加法計(jì)算器和用戶登錄功能

    Spring實(shí)現(xiàn)加法計(jì)算器和用戶登錄功能

    在前后端分離的Web開(kāi)發(fā)模式中,接口(API)扮演著至關(guān)重要的角色,它是前后端交互的橋梁,創(chuàng)建加法計(jì)算器和用戶登錄功能時(shí),介紹了接口測(cè)試和問(wèn)題解決的一般流程,如使用Postman測(cè)試接口、查看日志、處理緩存問(wèn)題等,確保開(kāi)發(fā)過(guò)程中的高效協(xié)作和問(wèn)題快速定位
    2024-10-10
  • springboot項(xiàng)目中實(shí)現(xiàn)訪問(wèn)druid內(nèi)置監(jiān)控頁(yè)面

    springboot項(xiàng)目中實(shí)現(xiàn)訪問(wèn)druid內(nèi)置監(jiān)控頁(yè)面

    這篇文章主要介紹了springboot項(xiàng)目中實(shí)現(xiàn)訪問(wèn)druid內(nèi)置監(jiān)控頁(yè)面的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java 內(nèi)存模型(JVM)

    Java 內(nèi)存模型(JVM)

    本文公國(guó)講解Java 內(nèi)存模型來(lái)看看解決可見(jiàn)性、有序性問(wèn)題的 Java 內(nèi)存模型(JMM),今天通過(guò)本文給大家介紹Java 內(nèi)存模型(JVM)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-08-08
  • Java編程小實(shí)例—數(shù)字時(shí)鐘的實(shí)現(xiàn)代碼示例

    Java編程小實(shí)例—數(shù)字時(shí)鐘的實(shí)現(xiàn)代碼示例

    正所謂拳不離手曲不離口,java學(xué)習(xí)的過(guò)程中,練習(xí)還是要多一點(diǎn)比較好。接下來(lái)分享給大家一個(gè)Java編程的小實(shí)例,供朋友們參考。
    2017-10-10
  • Java中將字符串String轉(zhuǎn)換為整數(shù)int的多種方法

    Java中將字符串String轉(zhuǎn)換為整數(shù)int的多種方法

    在Java中將String類型轉(zhuǎn)換為int類型是一個(gè)常見(jiàn)的操作,下面這篇文章主要給大家介紹了關(guān)于Java中將字符串String轉(zhuǎn)換為整數(shù)int的多種方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • java 對(duì)象數(shù)組排序

    java 對(duì)象數(shù)組排序

    當(dāng)遇到數(shù)組排序時(shí),我們經(jīng)常會(huì)使用學(xué)過(guò)的幾種排序方法,而java 本身提供了Arrays.sort,在數(shù)據(jù)元素較少或者對(duì)效率要求不是抬高時(shí),直接使用Arrays.sort來(lái)的更容易。查看一下源碼后Arrays.sort 本身采用的是快速排序。
    2015-04-04
  • spring?boot只需兩步優(yōu)雅整合activiti示例解析

    spring?boot只需兩步優(yōu)雅整合activiti示例解析

    這篇文章主要主要來(lái)教大家spring?boot優(yōu)雅整合activiti只需兩步就可完成測(cè)操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步
    2022-03-03
  • SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解

    SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解

    我們知道內(nèi)存讀取速度遠(yuǎn)大于硬盤讀取速度,當(dāng)需要重復(fù)獲取相同數(shù)據(jù)時(shí),一次一次的請(qǐng)求數(shù)據(jù)庫(kù)或者遠(yuǎn)程服務(wù),導(dǎo)致在數(shù)據(jù)庫(kù)查詢或者遠(yuǎn)程方法調(diào)用上小號(hào)大量的時(shí)間,最終導(dǎo)致程序性能降低,這就是數(shù)據(jù)緩存要解決的問(wèn)題,學(xué)過(guò)計(jì)算機(jī)組成原理或者操作系統(tǒng)的同學(xué)們應(yīng)該比較熟悉
    2022-10-10
  • SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程圖解

    SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程圖解

    這篇文章主要介紹了SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 基于Transactional事務(wù)的使用以及注意說(shuō)明

    基于Transactional事務(wù)的使用以及注意說(shuō)明

    這篇文章主要介紹了Transactional事務(wù)的使用以及注意說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評(píng)論