成員變量
Java中的成員變量是指
類中聲明的變量
,也稱為實例變量或?qū)傩?。它們與方法一樣屬于類的成員,不同之處在于,它們存儲在對象(堆)中而不是棧中,并且每個對象都有自己的一組值。
成員變量可以用來描述一個對象的狀態(tài),例如人的年齡、學(xué)生的姓名等。它們可以具有public、private、protected和默認(即沒有修飾符)四種訪問權(quán)限。
在Java中,如果沒有顯式地初始化成員變量,則它們將自動地初始化為其類型的默認值,如int類型變量默認值為0,引用類型變量默認值為null。
public class Person {
public String name; //public訪問權(quán)限
private int age; //private訪問權(quán)限
//構(gòu)造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//成員方法
public void sayHello() {
System.out.println("My name is " + name + ", I'm " + age + " years old.");
}
}
局部變量
Java中的局部變量是聲明在
代碼塊
(比如方法、循環(huán)、分支語句等)內(nèi)部的變量,它們只能在聲明它們的代碼塊內(nèi)使用。與成員變量不同的是,局部變量不屬于對象,而是存儲在棧中。
局部變量必須在使用之前進行初始化,否則編譯器會報錯。一般情況下,在代碼塊內(nèi)部第一次賦值即可。
public void sayHello() {
String name = "Tom"; //局部變量,必須初始化
int age; //定義局部變量
System.out.println("My name is " + name);
if (someCondition) {
age = 20; //給局部變量賦值
} else {
age = 30; //給局部變量賦值
}
System.out.println("I'm " + age + " years old.");
}
成員變量與局部變量的區(qū)別
成員變量和局部變量都是用于存儲數(shù)據(jù)的變量,但它們有一些關(guān)鍵的區(qū)別
-
作用域
:成員變量屬于類,因此它們的作用域是整個類
。而局部變量只存在于方法
、循環(huán)
或代碼塊
中,并且只能在其聲明的范圍內(nèi)訪問。 -
生命周期
:成員變量的生命周期與對象的生命周期相同。也就是說,只要對象存在,成員變量就一直存在。而局部變量只在其聲明的代碼塊內(nèi)存在,在該代碼塊執(zhí)行完畢后就會消失。 -
可見性
:成員變量可以有不同的可見性修飾符(public、protected、private等),這些修飾符控制著成員變量對其他類和對象的可見性。而局部變量只能在其所在的代碼塊內(nèi)部訪問。 -
默認值
:當聲明成員變量時,如果沒有顯式地對其進行初始化,則會賦予默認值(例如,整數(shù)類型的成員變量默認值為0)。而聲明局部變量時,必須顯式地進行初始化,否則編譯器會報錯。 -
存儲位置
:成員變量存儲在堆內(nèi)存中,而局部變量存儲在棧內(nèi)存中。
方法
方法(Method)是一種執(zhí)行特定任務(wù)的
代碼塊
。它們是定義在類中的函數(shù),可以被其他部分調(diào)用。Java中的方法包括兩個主要組件:方法頭
和方法體
。方法頭指定了方法的名稱、參數(shù)和返回值類型。方法體是一個代碼塊,包含了要執(zhí)行的具體操作。
方法的作用
方法在Java中具有以下主要作用:
-
提高代碼的可讀性和復(fù)用性
方法可以將代碼劃分為更小、更具可讀性的模塊。這不僅使代碼易于閱讀和理解,也使代碼易于維護和修改。此外,方法還可以被多次調(diào)用以完成相同或類似的任務(wù),提高了代碼的復(fù)用性。 -
封裝和隱藏實現(xiàn)細節(jié)
方法可以將代碼邏輯封裝在一起,隱藏實現(xiàn)細節(jié)。這樣,其他部分只需要知道如何調(diào)用該方法,而不需要關(guān)心方法內(nèi)部的實現(xiàn)細節(jié)。 -
實現(xiàn)程序的模塊化設(shè)計
Java中的方法可以根據(jù)功能進行劃分,實現(xiàn)程序的模塊化設(shè)計。每個方法可以專注于實現(xiàn)某個具體的功能,使整個程序結(jié)構(gòu)清晰明了。 -
支持多態(tài)性
Java中的方法支持多態(tài)性,即相同的方法名可以被不同的類實現(xiàn),并且能夠根據(jù)運行時對象的類型自動選擇正確的方法。這種特性是面向?qū)ο缶幊痰闹匾攸c之一。
方法的聲明
Java中的方法聲明主要包括以下部分:
-
訪問修飾符
訪問修飾符用于控制方法的可見性,包括public、private、protected和默認(不寫任何訪問修飾符)四種。 -
返回值類型
返回值類型指定了方法返回的數(shù)據(jù)類型。如果方法不返回任何值,則返回類型為void。 -
方法名
方法名是方法的標識符,用于在程序中調(diào)用該方法。 -
參數(shù)列表
參數(shù)列表指定了方法接受的參數(shù)類型和參數(shù)名稱。如果方法不需要任何參數(shù),則參數(shù)列表為空。 -
方法體
方法體是一段由花括號包裹的代碼塊,包含了要執(zhí)行的具體操作。
Student類
package atuigu03.field_method;
public class Student {
// 定義學(xué)生類,包含姓名、年齡和成績?nèi)齻€屬性
private String name;
private int age;
private double score;
// 構(gòu)造方法,初始化學(xué)生對象
public Student(String name, int age, double score) {
this.name = name;
this.age = age;
this.score = score;
}
// 獲取學(xué)生姓名
public String getName() {
return name;
}
// 設(shè)置學(xué)生姓名
public void setName(String name) {
this.name = name;
}
// 獲取學(xué)生年齡
public int getAge() {
return age;
}
// 設(shè)置學(xué)生年齡
public void setAge(int age) {
this.age = age;
}
// 獲取學(xué)生成績
public double getScore() {
return score;
}
// 設(shè)置學(xué)生成績
public void setScore(double score) {
this.score = score;
}
// 打印學(xué)生信息
public void printInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Score: " + score);
}
public void specialty(String name, String time, String Specialty) {
System.out.println("姓名:" + name);
System.out.println("練習(xí)時長:" + time);
System.out.println("特長:" + Specialty);
}
}
調(diào)用文章來源:http://www.zghlxwxcb.cn/news/detail-499529.html
package atuigu03.field_method;
public class StudentTest {
public static void main(String[] args) {
// 創(chuàng)建學(xué)生對象并初始化
Student s1 = new Student("蔡徐坤", 30, 99.0);
// 調(diào)用對象的方法
System.out.println("set前:");
s1.printInfo();
s1.setScore(66.0);
s1.setAge(35);
System.out.println("set后:");
s1.printInfo();
s1.specialty("蔡徐坤", "2.5年", "唱跳rap籃球");
}
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-499529.html
到了這里,關(guān)于面向?qū)ο蟆境蓡T變量與局部變量、方法聲明與作用】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!