摘要:對象數(shù)組都是引用數(shù)據(jù)類型。低高數(shù)據(jù)類型轉(zhuǎn)換必須滿足如下規(guī)則不能對類型進行類型轉(zhuǎn)換。強制類型轉(zhuǎn)換條件是轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的。聲明變量的基本格式如下格式說明為數(shù)據(jù)類型。但為了對類的使用者可見,大多數(shù)靜態(tài)變量聲明為類型。
變量就是申請內(nèi)存來存儲值。也就是說,當(dāng)創(chuàng)建變量的時候,需要在內(nèi)存中申請空間。
內(nèi)存管理系統(tǒng)根據(jù)變量的類型為變量分配存儲空間,分配的空間只能用來儲存該類型數(shù)據(jù)。
因此,通過定義不同類型的變量,可以在內(nèi)存中儲存整數(shù)、小數(shù)或者字符。
Java 的兩大數(shù)據(jù)類型:
內(nèi)置數(shù)據(jù)類型
引用數(shù)據(jù)類型
一、內(nèi)置數(shù)據(jù)類型Java語言提供了八種基本類型。六種數(shù)字類型(四個整數(shù)型,兩個浮點型),一種字符類型,還有一種布爾型。
數(shù)字類型:byte,short,int,long,float,double
布爾型:boolean,只有兩個取值:true 和 false;例子:boolean one = true。
字符類型:char,char類型是一個單一的 16 位 Unicode 字符;
最小值是 u0000(即為0);
最大值是 uffff(即為65,535);
char 數(shù)據(jù)類型可以儲存任何字符;
例子:char letter = "A";。
在Java中,引用類型的變量非常類似于C/C++的指針。引用類型指向一個對象,指向?qū)ο蟮淖兞渴且米兞?。這些變量在聲明時被指定為一個特定的類型,比如 Employee、Puppy 等。變量一旦聲明后,類型就不能被改變了。
對象、數(shù)組都是引用數(shù)據(jù)類型。
所有引用類型的默認值都是null。
一個引用變量可以用來引用任何與之兼容的類型。
例子:Site site = new Site("Runoob")。
常量在程序運行時是不能被修改的。
在 Java 中使用 final 關(guān)鍵字來修飾常量,聲明方式和變量類似:
final double PI = 3.1415927;
雖然常量名也可以用小寫,但為了便于識別,通常使用大寫字母表示常量。
自動類型轉(zhuǎn)換整型、實型(常量)、字符型數(shù)據(jù)可以混合運算。運算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進行運算。
轉(zhuǎn)換從低級到高級。
低 ------------------------------------> 高 byte,short,char—> int —> long—> float —> double
數(shù)據(jù)類型轉(zhuǎn)換必須滿足如下規(guī)則:
1.不能對boolean類型進行類型轉(zhuǎn)換。
2.不能把對象類型轉(zhuǎn)換成不相關(guān)類的對象。
3.在把容量大的類型轉(zhuǎn)換為容量小的類型時必須使用強制類型轉(zhuǎn)換。
4.轉(zhuǎn)換過程中可能導(dǎo)致溢出或損失精度,例如:
int i =128; byte b = (byte)i;
因為 byte 類型是 8 位,最大值為127,所以當(dāng)強制轉(zhuǎn)換為 int 類型值 128 時候就會導(dǎo)致溢出。
5.浮點數(shù)到整數(shù)的轉(zhuǎn)換是通過舍棄小數(shù)得到,而不是四舍五入,例如:
(int)23.7 == 23; (int)-45.89f == -45
自動類型轉(zhuǎn)換
必須滿足轉(zhuǎn)換前的數(shù)據(jù)類型的位數(shù)要低于轉(zhuǎn)換后的數(shù)據(jù)類型,例如: short數(shù)據(jù)類型的位數(shù)為16位,就可以自動轉(zhuǎn)換位數(shù)為32的int類型,同樣float數(shù)據(jù)類型的位數(shù)為32,可以自動轉(zhuǎn)換為64位的double類型。
示例:
public class ZiDongLeiZhuan{ public static void main(String[] args){ char c1="a";//定義一個char類型 int i1 = c1;//char自動類型轉(zhuǎn)換為int System.out.println("char自動類型轉(zhuǎn)換為int后的值等于"+i1); char c2 = "A";//定義一個char類型 int i2 = c2+1;//char 類型和 int 類型計算 System.out.println("char類型和int計算后的值等于"+i2); } }
運行結(jié)果:
char自動類型轉(zhuǎn)換為int后的值等于97 char類型和int計算后的值等于66
解析:c1的值為字符"a",查ascii碼表可知對應(yīng)的int類型值為97,"A"對應(yīng)值為65,所以i2=65+1=66。
強制類型轉(zhuǎn)換條件是轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的。
格式:(type)value type是要強制類型轉(zhuǎn)換后的數(shù)據(jù)類型 實例:
public class QiangZhiZhuanHuan{ public static void main(String[] args){ int i1 = 123; byte b = (byte)i1;//強制類型轉(zhuǎn)換為byte System.out.println("int強制類型轉(zhuǎn)換為byte后的值等于"+b); } }
運行:
int強制類型轉(zhuǎn)換為byte后的值等于123隱含強制類型轉(zhuǎn)換
整數(shù)的默認類型是 int。
浮點型不存在這種情況,因為在定義 float 類型時必須在數(shù)字后面跟上 F 或者 f。
二、數(shù)據(jù)類型應(yīng)用在Java語言中,所有的變量在使用前必須聲明。聲明變量的基本格式如下:
type identifier [ = value][, identifier [= value] ...] ;
格式說明:type為Java數(shù)據(jù)類型。identifier是變量名。可以使用逗號隔開來聲明多個同類型變量。
以下列出了一些變量的聲明實例。注意有些包含了初始化過程。
int a, b, c; // 聲明三個int型整數(shù):a、 b、c int d = 3, e = 4, f = 5; // 聲明三個整數(shù)并賦予初值 byte z = 22; // 聲明并初始化 z String s = "runoob"; // 聲明并初始化字符串 s double pi = 3.14159; // 聲明了雙精度浮點型變量 pi char x = "x"; // 聲明變量 x 的值是字符 "x"。
Java語言支持的變量類型有:
類變量:獨立于方法之外的變量,用 static 修飾。
實例變量:獨立于方法之外的變量,不過沒有 static 修飾。
局部變量:類的方法中的變量。
public class Variable { static int allClicks = 0; // 類變量 String str = "hello world"; // 實例變量 public void method() { int i = 0; // 局部變量 } }局部變量
局部變量聲明在方法、構(gòu)造方法或者語句塊中;
局部變量在方法、構(gòu)造方法、或者語句塊被執(zhí)行的時候創(chuàng)建,當(dāng)它們執(zhí)行完成后,變量將會被銷毀;
訪問修飾符不能用于局部變量;
局部變量只在聲明它的方法、構(gòu)造方法或者語句塊中可見;
局部變量是在棧上分配的。
局部變量沒有默認值,所以局部變量被聲明后,必須經(jīng)過初始化,才可以使用。
實例:
package com.runoob.test; public class Test{ public void pupAge(){ int age = 0; age = age + 7; System.out.println("小狗的年齡是: " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); } }
運行結(jié)果:
小狗的年齡是: 7
在以上實例中age是一個局部變量。定義在pupAge()方法中,它的作用域就限制在這個方法中。
實例變量實例變量聲明在一個類中,但在方法、構(gòu)造方法和語句塊之外;
當(dāng)一個對象被實例化之后,每個實例變量的值就跟著確定;
實例變量在對象創(chuàng)建的時候創(chuàng)建,在對象被銷毀的時候銷毀;
實例變量的值應(yīng)該至少被一個方法、構(gòu)造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;
實例變量可以聲明在使用前或者使用后;
訪問修飾符可以修飾實例變量;
實例變量對于類中的方法、構(gòu)造方法或者語句塊是可見的。一般情況下應(yīng)該把實例變量設(shè)為私有。通過使用訪問修飾符可以使實例變量對子類可見;
實例變量具有默認值。數(shù)值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構(gòu)造方法中指定;
實例變量可以直接通過變量名訪問。但在靜態(tài)方法以及其他類中,就應(yīng)該使用完全限定名:ObejectReference.VariableName。
Employee.java 文件
實例:
import java.io.*; public class Employee{ // 這個實例變量對子類可見 public String name; // 私有變量,僅在該類可見 private double salary; //在構(gòu)造器中對name賦值 public Employee (String empName){ name = empName; } //設(shè)定salary的值 public void setSalary(double empSal){ salary = empSal; } // 打印信息 public void printEmp(){ System.out.println("名字 : " + name ); System.out.println("薪水 : " + salary); } public static void main(String args[]){ Employee empOne = new Employee("RUNOOB"); empOne.setSalary(1000); empOne.printEmp(); } }
以上實例編譯運行結(jié)果如下:
$ javac Employee.java $ java Employee 名字 : RUNOOB 薪水 : 1000.0類變量(靜態(tài)變量)
類變量也稱為靜態(tài)變量,在類中以static關(guān)鍵字聲明,但必須在方法構(gòu)造方法和語句塊之外。
無論一個類創(chuàng)建了多少個對象,類只擁有類變量的一份拷貝。
靜態(tài)變量除了被聲明為常量外很少使用。常量是指聲明為public/private,final和static類型的變量。常量初始化后不可改變。
靜態(tài)變量儲存在靜態(tài)存儲區(qū)。經(jīng)常被聲明為常量,很少多帶帶使用static聲明變量。
靜態(tài)變量在程序開始時創(chuàng)建,在程序結(jié)束時銷毀。
與實例變量具有相似的可見性。但為了對類的使用者可見,大多數(shù)靜態(tài)變量聲明為public類型。
默認值和實例變量相似。數(shù)值型變量默認值是0,布爾型默認值是false,引用類型默認值是null。變量的值可以在聲明的時候指定,也可以在構(gòu)造方法中指定。此外,靜態(tài)變量還可以在靜態(tài)語句塊中初始化。
靜態(tài)變量可以通過:ClassName.VariableName的方式訪問。
類變量被聲明為public static final類型時,類變量名稱一般建議使用大寫字母。如果靜態(tài)變量不是public和final類型,其命名方式與實例變量以及局部變量的命名方式一致。
Employee.java 文件代碼:
import java.io.*; public class Employee { //salary是靜態(tài)的私有變量 private static double salary; // DEPARTMENT是一個常量 public static final String DEPARTMENT = "開發(fā)人員"; public static void main(String args[]){ salary = 10000; System.out.println(DEPARTMENT+"平均工資:"+salary); } }
以上實例編譯運行結(jié)果如下:
開發(fā)人員平均工資:10000.0
注意:如果其他類想要訪問該變量,可以這樣訪問 :Employee.DEPARTMENT。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/70804.html
摘要:數(shù)據(jù)類型結(jié)構(gòu)圖基本數(shù)據(jù)類型布爾值數(shù)值類型定點類型字符字節(jié)短整數(shù)整數(shù)長整數(shù)浮點類型單精度浮點數(shù)雙精度浮點數(shù)引用數(shù)據(jù)類型類或枚舉或接口數(shù)組基本數(shù)據(jù)類型由上圖可知,基本數(shù)據(jù)類型只有種。變量的變量一般有四個基本屬性變量名數(shù)據(jù)類型儲存單元變量值。 數(shù)據(jù)類型結(jié)構(gòu)圖 基本數(shù)據(jù)類型 布爾值 (true / false) 數(shù)值類型 定點類型 字符 char 字節(jié) byte 短整數(shù) shor...
摘要:結(jié)構(gòu)體也可以包含結(jié)構(gòu)體,就像內(nèi)部類訪問結(jié)構(gòu)的屬性和一樣。。我覺得這個需要學(xué)下數(shù)據(jù)結(jié)構(gòu)才能更好理解給數(shù)據(jù)類型起一個新名字則可以通過對于結(jié)構(gòu)體我可以這樣再通過變量名就可以簡便的聲明結(jié)構(gòu)體變量。文件暫時過了一遍預(yù)處理器頭文件就是擴展名為的文件。 ...
摘要:是完全面向?qū)ο蟮恼Z言,對象具有狀態(tài)行為和標識。類一一是具有共同特征和行為的一類事物的統(tǒng)稱。受保護的,對同一包內(nèi)的類和所有子類可見。一種通用的內(nèi)存池,用于存放所有對象。類級變量又稱全局級變量或靜態(tài)變量,需要使用關(guān)鍵字修飾。 java語言的基本特點 java語言是面向?qū)ο蟮母呒壋绦蛟O(shè)計語言,它是編譯型的語言,Java語言不使用指針,并提供了自動的垃圾回收機制,使得程序員不必為內(nèi)存管理而擔(dān)...
摘要:引用數(shù)據(jù)類型轉(zhuǎn)換由的繼承和向上轉(zhuǎn)型,子類可以很自然地轉(zhuǎn)換為父類對象,即父類類型可以直接引用子類對象,但是子類類型不能直接引用父類對象,需要進行強制轉(zhuǎn)換。但是將功能較弱的類型父類強制轉(zhuǎn)功能較強的對象子類時,就不一定可以行了。 1、引用數(shù)據(jù)類型轉(zhuǎn)換: 由java的繼承和向上轉(zhuǎn)型,子類可以很自然地轉(zhuǎn)換為父類對象,即父類類型可以直接引用子類對象,但是子類類型不能直接引用父類對象,需要進行強制轉(zhuǎn)...
摘要:數(shù)據(jù)類型中有種簡單數(shù)據(jù)類型也稱為基本數(shù)據(jù)類型和。在中非空字符串,非零數(shù)字,任意對象,都被認為。而空字符串,和,,認為是。用于表示整數(shù)和浮點數(shù)。標識符由數(shù)字字母下劃線美元符組成,但首字母不能是數(shù)字。變量方法對象命名推薦駝峰法。 JavaScript語法 一.語法簡介 因為JavaScript語法和Java等語法非常類似。所以只是簡單介紹一下。 大小寫 JavaScript是大小寫敏感的語...
閱讀 1039·2021-09-13 10:29
閱讀 3391·2019-08-29 18:31
閱讀 2633·2019-08-29 11:15
閱讀 3012·2019-08-26 13:25
閱讀 1369·2019-08-26 12:00
閱讀 2293·2019-08-26 11:41
閱讀 3377·2019-08-26 10:31
閱讀 1488·2019-08-26 10:25