深入了解Java中成員變量與局部變量的使用與區(qū)別
一、成員變量和局部變量的區(qū)別
類中位置不同:成員變量(類中方法外)局部變量(方法內(nèi)部或方法聲明上)
內(nèi)存中位置不同:成員變量(堆內(nèi)存)局部變量(棧內(nèi)存)
生命周期不同:成員變量(隨著對象的存在而存在,隨著對象的消失而消失)局部變量(隨著方法的調(diào)用而存在,醉著方法的調(diào)用完畢而消失)
初始化值不同:成員變量(有默認(rèn)初始化值)局部變量(沒有默認(rèn)初始化值,必須先定義,賦值才能使用)
二、封裝
1.、封裝概述,是面向?qū)ο笕筇卣髦唬ǚ庋b,繼承,多態(tài)) 是面向?qū)ο缶幊陶Z言對客觀世界的模擬,客觀世界里成員變量都是隱藏在對象內(nèi)部的,外界是無法直接操作的
2.、封裝原則,將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問,而是通過該類提供的方法來實現(xiàn)對隱藏信息的操作和訪問 成員變量private,提供對應(yīng)的getXxx()/setXxx()方法
3.、封裝好處,通過方法來控制成員變量的操作,提高了代碼的安全性把代碼用方法進(jìn)行封裝,提高了代碼的復(fù)用性
private關(guān)鍵字
private是一個修飾符,可以用來修飾成員(成員變量,成員方法)
被private修飾的成員,只能在本類進(jìn)行訪問,針對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é)生測試類
*/
public class StudentDemo {
public static void main(String[] args) {
//創(chuàng)建對象
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方法,測試類中創(chuàng)建對象并使用,要求控制臺輸出 小李,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é)生測試類
*/
public class StudentDemo {
public static void main(String[] args) {
//創(chuàng)建對象
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ū)分局部變量和成員變量的重名問題)
方法的形參如果與成員變量同名,不帶this修飾的變量指的是形參,而不是成員變量
方法的形參沒有與成員變量同名,不帶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)用方法的引用,哪個對象調(diào)用的方法,this就代表哪一個對象
到此這篇關(guān)于深入了解Java中成員變量與局部變量的使用與區(qū)別的文章就介紹到這了,更多相關(guān)Java成員變量 局部變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java統(tǒng)計文件中每個字符出現(xiàn)的個數(shù)
這篇文章主要為大家詳細(xì)介紹了java統(tǒng)計文件中每個字符出現(xiàn)的個數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03
SpringBoot應(yīng)用啟動失敗:端口占用導(dǎo)致Tomcat啟動失敗的問題分析與解決方法
在開發(fā)和運維過程中,應(yīng)用程序啟動失敗是我們經(jīng)常遇到的一個問題,尤其是在 Web 應(yīng)用程序中,涉及到 Web 服務(wù)器的配置時,今天我們將探討一個常見的啟動錯誤,尤其是在使用 Spring Boot 和內(nèi)嵌 Tomcat 服務(wù)器時,需要的朋友可以參考下2024-11-11
SpringBoot工程中Spring Security應(yīng)用實踐記錄流程分析
Spring Security是一個能夠為基于Spring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。這篇文章主要介紹了SpringBoot工程中Spring Security應(yīng)用實踐,需要的朋友可以參考下2021-09-09
Java數(shù)據(jù)類型轉(zhuǎn)換的示例詳解
Java程序中要求參與的計算的數(shù)據(jù),必須要保證數(shù)據(jù)類型的一致性,如果數(shù)據(jù)類型不一致將發(fā)生類型的轉(zhuǎn)換。本文將通過示例詳細(xì)說說Java中數(shù)據(jù)類型的轉(zhuǎn)換,感興趣的可以了解一下2022-10-10

