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