java第三章_【Java】第三章 变量
1 什么是變量
用來命名一個數據的標示符
year這個標識符就是一個變量,它代表1949這個值
int year = 1949;
int是數據類型,表示是整數
year是一個標識符
=是賦值操作符
1949 是一個數字類型的值
;表示該行結束
2 基本變量類型
(1) 整型
public class HelloWorld{
public static void main(String[] args){
byte b = 1;
short s = 200;
int i = 300;
long l = 400;
/*如果試圖給byte類型的變量賦予超出其范圍的值,就會產生編譯錯誤*/
byte b2 = 200;
}
}
(2) 字符型
char類型用于存放一個字符,值用單引號'表示 (雙引號表示字符串)
其長度和short一樣,也是16位的
只能存放一個字符,超過一個字符就會產生編譯錯誤
public class HelloWorld{
public static void main(String[] args){
char c = '中';
//char 只能存放一個字符,超過一個字符就會產生編譯錯誤
char c2 = '中國'; //報錯
char c3 = 'ab'; //報錯
}
}
(3) 浮點型
默認的小數值是double類型的
所以float f=54.321會出現編譯錯誤,因為54.321的默認類型是double,其類型長度為64,超過了float的長度32
在數字后面加一個字母f,直接把該數字聲明成float類型,float f2 = 54.321f,這樣就不會出錯了
public class HelloWorld{
public static void main(String[] args){
double d = 123.45;
//該行會出現編譯錯誤,因為54.321是double型的
float f = 54.321;
float f2 = 54.321f;
}
}
(4) 布爾型
public class HelloWorld {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
// 雖然布爾型真正存放的數據是0(false) 1(true)
// 但是,不能直接使用0 1 進行賦值
boolean b3 = 1;
}
}
(5) String類型
String類型其實并不是基本類型,但是它是如此廣泛的被使用,常常被誤以為是一種基本類型
String類型是Immutable,一旦創建就不能夠被改變
3 字面值
(1) 整數字面值
當以L結尾的時候,一個整數字面值是long類型,否則就是int類型
byte,short,int和long的值都可以通過int類型的字面值來創建
public class HelloWorld {
public static void main(String[] args) {
long val = 26L; //以L結尾的字面值表示long型
int decVal = 26; //默認就是int型
int hexVal = 0x1a; //16進制
int oxVal = 032; //8進制
int binVal = 0b11010; //2進制
System.out.println(oxVal);
}
}
(2) 浮點數字面值
當以F結尾的時候,就表示一個float類型的浮點數,否則就是double類型
浮點數還可以用E或者e表示(科學計數法)
e2表示10的二次方,即100,1.234e2 = 1.234x100
(3) 字符和字符串字面值
字符的字面值放在單引號中
字符串的字面值放在雙引號中
表示轉義,比如需要表示制表符,回車換行,雙引號等就需要用 \t \r \n \" 的方式進行
public class HelloWorld {
public static void main(String[] args) {
String name = "蓋倫";
char a= 'c';
//以下是轉義字符
char tab = '\t'; //制表符
char carriageReturn = '\r'; //回車
char newLine = '\n'; //換行
char doubleQuote = '\"'; //雙引號
char singleQuote = '\''; //單引號
char backslash = '\\'; //反斜杠
}
}
4 類型轉換
(1) 轉換規則
精度高的數據類型就像容量大的杯子,可以放更大的數據
精度低的數據類型就像容量小的杯子,只能放更小的數據
小杯子往大杯子里倒東西,大杯子怎么都放得下
大杯子往小杯子里倒東西,有的時候放的下,有的時候就會有溢出
public class HelloWorld {
public static void main(String[] args) {
char c = 'A';
short s = 80;
//雖然short和char都是16位的,長度是一樣的
//但是彼此之間,依然需要進行強制轉換
c = (char) s;
//直接進行轉換,會出現編譯錯誤
s = c;
}
}
(2) 低精度向高精度轉換
把i的值賦給l,首先l和i彼此的類型是不一樣的,那么能否轉換就取決于彼此的精度
L的精度,比i的精度要高
低精度向高精度轉換,正常
public class HelloWorld {
public static void main(String[] args) {
long l = 50;
int i = 50;
//int比較小,要放進比較大的long,隨便怎么樣,都放的進去
l = i;
}
}
(3) 高精度向低精度轉換
把int類型的數據轉成為byte類型的數據,是有風險的
有的時候是可以轉換的,比如 b = i1 (i1=10);
有的時候不可以轉換 比如 b= i2 (i2=300) 因為放不下了
強制轉換的意思就是,轉是可以轉的,但是不對轉換之后的值負責
public class HelloWorld {
public static void main(String[] args) {
byte b = 5;
int i1 = 10;
int i2 = 300;
b = (byte) i1;
//因為i1的值是在byte范圍之內,所以即便進行強制轉換
//最后得到的值,也是10
System.out.println(b);
//因為i2的值是在byte范圍之外,所以就會按照byte的長度進行截取
//i2的值是300,其對應的二進制數是 100101100
//按照byte的長度8位進行截取后,其值為 00101100 即44
b =(byte) i2;
System.out.println(b);
//查看一個整數對應的二進制的方法:
System.out.println(Integer.toBinaryString(i2));
}
}
5 命名規則
(1) 命名規則
變量命名只能使用字母 數字 $ _
變量第一個字符 只能使用 字母 $ _
變量第一個字符 不能使用數字
_ 是下劃線,不是-減號或者—— 破折號
(2) 使用完整的單詞命名,而非縮寫
在命名的時候,盡量使用完整的單詞進行命名,比如name,moveSpeed,而不是使用縮寫 n,m
(3) 關鍵字列表
(4) 不能只使用關鍵字,但是可以包含關鍵字
(5) 中文也是可以用來命名變量的
6 作用域
(1) 字段,屬性,Field
當一個變量被聲明在類下面,變量就叫做字段或者屬性、成員變量、Field
比如變量i,就是一個屬性
從變量聲明的位置開始,整個類都可以訪問得到,所以其作用域就是從其聲明的位置開始的整個類
public class HelloWorld {
int i = 1;
int j = i; //其他的屬性可以訪問i
public void method1(){
System.out.println(i); //方法1里可以訪問i
}
public void method2(){
System.out.println(i); //方法2里可以訪問i
}
}
(2) 參數
如果一個變量,是聲明在一個方法上的,就叫做參數
參數的作用域即為該方法內的所有代碼
其他方法不能訪問該參數
類里面也不能訪問該參數
public class HelloWorld {
public void method1(int i){ //參數i的作用域即方法method1
System.out.println(i);
}
public void method2(){
System.out.println(i); //method2 不能訪問參數i
}
int j = i; //類里面也不能訪問參數i
}
(3) 局部變量
聲明在方法內的變量,叫做局部變量
作用域在聲明開始的位置,到其所處于的塊結束位置
public class HelloWorld {
public void method1() {
int i = 5; //其作用范圍是從聲明的第4行,到其所處于的塊結束12行位置
System.out.println(i);
{ //子塊
System.out.println(i); //可以訪問i
int j = 6;
System.out.println(j); //可以訪問j
}
System.out.println(j); //不能訪問j,因為其作用域到第10行就結束了
}
}
7 final
當一個變量被final修飾的時候,該變量只有一次賦值的機會
(1) 在聲明的時候賦值
public class HelloWorld {
public void method1() {
final int i = 5;
i = 10; //i在第4行已經被賦值過了,所以這里會出現編譯錯誤
}
}
(2) 在聲明的時候沒有賦值
public class HelloWorld {
public void method1() {
final int i;
i = 10; //i在第4行,只是被聲明,但是沒有被賦值,所以在這里可以進行第一次賦值
i = 11; //i在第6行已經被賦值過了,所以這里會出現編譯錯誤
}
}
(3) final 修飾其他
final 除了修飾變量,還可以修飾類,修飾方法
8 表達式
(1) 以;結尾的一段代碼,即為一個表達式
表達式是由變量、操作符以及方法調用所構成的結構
public class HelloWorld {
public static void main(String[] args) {
//每一句話都是一個表達式
int i = 5;
System.out.println(5);
}
}
(2) ;
public class HelloWorld {
public static void main(String[] args) {
//一個空;也是一個表達式
;
;
;
;
}
}
9 塊
從{開始到對應的}結束,即一個塊
public class HelloWorld { //類對應的塊
public static void main(String[] args) { //主方法對應的塊
System.out.println("abc");
}
}
總結
以上是生活随笔為你收集整理的java第三章_【Java】第三章 变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用Flash制作一个跳动的黄色笑脸小
- 下一篇: 剑侠世界2隐藏地点有哪些(《剑侠情缘网络