今日內(nèi)容介紹
1、變量
2、運(yùn)算符
01變量概述
* A: 什么是變量?
* a: 變量是一個(gè)內(nèi)存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用來裝載水;你家里的大衣柜是容器,用來裝載衣褲;飯盒是容器,用來裝載飯菜。那么變量是裝載什么的呢?答案是數(shù)據(jù)!結(jié)論:變量是內(nèi)存中裝載數(shù)據(jù)的小盒子,你只能用它來存數(shù)據(jù)和取數(shù)據(jù)。
02計(jì)算機(jī)存儲(chǔ)單元
* A: 計(jì)算機(jī)中儲(chǔ)存和運(yùn)算的最小單位是?
* a: 一個(gè)字節(jié),也就是一個(gè)byte.
* win+r--cmd--回車
* b: 常用儲(chǔ)存單位
*1B(字節(jié)) = 8bit
*1KB = 1024B
*1MB = 1024KB
*1GB = 1024MB
*1TB = 1024GB
*1PB = 1024TB
03Java中數(shù)據(jù)類型四類八種
* A: 數(shù)據(jù)類型四類八種
*四類 八種 字節(jié)數(shù) 數(shù)據(jù)表示范圍
*整型 byte 1 -128~127
short 2 -32768~32767
int 4 -2147483648~2147483648
long 8 -263~263-1
*浮點(diǎn)型 float 4 -3.403E38~3.403E38
double 8 -1.798E308~1.798E308
*字符型 char 2 表示一個(gè)字符,如('a','A','0','家')
*布爾型 boolean 1 只有兩個(gè)值true與false
04常量和數(shù)據(jù)類型
* A:常量的定義
* a: 整形常量默認(rèn)是int類型
* b: 小數(shù)常量默認(rèn)是double類型
* c: 定義長整形數(shù)據(jù)如果值超過int取值范圍后面要+"L"
* d: 定義float類型的數(shù)據(jù)后面要+"f" 否則默認(rèn)是double
05變量創(chuàng)建的三要素
* A: 定義變量的語法格式:
數(shù)據(jù)類型 變量名 = 變量值;
* int a = 100;
* B:代碼:
public class Variable {
public static void main(String[] args) {
int a = 10;
double b = 3.14;
char c = 'z';
String s = "i love java";
a = 20;
System.out.println(a);
}
}
06定義所有的基本數(shù)據(jù)類型變量
* A: 案例演示
* a: 八種基本類型數(shù)據(jù)的創(chuàng)建
07定義字符串變量
* A:案例演示
* 創(chuàng)建字符串?dāng)?shù)據(jù)類型變量
* String 是引用數(shù)據(jù)類型
08變量定義使用注意事項(xiàng)
* A:變量使用的注意事項(xiàng)
* a: 變量定義后可以不賦值,使用時(shí)再賦值。不賦值不能使用。
public static void main(String[] args) {
int x;
x = 20; //為x賦值20
System.out.println(x);//讀取x變量中的值,再打印
}
?
* c: 變量使用時(shí)有作用域的限制。
public static void main(String[] args) {
int x = 20;
{
int y = 20;
}
System.out.println(x);//讀取x變量中的值,再打印
System.out.println(y);//讀取y變量中的值失敗,失敗原因,找不到y(tǒng)變量,因?yàn)槌隽藋變量作用范圍,所以不能使用y變量
}
?
?
09數(shù)據(jù)類型轉(zhuǎn)換_自動(dòng)轉(zhuǎn)換
* A: ? 自動(dòng)類型轉(zhuǎn)換
* a:表示范圍小的數(shù)據(jù)類型轉(zhuǎn)換成范圍大的數(shù)據(jù)類型,這種方式稱為自動(dòng)類型轉(zhuǎn)換
自動(dòng)類型轉(zhuǎn)換格式:
范圍大的數(shù)據(jù)類型 變量 = 范圍小的數(shù)據(jù)類型值;
如:
double d = 1000;
或
int i = 100;
double d2 = i;
10數(shù)據(jù)類型轉(zhuǎn)換_強(qiáng)制轉(zhuǎn)換
* A: 強(qiáng)制類型轉(zhuǎn)換
*a: 表示范圍大的數(shù)據(jù)類型轉(zhuǎn)換成范圍小的數(shù)據(jù)類型,這種方式稱為強(qiáng)制類型轉(zhuǎn)換
*b: 強(qiáng)制類型轉(zhuǎn)換格式:
范圍小的數(shù)據(jù)類型 變量 = (范圍小的數(shù)據(jù)類型) 范圍大的數(shù)據(jù)類型值;
如:
int i = (int)6.718; //i的值為6
或
double d = 3.14;
int i2 = (int)d; //i2的值為3
11算數(shù)運(yùn)算符_1
* A: 常見操作
運(yùn)算符 運(yùn)算規(guī)則 范例 結(jié)果
+ 正號(hào) +3 3
+ 加 2+3 5
+ 連接字符串 “中”+“國” “中國”
- 負(fù)號(hào) int a=3;-a -3
- 減 3-1 2
* 乘 2*3 6
/ 除 5/2 2
% 取模 5/2 1
++ 自增 int a=1;a++/++a 2
-- 自減 int b=3;a--/--a 2
* B: 注意事項(xiàng)
*a:加法運(yùn)算符在連接字符串時(shí)要注意,只有直接與字符串相加才會(huì)轉(zhuǎn)成字符串。
*b:除法“/”當(dāng)兩邊為整數(shù)時(shí),取整數(shù)部分,舍余數(shù)。當(dāng)其中一邊為浮點(diǎn)型時(shí),按正常規(guī)則相除。
*c:“%”為整除取余符號(hào),小數(shù)取余沒有意義。結(jié)果符號(hào)與被取余符號(hào)相同。
*d:整數(shù)做被除數(shù),0不能做除數(shù),否則報(bào)錯(cuò)。
*e:小數(shù)做被除數(shù),整除0結(jié)果為Infinity,對0取模結(jié)果為NaN
* C:代碼演示
public class OperatorDemo1 {
public static void main(String[] args) {
/*
* 常量使用算數(shù)運(yùn)算符
*/
System.out.println(10+20);
/*
* 變量使用算數(shù)運(yùn)算符
*/
int x = 10;
int y = 20;
//"+"作為加法運(yùn)算使用
int z = x + y;
//"+"作為連接字符串使用
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
}
}
12算數(shù)運(yùn)算符_2
* A:算數(shù)運(yùn)算符++、--的使用
* a: ++運(yùn)算符,會(huì)在原有值的基礎(chǔ)上自增1
* b: --運(yùn)算符,會(huì)在原有值的基礎(chǔ)上自減1。
* B:++ -- 位置的使用
* a:++,--運(yùn)算符后置時(shí),先使用變量a原有值參與運(yùn)算操作,運(yùn)算操作完成后,變量a的值自增1或者自減1;
* b:++,--運(yùn)算符前置時(shí),先將變量a的值自增1或者自減1,然后使用更新后的新值參與運(yùn)算操作。
13賦值運(yùn)算符
* A: 賦值運(yùn)算符的使用
運(yùn)算符 運(yùn)算規(guī)則 范例 結(jié)果
= 賦值 int a=2 2
+= 加后賦值 int a=2,a+=2 4
-= 減后賦值 int a=2,a-=2 0
*= 乘后賦值 int a=2,a*=2 4
/= 整除后賦值 int a=2,a/=2 1
%= 取模后賦值 int a=2,a%=2 0
* B:案例演示
* 賦值運(yùn)算符
* +=, -=, *=, /=, %= :
* 上面的運(yùn)算符作用:將等號(hào)左右兩邊計(jì)算,會(huì)將結(jié)果自動(dòng)強(qiáng)轉(zhuǎn)成等號(hào)左邊的數(shù)據(jù)類型,再賦值給等號(hào)左邊的
* 注意:賦值運(yùn)算符左邊必須是變量
public class OperatorDemo2 {
public static void main(String[] args) {
byte x = 10;
x += 20;// 相當(dāng)于 x = (byte)(x+20);
System.out.println(x);
}
}
======================第四節(jié)課開始=========
14比較運(yùn)算符
* A:比較運(yùn)算符的使用
運(yùn)算符 運(yùn)算規(guī)則 范例 結(jié)果
== 相等于 4==3 False
!= 不等于 4!=3 True
< 小于 4<3 False
> 大于 4>3 True
<= 小于等于 4<=3 False
>= 大于等于 4>=3 True
15邏輯運(yùn)算符
* A: 邏輯運(yùn)算符的使用
運(yùn)算符 運(yùn)算規(guī)則 范例 結(jié)果
& 與 false&true False
| 或 false|true True
^ 異或 true^flase True
! 非 !true Flase
&& 短路與 false&&true False
|| 短路或 false||true True
規(guī)律小結(jié):
短路與&&:參與運(yùn)算的兩邊數(shù)據(jù),有false,則運(yùn)算結(jié)果為false;
? 短路或||:參與運(yùn)算的兩邊數(shù)據(jù),有true,則運(yùn)算結(jié)果為true;
? 邏輯非! : 參與運(yùn)算的數(shù)據(jù),原先是true則變成false,原先是false則變成true。
16三元運(yùn)算符
* A: 格式:
(條件表達(dá)式)?表達(dá)式1:表達(dá)式2;
* B: 代碼案例
方式一:
System.out.println( 3>2 ? “正確” : “錯(cuò)誤” );
// 三元運(yùn)算符運(yùn)算后的結(jié)果為true,運(yùn)算結(jié)果為表達(dá)式1的值“正確”,然后將結(jié)果“正確”,在控制臺(tái)輸出打印
方式二:
int a = 3;
int b = 4;
String result = (a==b) ? “相等” : “不相等”;
//三元運(yùn)算符運(yùn)算后的結(jié)果為false,運(yùn)算結(jié)果為表達(dá)式2的值“不相等”,然后將結(jié)果賦值給了變量result
方式三:
int n = (3>2 && 4>6) ? 100 : 200;
//三元運(yùn)算符運(yùn)算后的結(jié)果為false,運(yùn)算結(jié)果為表達(dá)式2的值200,然后將結(jié)果200賦值給了變量n
17運(yùn)算符優(yōu)先級(jí)
優(yōu)先級(jí) 描述 運(yùn)算符
1 括號(hào) ()、[]
2 正負(fù)號(hào) +、-
3 自增自減,非 ++、--、!
4 乘除,取余 *、/、%
5 加減 +、-
6 移位運(yùn)算 <<、>>、>>>
7 大小關(guān)系 >、>=、<、<=
8 相等關(guān)系 ==、!=
9 按位與 &
10 按位異或 ^
11 按位或 |
12 邏輯與 &&
13 邏輯或 ||
14 條件運(yùn)算 ?:
15 賦值運(yùn)算 =、+=、-=、*=、/=、%=
16 位賦值運(yùn)算 &=、|=、<<=、>>=、>>>=
18 商場庫存清單案例
A: 案例分析.
* a:觀察清單后,可將清單分解為三個(gè)部分(清單頂部、清單中部、清單底部)
* b:清單頂部為固定的數(shù)據(jù),直接打印即可
* c:清單中部為商品,為變化的數(shù)據(jù),需要記錄商品信息后,打印
經(jīng)過觀察,我們確定一項(xiàng)商品應(yīng)該有如下幾個(gè)屬性:
品牌型號(hào): 即商品名稱,String型
尺寸:物品大小,double型
價(jià)格:物品單價(jià),double型
配置:這一項(xiàng)為每種商品的配置信息,String型
庫存數(shù):這一項(xiàng)為每種商品的庫存?zhèn)€數(shù),int型
* d:清單底部包含了統(tǒng)計(jì)操作,需經(jīng)過計(jì)算后,打印
我們發(fā)現(xiàn)兩個(gè)單獨(dú)的可變化量
總庫存數(shù):所有商品總個(gè)數(shù),int型
庫存商品總金額:所有商品金額,double型
B: 案例代碼實(shí)現(xiàn)
//步驟一: 創(chuàng)建Demo01庫存清單.java文件,編寫main主方法
public class Demo01庫存清單 {
public static void main(String[] args) {
}
}
//步驟二: 記錄每種庫存商品信息
//蘋果筆記本電腦
String macBrand = "MacBookAir";
double macSize = 13.3;
double macPrice = 6988.88;
int macCount = 5;
//聯(lián)想Thinkpad筆記本電腦
String thinkpadBrand = "ThinkpadT450";
double thinkpadSize = 14.0;
double thinkpadPrice = 5999.99;
int thinkpadCount = 10;
//華碩ASUS筆記本電腦
String ASUSBrand = "ASUS-FL5800";
double ASUSSize = 15.6;
double ASUSPrice = 4999.50;
int ASUSCount = 18;
//步驟三: 統(tǒng)計(jì)庫存總個(gè)數(shù)、庫存總金額
int totalCount = macCount + thinkpadCount + ASUSCount;
double totalMoney = (macCount * macPrice) + (thinkpadCount * thinkpadPrice) + (ASUSCount * ASUSPrice);
//步驟四: 列表頂部
System.out.println("------------------------------商城庫存清單-----------------------------");
System.out.println("品牌型號(hào) 尺寸 價(jià)格 庫存數(shù)");
? 步驟四:打印庫存清單中部信息
//列表中部
System.out.println(macBrand+" "+macSize+" "+macPrice+" "+macCount);
System.out.println(thinkpadBrand+" "+thinkpadSize+" "+thinkpadPrice+" "+thinkpadCount);
System.out.println(ASUSBrand+" "+ASUSSize+" "+ASUSPrice+" "ASUSCount);
? 打印庫存清單底部信息
//列表底部
System.out.println("-----------------------------------------------------------------------");
System.out.println("總庫存數(shù):"+totalCount);
System.out.println("庫存商品總金額:"+totalMoney);