今日內(nèi)容介紹
1、變量
2、運算符
01變量概述
* A: 什么是變量?
* a: 變量是一個內(nèi)存中的小盒子(小容器)欢搜,容器是什么呢蔫?生活中也有很多容器褥影,例如水杯是容器灼捂,用來裝載水离例;你家里的大衣柜是容器,用來裝載衣褲悉稠;飯盒是容器宫蛆,用來裝載飯菜。那么變量是裝載什么的呢的猛?答案是數(shù)據(jù)耀盗!結(jié)論:變量是內(nèi)存中裝載數(shù)據(jù)的小盒子,你只能用它來存數(shù)據(jù)和取數(shù)據(jù)卦尊。
02計算機(jī)存儲單元
* A: 計算機(jī)中儲存和運算的最小單位是?
* a: 一個字節(jié),也就是一個byte.
* win+r--cmd--回車
* b: 常用儲存單位
*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
*浮點型 float 4 -3.403E38~3.403E38
double 8 -1.798E308~1.798E308
*字符型 char 2 表示一個字符叛拷,如('a','A'岂却,'0'胡诗,'家')
*布爾型 boolean 1 只有兩個值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變量定義使用注意事項
* A:變量使用的注意事項
* a: 變量定義后可以不賦值,使用時再賦值淌友。不賦值不能使用煌恢。
public static void main(String[] args) {
int x;
x = 20; //為x賦值20
System.out.println(x);//讀取x變量中的值,再打印
}
?
* c: 變量使用時有作用域的限制震庭。
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變量作用范圍,所以不能使用y變量
}
?
?
09數(shù)據(jù)類型轉(zhuǎn)換_自動轉(zhuǎn)換
* A: ? 自動類型轉(zhuǎn)換
* a:表示范圍小的數(shù)據(jù)類型轉(zhuǎn)換成范圍大的數(shù)據(jù)類型拨拓,這種方式稱為自動類型轉(zhuǎn)換
自動類型轉(zhuǎn)換格式:
范圍大的數(shù)據(jù)類型 變量 = 范圍小的數(shù)據(jù)類型值肴颊;
如:
double d = 1000;
或
int i = 100;
double d2 = i;
10數(shù)據(jù)類型轉(zhuǎn)換_強制轉(zhuǎn)換
* A: 強制類型轉(zhuǎn)換
*a: 表示范圍大的數(shù)據(jù)類型轉(zhuǎn)換成范圍小的數(shù)據(jù)類型,這種方式稱為強制類型轉(zhuǎn)換
*b: 強制類型轉(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ù)運算符_1
* A: 常見操作
運算符 運算規(guī)則 范例 結(jié)果
+ 正號 +3 3
+ 加 2+3 5
+ 連接字符串 “中”+“國” “中國”
- 負(fù)號 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: 注意事項
*a:加法運算符在連接字符串時要注意渣磷,只有直接與字符串相加才會轉(zhuǎn)成字符串婿着。
*b:除法“/”當(dāng)兩邊為整數(shù)時,取整數(shù)部分醋界,舍余數(shù)竟宋。當(dāng)其中一邊為浮點型時,按正常規(guī)則相除形纺。
*c:“%”為整除取余符號丘侠,小數(shù)取余沒有意義。結(jié)果符號與被取余符號相同逐样。
*d:整數(shù)做被除數(shù)蜗字,0不能做除數(shù)打肝,否則報錯。
*e:小數(shù)做被除數(shù)挪捕,整除0結(jié)果為Infinity闯睹,對0取模結(jié)果為NaN
* C:代碼演示
public class OperatorDemo1 {
public static void main(String[] args) {
/*
* 常量使用算數(shù)運算符
*/
System.out.println(10+20);
/*
* 變量使用算數(shù)運算符
*/
int x = 10;
int y = 20;
//"+"作為加法運算使用
int z = x + y;
//"+"作為連接字符串使用
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
}
}
12算數(shù)運算符_2
* A:算數(shù)運算符++、--的使用
* a: ++運算符担神,會在原有值的基礎(chǔ)上自增1
* b: --運算符楼吃,會在原有值的基礎(chǔ)上自減1。
* B:++ -- 位置的使用
* a:++,--運算符后置時妄讯,先使用變量a原有值參與運算操作孩锡,運算操作完成后,變量a的值自增1或者自減1亥贸;
* b:++躬窜,--運算符前置時,先將變量a的值自增1或者自減1炕置,然后使用更新后的新值參與運算操作荣挨。
13賦值運算符
* A: 賦值運算符的使用
運算符 運算規(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:案例演示
* 賦值運算符
* +=, -=, *=, /=, %= :
* 上面的運算符作用:將等號左右兩邊計算口锭,會將結(jié)果自動強轉(zhuǎn)成等號左邊的數(shù)據(jù)類型,再賦值給等號左邊的
* 注意:賦值運算符左邊必須是變量
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比較運算符
* A:比較運算符的使用
運算符 運算規(guī)則 范例 結(jié)果
== 相等于 4==3 False
!= 不等于 4!=3 True
< 小于 4<3 False
> 大于 4>3 True
<= 小于等于 4<=3 False
>= 大于等于 4>=3 True
15邏輯運算符
* A: 邏輯運算符的使用
運算符 運算規(guī)則 范例 結(jié)果
& 與 false&true False
| 或 false|true True
^ 異或 true^flase True
! 非 !true Flase
&& 短路與 false&&true False
|| 短路或 false||true True
規(guī)律小結(jié):
短路與&&:參與運算的兩邊數(shù)據(jù),有false介杆,則運算結(jié)果為false鹃操;
? 短路或||:參與運算的兩邊數(shù)據(jù),有true春哨,則運算結(jié)果為true荆隘;
? 邏輯非! : 參與運算的數(shù)據(jù),原先是true則變成false赴背,原先是false則變成true椰拒。
16三元運算符
* A: 格式:
(條件表達(dá)式)?表達(dá)式1:表達(dá)式2癞尚;
* B: 代碼案例
方式一:
System.out.println( 3>2 ? “正確” : “錯誤” );
// 三元運算符運算后的結(jié)果為true耸三,運算結(jié)果為表達(dá)式1的值“正確”,然后將結(jié)果“正確”浇揩,在控制臺輸出打印
方式二:
int a = 3;
int b = 4;
String result = (a==b) ? “相等” : “不相等”;
//三元運算符運算后的結(jié)果為false,運算結(jié)果為表達(dá)式2的值“不相等”憨颠,然后將結(jié)果賦值給了變量result
方式三:
int n = (3>2 && 4>6) ? 100 : 200;
//三元運算符運算后的結(jié)果為false胳徽,運算結(jié)果為表達(dá)式2的值200,然后將結(jié)果200賦值給了變量n
17運算符優(yōu)先級
優(yōu)先級 描述 運算符
1 括號 ()积锅、[]
2 正負(fù)號 +、-
3 自增自減养盗,非 ++缚陷、--、!
4 乘除往核,取余 *箫爷、/、%
5 加減 +聂儒、-
6 移位運算 <<虎锚、>>、>>>
7 大小關(guān)系 >衩婚、>=窜护、<、<=
8 相等關(guān)系 ==非春、!=
9 按位與 &
10 按位異或 ^
11 按位或 |
12 邏輯與 &&
13 邏輯或 ||
14 條件運算 ?:
15 賦值運算 =柱徙、+=、-=奇昙、*=护侮、/=、%=
16 位賦值運算 &=储耐、|=概行、<<=、>>=弧岳、>>>=
18 商場庫存清單案例
A: 案例分析.
* a:觀察清單后凳忙,可將清單分解為三個部分(清單頂部、清單中部禽炬、清單底部)
* b:清單頂部為固定的數(shù)據(jù)涧卵,直接打印即可
* c:清單中部為商品,為變化的數(shù)據(jù)腹尖,需要記錄商品信息后柳恐,打印
經(jīng)過觀察,我們確定一項商品應(yīng)該有如下幾個屬性:
品牌型號: 即商品名稱热幔,String型
尺寸:物品大小乐设,double型
價格:物品單價,double型
配置:這一項為每種商品的配置信息绎巨,String型
庫存數(shù):這一項為每種商品的庫存?zhèn)€數(shù)近尚,int型
* d:清單底部包含了統(tǒng)計操作,需經(jīng)過計算后场勤,打印
我們發(fā)現(xiàn)兩個單獨的可變化量
總庫存數(shù):所有商品總個數(shù)戈锻,int型
庫存商品總金額:所有商品金額歼跟,double型
B: 案例代碼實現(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)計庫存總個數(shù)格遭、庫存總金額
int totalCount = macCount + thinkpadCount + ASUSCount;
double totalMoney = (macCount * macPrice) + (thinkpadCount * thinkpadPrice) + (ASUSCount * ASUSPrice);
//步驟四: 列表頂部
System.out.println("------------------------------商城庫存清單-----------------------------");
System.out.println("品牌型號 尺寸 價格 庫存數(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);