摘要:變量中的類型變量中的類型分為三種靜態(tài)變量或者類變量實例變量局部變量靜態(tài)變量靜態(tài)變量也被稱為類變量,因為它們與類相關(guān)聯(lián),并且對于類的所有實例對象都是通用的。局部變量是定義在一個類的函數(shù)里面,其作用范圍被限制在該函數(shù)內(nèi)部,外部無法訪問該變量。
1. 理解 Java 中的變量
程序中需要處理數(shù)據(jù),Java 中的變量是用來裝載數(shù)據(jù)。變量類似一個盒子,我們通過這個盒子,就可以操作盒子里面的數(shù)據(jù)。
Java 中每個變量都有名稱和數(shù)值。名稱不會變化,但是里面的數(shù)值可以變化,像一個盒子里面可以去裝不同的東西。
Java 變量中的值不一定總是數(shù)值,還可以是文本內(nèi)容或者字母,還可以是其他類型的數(shù)據(jù)。
Java 中變量定義需要顯示的指定存放數(shù)據(jù)類型,一旦指定,只能存儲指定類型數(shù)據(jù)。當(dāng)創(chuàng)建變量的時候,需要在內(nèi)存中申請空間。內(nèi)存管理系統(tǒng)根據(jù)變量的類型為變量分配存儲空間,分配的空間只能用來儲存該類型數(shù)據(jù)。
Java 中變量是這樣定義的:
data_type variable_name = value;
比如用變量 passengers 記錄公交車每個站乘客的數(shù)量。
int passengers;//聲明一個名字為 passengers的變量,指定存放數(shù)據(jù)類型為整數(shù) passengers = 0;//為 passengers 變量初始化一個整數(shù)值 0 //也可以聲明變量時,就初始化值。 int passenger1 = 10;//定義變量paasenger1,并初始化值為整數(shù)10
注意:這里的 “=” 不是數(shù)學(xué)里面等于的意思,是把右邊的數(shù)據(jù),賦值給左邊變量。
定義變量后,可以對變量更新為不同的值。變量只保留最后一次更新的值。
2. Java 中變量的命名約定Java中變量的名字命名需要遵循一些規(guī)則:
1)變量名稱中不可以有空格。比如 int pas senger = 0;是不合法的, 因為passengers中存在空格
2)變量名稱可以以特殊字符開頭,例如$和像和_ 像int $num = 10;是有效的定義。
3)根據(jù)Java編碼標(biāo)準(zhǔn),變量名應(yīng)以小寫字母開頭;對于具有多個單詞的冗長變量名稱,可以這樣做:int smallNumber; int bigNumber; (用大寫字母開始第二個單詞,也稱為駝峰命名規(guī)則)。
4)Java 中的變量名稱區(qū)分大小寫,也就是 int Num; 和 int num;定義了兩個不同的變量。
3. Java 變量中的類型Java 變量中的類型分為三種:
1)靜態(tài)變量(或者類變量)
2)實例變量
3)局部變量
3.1 靜態(tài)變量靜態(tài)變量也被稱為類變量,因為它們與類相關(guān)聯(lián),并且對于類的所有實例對象都是通用的。例如,A類中定義了一個靜態(tài)變量 a,對于從 A 類的創(chuàng)建的任何實例對象都能夠訪問靜態(tài)變量 a。如果通過一個實例對象改變了靜態(tài)變量 a 的值,那么靜態(tài)變量的改變會應(yīng)用到其他所有的對象。實例說明一下:
public class StaticVariableExample { //定義一個靜態(tài)變量 public static String myClassVar = "class or static variable"; public static void main(String[] args) { // 創(chuàng)建三個實例對象 StaticVariableExample obj1 = new StaticVariableExample(); StaticVariableExample obj2 = new StaticVariableExample(); StaticVariableExample obj3 = new StaticVariableExample(); //三個對象都可以訪問 myClassVar ,輸出 “class or static variable” System.out.println(obj1.myClassVar); System.out.println(obj2.myClassVar); System.out.println(obj3.myClassVar); //通過實例對象 obj2 改變靜態(tài)變量 myClassVar的值 obj2.myClassVar = "Change value for myClassVar"; // 三個都會輸出:"Change value for myClassVar" System.out.println(obj1.myClassVar); System.out.println(obj2.myClassVar); System.out.println(obj3.myClassVar); } }
控制臺輸出:
class or static variable class or static variable class or static variable Change value for myClassVar Change value for myClassVar Change value for myClassVar
靜態(tài)變量可以理解為屬于類(Class)模板的變量,不屬于實例對象,但是對象可以訪問。因為屬于類模板,所有也可以直接訪問靜態(tài)變量,例如在上面實例的 main方法中可以直接這樣打印輸出:
System.out.println(myClassVar);
注意:只有靜態(tài)變量可以這樣直接訪問。局部變量和實例變量不可以直接訪問3.2 實例變量
類的每個實例(對象)都有自己的實例變量副本。與靜態(tài)變量不同,實例變量具有自己獨立的實例變量副本。在下面的程序中使用obj2對象更改了實例變量值,并且當(dāng)使用所有三個對象顯示變量時,只有obj2值被更改,其他值保持不變。這表明三個對象都有自己的副本實例變量。
實例變量示例:
public class InstanceVariableExample { //定義實例變量 String myInstanceVar = "instance variable"; public static void main(String[] args) { //創(chuàng)建三個實例對象 InstanceVariableExample obj1 = new InstanceVariableExample(); InstanceVariableExample obj2 = new InstanceVariableExample(); InstanceVariableExample obj3 = new InstanceVariableExample(); //每個對象擁有實例變量副本,都輸出:“instance variable” System.out.println(obj1.myInstanceVar); System.out.println(obj2.myInstanceVar); System.out.println(obj3.myInstanceVar); //obj2改變的只是自己的實例變量副本,不改變其他實例對象的實例變量 obj2.myInstanceVar = "Change Text"; System.out.println(obj1.myInstanceVar); System.out.println(obj2.myInstanceVar); System.out.println(obj3.myInstanceVar); } }
控制臺輸出:
instance variable instance variable instance variable instance variable Change Text instance variable
可以理解為實例對象擁有各自的實例變量,類只是定義了一個實例變量的模板。產(chǎn)生新的實例對象時,會從類模板拷貝實例變量給實例對象。3.3 局部變量
什么是局部變量,顧名思義,該類型變量只在一個局部范圍內(nèi)有效,超出范圍無效。外部就無法訪問該變量。
局部變量是定義在一個類的函數(shù)里面,其作用范圍被限制在該函數(shù)內(nèi)部,外部無法訪問該變量。
[認識 Java]() 文章中介紹過函數(shù)的概念
下面,我用一個例子來說明:
public class LocalVaribleExample { //定義一個實例變量 myVar public String myVar = "instance variable"; public void myMethod() { // 定義一個局部變量,只作用在該方法內(nèi)部 String myVar = "Inside Method"; String myVar2 = "Inside Method 2" System.out.println(myVar); } public static void main(String[] args) { //創(chuàng)建一個實例對象 LocalVaribleExample obj = new LocalVaribleExample(); System.out.println("調(diào)用函數(shù)"); obj.myMethod(); System.out.println(obj.myVar); //System.out.println(obj.myVar2);//會編譯出錯,外部無法訪問方法內(nèi)局部變量 } }
控制臺輸出:
調(diào)用函數(shù) Inside Method instance variable
說明:局部變量的作用范圍只在方法內(nèi)部
如果不聲明實例變量:
public String myVar = "instance variable";
那么,main 方法中的直接調(diào)用:
System.out.println(obj.myVar);
會拋出編譯錯誤。因為無法在myMethod外更改和訪問myVar局部變量。
4. 更多練習(xí)實例 4.1 Java程序來查找一個字符的ASCII值ASCII是用于將英文字符表示為數(shù)字的代碼,英文字母的每個字母都被分配了從0到127的數(shù)字。例如,大寫字母P的ASCII代碼是80。
在Java編程中,我們有兩種方法來查找字符的ASCII值
1)通過給int變量分配一個字符
2)通過類型轉(zhuǎn)換字符值為int
public class Demo { public static void main(String[] args) { char ch = "P"; int asciiCode = ch; // 強制轉(zhuǎn)換char類型為int類型 int asciiValue = (int)ch; System.out.println("ASCII value of "+ch+" is: " + asciiCode); System.out.println("ASCII value of "+ch+" is: " + asciiValue); } }
控制臺輸出:
ASCII value of P is: 80 ASCII value of P is: 804.2 Java 程序中兩個數(shù)字相乘
1)控制臺輸入兩個整數(shù),并打印結(jié)果:
import java.util.Scanner; public class Demo { public static void main(String[] args) { /* 讀取用戶的鍵盤輸入的掃描器對象 */ Scanner scan = new Scanner(System.in); System.out.print("Enter first number: "); // 讀取鍵盤輸入的數(shù)字,并賦值給變量num1 int num1 = scan.nextInt(); System.out.print("Enter second number: "); int num2 = scan.nextInt(); // 使用后關(guān)閉掃描器 scan.close(); // 計算兩個整數(shù)相乘的結(jié)果 int product = num1*num2; //控制臺打印乘法結(jié)果 System.out.println("Output: "+product); } }
控制臺:
Enter first number: 20 Enter second number: 6 Output: 120
2)兩個小數(shù)相乘:
這里我們使用數(shù)據(jù)類型double來表示數(shù)字,可以輸入整數(shù)以及浮點數(shù)。
import java.util.Scanner; public class Demo { public static void main(String[] args) { //讀取用戶的鍵盤輸入的掃描器對象 Scanner scan = new Scanner(System.in); System.out.print("Enter first number: "); // 讀取鍵盤輸入的數(shù)值,并賦值給變量num1 double num1 = scan.nextDouble(); System.out.print("Enter second number: "); double num2 = scan.nextDouble(); // 使用后關(guān)閉掃描器 scan.close(); // 計算兩個數(shù)值相乘的結(jié)果 double product = num1*num2; //控制臺打印乘法結(jié)果 System.out.println("Output: "+product); } }
控制臺:
Enter first number: 1.5 Enter second number: 2.5 Output: 3.754.3 計算三角面積
1)用戶輸入寬和高
import java.util.Scanner; class AreaTriangleDemo { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.println("Enter the width of the Triangle:"); double base = scanner.nextDouble(); System.out.println("Enter the height of the Triangle:"); double height = scanner.nextDouble(); //Area = (width*height)/2 double area = (base* height)/2; System.out.println("Area of Triangle is: " + area); } }
控制臺輸出:
Enter the width of the Triangle: 2 Enter the height of the Triangle: 2 Area of Triangle is: 2.0
2)程序中定義寬和高
class AreaTriangleDemo2 { public static void main(String args[]) { double base = 20.0; double height = 110.5; double area = (base* height)/2; System.out.println("Area of Triangle is: " + area); } }
控制臺輸出:
Area of Triangle is: 1105.0
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/68182.html
摘要:語言中給我們提供了專門用來操作這些數(shù)據(jù)的代碼符號,統(tǒng)稱為運算符。運算符的優(yōu)先級運算符優(yōu)先級決定一個表達式里術(shù)語的分組。一定的運算符比其他運算符擁有更高的優(yōu)先級。 showImg(https://segmentfault.com/img/remote/1460000012983569?w=900&h=500); 在前面的內(nèi)容已經(jīng)學(xué)會了如何定義變量和初始化變量。定義變量的目的就是為了操作數(shù)...
摘要:程序執(zhí)行的過程,我們可以把它認為是一個流,實際的業(yè)務(wù)需求會根據(jù)不同的情況,來控制程序不同的流轉(zhuǎn)。中對應(yīng)的結(jié)構(gòu)為控制結(jié)構(gòu)。程序跳轉(zhuǎn)到語句后面的語句執(zhí)行。 showImg(https://segmentfault.com/img/remote/1460000012984073?w=900&h=500); 程序執(zhí)行的過程,我們可以把它認為是一個流,實際的業(yè)務(wù)需求會根據(jù)不同的情況,來控制程序不...
摘要:需要注意的地方輸入法狀態(tài)調(diào)整為英文狀態(tài)代碼的縮進不要忘記分號下面圖片標(biāo)注內(nèi)容。語句語句是程序最小的一個執(zhí)行單位,像一個指令,程序中,必須使用一個英文分號結(jié)束一條語句。建議,第一個簡單的程序,我已經(jīng)詳細的為你做了演練與解釋。 在上一篇文章 【[準(zhǔn)備編譯環(huán)境】]()中我們完成了 Java 編譯環(huán)境的搭建,這篇文章內(nèi)容主要是來教你怎么開始編寫第一個 Java 程序,并運行它。 分為兩個步驟,...
摘要:變量常量綁定無特定關(guān)鍵字直接設(shè)值將一個文字列放到名為的變量里的類型由文字列上面定義的正則表達式變成了整數(shù)這里就帶來一個在大工程里很容易帶來困擾的問題理解代碼不得不受制于類型極易變的變量要理解代碼所必需的工作量極大可變變量前綴將變量與 變量(常量)綁定 python無特定關(guān)鍵字,直接設(shè)值a = r^s*(d{4}-d{2}-d{2})s{1,2}(.+)$ # 將一個文字列放到名為a的...
摘要:字符串和基本數(shù)據(jù)類型也能通過進行拼接操作,比如字符串的內(nèi)容為。即基本類型和字符串類型相加時,基本類型會自動轉(zhuǎn)換為其字符串表示,在這個例子中相當(dāng)于回顧包裝類這一小節(jié)的代碼類型的最大值就是將字符串和數(shù)據(jù)類型的拼接。 數(shù)據(jù)類型定義了變量可以采用的值,例如,定義變量為 int 類型,則只能取整數(shù)值。 在 Java 中有兩類數(shù)據(jù)類型: 1)原始數(shù)據(jù)類型 2)非原始數(shù)據(jù)類型 - 數(shù)組和字符串是非原...
閱讀 2062·2021-11-24 09:38
閱讀 3403·2021-11-22 12:07
閱讀 1975·2021-09-22 16:03
閱讀 2050·2021-09-02 15:41
閱讀 2690·2021-07-24 23:28
閱讀 2292·2019-08-29 13:17
閱讀 1603·2019-08-29 12:25
閱讀 2719·2019-08-29 11:10