Transcript JAVA

JAVA 程式設計
資訊管理系 - 網路組
如何學好JAVA
•
•
•
•
賞心悅目
由大到小
用程式語言模擬你的思考
大小寫區分
開發環境
• JAVA SDK 7
http://www.oracle.com/technetwork/java/javase/downloads/index.html
• NetBeans 或 Eclipse
NetBeans https://netbeans.org/downloads/index.html
Eclipse
http://www.eclipse.org/downloads/
第一隻程式
• public class Welcome {
• public static void main(String agrs[]) {
•
System.out.println("Hello JAVA");
• }
• }
print差別
• System.out.print("Hello JAVA");
• System.out.printf("Hello JAVA");
• System.out.println("Hello JAVA");
print差別
• print 和 printf 差別在於解譯特殊符號
• print 和 println 差別在於換行
printf
•
•
•
•
•
•
•
•
%c
%d
%f
%o
%s
%u
%x
%%
一個字元(char)
整數(int, long)
浮點數(float, double)
八進制的數字
字串(String)
不帶正負號的整數
十六進制的整數
%
資料型態
Primitive Types / simple type
範圍
中文
byte (1byte)
-128 ~ 127
位元組
short (2bytes)
-32768 ~ 32767
短整數
int (4bytes)
-2147483648 ~ 2147483647
整數
long (8bytes)
-9223372036854775808 ~
9223372036854775807
長整數
float (4bytes)
+-3.4028237*10+38 ~ +1.30239846*10-45
浮點數
double (8bytes)
+1.76769313486231570*10+308 ~
4.94065645841246544*10-324
倍準數
char (2bytes)
Unicode characters (含中文)
字元
boolean (1bytes)
true或false
布林函數
String
字串
字串
輸入資料
• Scanner input = new Scanner(System.in);
• int a = input.nextInt();
• System.out.println(a);
運算子
運算子
功能
範例
+
加
a+b
-
減
a-b
*
乘
a*b
/
除
a/b
%
取餘數
a%b
猜猜看c是多少
• int a = 10;
• int b = 3;
• int c = a/b;
猜猜看c是多少
• int a = 10;
• int b = 3;
• float c = a/b;
正確應該是
• int a = 10;
• int b = 3;
• float c = (float)a/b;
相等性及關係運算子
運算子
功能
範例
==
相等
a == b
!=
不相等
a != b
>
大於
a >= b
>=
大於等於
a >= b
<
小於
a<b
<=
小於等於
a <= b
條件運算子
運算子
功能
範例
&&
邏輯且(And)
a && b
||
邏輯或(or)
a || b
?:
條件選擇(if)
a?b:c
位元運算子
運算子
功能
範例
~
取補數
~a
<<
保留正負號向左位移
a << b
>>
保留正負號向右位移
a >> b
>>>
無正負號向右位移
a >>> b
&
位元且
a&b
^
位元互斥或
a^b
|
位元包含或
a|b
if 條件式一
• if(條件式)
陳述句一;
else
陳述句二;
if 條件式二
• if(條件式) {
陳述句一;
陳述句二;
}
else {
陳述句三;
陳述句四;
}
猜猜看會顯示什麼
• int a =123;
•
if(a==1)
•
System.out.print("1");
•
System.out.println("2");
if 條件式三
• if(條件式一)
陳述一;
else if(條件式二)
陳述句二;
else if(條件式三)
陳述句三;
else
陳述句四;
switch
• switch(變數名稱或運算式) {
case 符合數字或字元:
陳述句一;
break;
case 符合數字或字元:
陳述句二;
break;
default:
陳述三;
}
switch
• JAVA 7 之後支援String 比較
for迴圈
•
•
•
•
•
for (起始值; 條件式; 更新值) {
指令一;
指令二;
指令三;
}
猜猜看
• float f = 3.14;
正確寫法
•
•
•
•
float f = 3.14f;
或是
float f = (float)3.14;
推薦用第一個方式
猜猜看
• int a= 10;
• int b = 3;
• System.out.println(a/b);
猜猜看
• int a= 10;
• double b = 3;
• System.out.println(a/b);
作業解說
•
•
•
•
•
•
•
Scanner input = new Scanner(System.in);
System.out.println("請輸入直徑");
double r = input.nextDouble(); //取得半徑
double ans1 = 2 * r;
//直徑
double ans2 = 2 * Math.PI * r; //周長
double ans3 = Math.PI * r * r; //面積
System.out.printf("直徑=%f 周長=%f 面積=%f\n", ans1, ans2, ans3);
作業解說2
•
•
•
•
•
•
•
•
•
•
Scanner input = new Scanner(System.in);
System.out.println("請輸入五位的數字");
int n = input.nextInt();
if(n>=10000 && n<=99999) {
for(int i=4;i>=0;i--) {
System.out.printf("%d
",(int)(n/Math.pow(10,i))%10);
}
} else {
System.out.println("你輸入的不是五位數字");
}
作業解說2偷吃步
• Scanner input = new Scanner(System.in);
•
System.out.println("請輸入五位的數字");
•
String n = input.nextLine();
•
if(n.length()==5) {
•
for(int i=1;i<=5;i++) {
•
System.out.printf("%s ",n.substring(i-1,i));
•
}
•
} else {
•
System.out.println("你輸入的不是五位數字");
•
}
Class類別(物件)
• public class Cat {
• String name = "kitty";
• String sound = "meow";
• int kg = 50;
• }
副程式(動作、設定、取得)
• public void getName() {
• }
• public String setName() {
• }
區域變數概念
建構子(初始化)
• public class Cat {
•
String name = "kitty";
•
String sound = "meow";
•
int kg = 50;
•
•
public Cat(String name) {
•
this.name = name;
•
}
• }
物件中的物件
• public class Cat {
• String name = "kitty";
• String sound = "meow";
• int kg = 50;
• Eye lefteye = new Eye();
• Eye righteye = new Eye();
• }