A !B - Jutarporn Intasara
Download
Report
Transcript A !B - Jutarporn Intasara
ความรู ้เบือ
้ งต ้นเกีย
่ วกับ
ภาษาจาวา
2
แนะนาภาษาจาวา
ชุดพัฒนาภาษาจาวา (JDK)
3
ชุ ด พั ฒ น า ภ า ษ า จ า ว า ( Java
Development Kit - JDK) ประกอบด ้วย
1.
จาวาคอมไพเลอร์ (javac.exe)
ซอร์
สโค ้ด
(ไฟล์
.java)
คอมไพเลอร์
(โปรแกรม
javac)
Byte code
(ไฟล์
.class)
ชุดพัฒนาภาษาจาวา (ต่อ)
4
ชุดพัฒนาภาษาจาวา (ต่อ)
2.
สภาพแวดลอ้ มการรนั โปรแกรมจาวา (Java Runtime
Environment - JRE) (java.exe)
Byte code
(ไฟล ์ .class)
สภาพแวดล ้อม
สาหร ับร ัน
โปรแกรมจาวา
(โปรแกรม
java)
ผลการทางาน
5
โ ป ร แ ก ร ม ที่ ใ ช ้เ ขี ย น ต ้น ฉ บั บ
โปรแกรม
Notepad
มาพร ้อมกับ
Windows
Netbeans
http://www.netbeans.org/
Eclipse
http://www.eclipse.org/
6
้ ย นต ้นฉบั บ โปรแกรม
โปรแกรมที่ใ ช เขี
Notepad
7
้ ย นต ้นฉบั บ โปรแกรม
โปรแกรมที่ใ ช เขี
Netbeans
8
โ ป ร แ ก ร ม ที่ ใ ช ้เ ขี ย น ต ้น ฉ บั บ
โปรแกรมEclipse
โปรแกรม HelloWorld
9
public class HelloWorld
{
}
โปรแกรม HelloWorld (ต่อ)
10
public class HelloWorld
{
public static void main(String[] args)
{
}
}
โปรแกรม HelloWorld (ต่อ)
11
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello,
World!");
} //end method main
} //end class HelloWorld
คาอธิบาย (Comment) ในโปรแกรม
12
คอมเมนต์บรรทัดเดียว
//
print the word hello
คอมเมนต์ทเี่ ป็ นย่อหน ้า
/*
This program will print
the word hello
*/
13
ตัวแปรและชนิดข ้อมูล
Identifier
14
่ ตั
่ งขึ
้ นในภาษาจาวา
้
่
คือชือที
ซึงอาจเป็
น
่
ชือของคลาส
(Class)
่
ชือของตั
วแปร (Variable)
่
ชือของเมธอด
(Method)
่
ชือของแพ็
กเกจ (Package) หรือ
่
นเตอร ์เฟส (Interface)
ชือของอิ
Identifier (ต่อ)
15
้ อ่ Identifier
กฎการตังชื
้ น้ ดว้ ยอักขระ
จะต ้องขึนต
่
A-Z, a-z,
เครืองหมาย
_
่
(Underscore) หรือเครืองหมาย
$ เท่านั้น
ประกอบไปด ว
้ ยตัว อัก ขระมากกว่ า หนึ่ งตัว ตัว อัก ขระ
หลังจากตัวแรกนั้ นจะตอ้ งเป็ นตัวอักขระ A-Z, a-z,
่
่
เครืองหมาย
_ (Underscore) เครืองหมาย
$ หรือเป็ น
ตัวเลข 0 ถึง 9 เท่านั้น
ต ้องไม่ตรงกับคีย ์เวิร ์ด (Reserve Word/Keyword) และ
ห ้ามประกอบด ้วยช่องว่าง
่ Identifier มีคณ
ชือ
ุ สมบัติ case-sensitive
เช่น
Hello ≠ hello ≠ hELLo
คาสงวน (Reserve Word/Keyword)
16
abstract
default
if
package
throw
boolean
do
implements private
throws
break
byte
double
else
import
inner
protected
public
transient
try
byvalue
extends
instanceof
rest
var
case
cast
catch
char
class
final
finally
float
for
future
int
interface
long
native
new
const
generic
operator
continue
goto
outer
return
void
short
volatile
static
while
super
switch
synchronize
d
this
ตัวอย่าง Identifier
17
ถูกต ้อง
ไม่ถก
ู ต ้อง
MyVariable
_MyVariable
$x
This_is_a_variable
My Variable
9pns
a+c
Hello'World
public
้ อ่ Identifier
Identifierหลักการตังชื
18
่
ชือคลาส
้ น
จะขึนต
้ ด ว้ ยตัว อัก ษรพิม พ ใ์ หญ่ แ ล ว้ ตามด ว้ ยตัว อัก ษร
พิมพ ์เล็กหรือตัวเลข โดยจะใช ้ตัวอักษรพิมพ ์ใหญ่ เฉพาะ
่
อักษรนาของแต่ละคาทีตามมาในชื
อ่
ควรเป็ นคานาม
เช่น
Sample
HelloWorld
Student
GraduateStudent
19
้ อ่ Identifier
Identifierหลักการตังชื
(ต่อ)
่ วแปร
ชือตั
้ น
จะขึนต
้ ดว้ ยตัวอักษรพิมพ ์เล็ ก
โดยจะใช ้ตัวอักษรพิมพ ์
่
ใหญ่เฉพาะอักษรนาของแต่ละคาทีตามมาในชื
อ่
่ นๆ
้
ควรเป็ นคานามหรือเป็ นชือสั
เช่น
stdName
id
gpa
20
้ อ่ Identifier
Identifierหลักการตังชื
(ต่อ)
่
ชือเมธอด
้ อตั
่ วแปร
ใช ้หลักการเดียวกับการตังชื
แต่ควรเป็ นคากริยา
เช่น getName, setName หรือ showDetails เป็ นต ้น
่ าคงที่
ชือค่
จะใช ต
้ ัว อัก ษรพิ ม พ ใ์ หญ่ ท ้ังหมดและจะแยกค าโดยใช ้
่
เครืองหมาย
_ (underscore)
ควรเป็ นคานาม
เช่น MIN_GPA เป็ นต ้น
ข ้อมูลและตัวแปร
21
ข ้อมูล (Data)
ตัวเลข หรือรูปแบบอืน
่ ๆ ซงึ่ ใช ้
ในการประมวลผลในโปรแกรม
อยูใ
่ นรูปของข ้อความ
ตัวแปร (Variable)
ื่ หรือ สั ญ ลั ก ณ์ ท ี่ก าหนดขึน
ชอ
้ เพื่อ อ ้างอิง ต าแหน่ ง
้ บข ้อมูล
หน่วยความจาทีใ่ ชเก็
ื่ ตัวแปรควรตัง้ ให ้สอ
ื่ ความหมาย
การตัง
้ ชอ
ข ้อมูลและตัวแปร (ต่อ)
22
การประกาศตัวแปร (Declaration)
ื่ และชนิดของ
คือการสร ้างตัวแปรโดยกาหนดชอ
ข ้อมูลให ้กับตัวแปร
้
ต ้องมีการประกาศตัวแปรก่อนการใชงานทุ
กครัง้
อาจกาหนดค่
าเริม
่ ต ้นให
้กับตัวแปรได[=
้
data_type
var_name
Value];
โดยที่ data_type เป็ นชนิดข ้อมูลของตัวแปร
ื่ ตัวแปรทีต
var_name เป็ นชอ
่ งั ้ ตามกฎการ
ื่
ตัง้ ชอ
Value
เป็ นค่าเริม
่ ต ้นของตัวแปร
ข ้อมูลและตัวแปร (ต่อ)
23
ตัวอย่างการประกาศตัวแปร
String
name;
ื่ เป็ นชนิด
ประกาศตัวแปร name
แทนข ้อมูลชอ
ข ้อความ
float score;
ประกาศตัวแปร score
แทนข ้อมูลเกรด เป็ นชนิด
เลขทศนิยม
char grade;
ประกาศตัวแปร grade แทนข ้อมูลเกรด เป็ นชนิด
ตัวอักขระ
ข ้อมูลและตัวแปร (ต่อ)
24
ตัวอย่างการประกาศตัวแปรและกาหนดค่า
เริม
่ ต ้นให ้ตัวแปร
String
name = “Jutarporn”;
ประกาศตัวแปร name มีคา
่ เริม
่ ต ้นเท่ากับ Jutarporn
float score = 20.0f;
ประกาศตัวแปร score มีคา
่ เริม
่ ต ้นเท่ากับ 20.0
char grade = ‘A’;
ประกาศตัวแปร grade มีคา
่ เริม
่ ต ้นเท่ากับ A
ข ้อมูลและตัวแปร (ต่อ)
25
public class VariableAssignDemo {
public static void main(String args[]) {
int x,y;
boolean b1;
float z = 3.414f; /* The program will not be
compiled successfully if
a character f is missing */
double w;
x = 5;
y = 4;
b1 = (x > y);
w = x * 3.2;
System.out.println("x = " + x + " y = " + y);
System.out.println("b1 = " + b1);
System.out.println("z = " + z + " w = " + w);
}
}
x = 5 y = 4
b1 = true
z = 3.414 w = 16.0
26
ชนิดข ้อมูลพืน
้ ฐาน (Primitive Data
Type)
คือ ชนิด ข ้อมูลที่เป็ นพื้นฐานของภาษาไม่
สามารถแบ่งย่อยได ้อีก
แบ่งออกเป็ น 4 กลุม
่
ข ้อมูลชนิดจานวนเต็ม
(Integer)
ข ้อมูลชนิดทศนิยม
ข ้อมูลชนิดตัวอักขระ
ข ้อมูลชนิดค่าความจริง
(Boolean)
27
ขนาดและช ่ ว งค่ า ของชนิ ด ข อ้ มู ล
แบบพืน
้ ฐาน
ชนิ ดข้อมู ล
ขนาด (บิต)
ช่วงค่า
boolean
char
byte
short
int
1
16
8
16
32
true หรือ false
'\u0000' ถึง '\uFFFF'
-128 ถึง +127
-32,768 ถึง +32,767
-231 ถึง +231-1
long
64
-263 ถึง +263-1
float
32
-3.40E+38 ถึง +3.40E+38
double
64
-1.80E+308 ถึง +1.80E+308
28
ช นิ ด ข อ
้ มู ล พื้ น ฐ า น ข อ
้ มู ล ช นิ ด
จานวนเต็ม
เป็ นข ้อมูลตัวเลขทีไ่ ม่มค
ี า่ เป็ นทศนิยม
มี 4 ชนิด
byte
shot
int
long
่
่ นชนิ ด long
ข ้อมูลค่าคงทีของเลขจ
านวนเต็มทีเป็
จะมีตวั อักษร l หรือ L ต่อท ้าย
เช่น 234L
หมายถึง การกาหนดค่า 1234
ให ้กับตัวแปรชนิ ด long
29
ช นิ ด ข อ
้ มู ล พื้ น ฐ า น ข อ
้ มู ล ช นิ ด
จานวนเต็ม (ต่อ)
ข ้อมูลค่าคงทีส
่ ามารถเขียนได ้ 3 แบบ
ิ คือการเขียนเลขจานวนเต็มทั่วไป
เลขฐานสบ
่
เชน
-121 และ 75362 เป็ นต ้น
เลขฐานแปดคือ การเขีย นเลขจ านวนเต็ ม ที่ข น
ึ้ ต น
้
ด ้วยเลข 0 แล ้วตามด ้วยตัวเลขตัง้ แต่ 0
่
เชน
ถึง 7
ิ )
016 (มีคา่ เท่ากับ 14 ในเลขฐานสบ
ิ หกคือ การเขีย นเลขจ านวนเต็ ม ทีข
เลขฐานส บ
่ น
ึ้ ต ้น
ด ้วย 0x หรือ 0X แล ้วตามด ้วยตัวเลขตัง้ แต่ 0 ถึง
9 หรือตัวอักษร A ถึง F
่
เชน
ิ )
0xA2 (มีคา่ เท่ากับ 162 ในเลขฐานสบ
30
ช นิ ด ข อ
้ มู ล พื้ น ฐ า น ข อ
้ มู ล ช นิ ด
ทศนิยม
เป็ นข ้อมูล ชนิด ตัว เลขที่ม ีเ ครื่อ งหมายจุด
ทศนิยม
มี 2 ชนิด
float
double
31
ช นิ ด ข อ
้ มู ล พื้ น ฐ า น ข อ
้ มู ล ช นิ ด
ทศนิยม (ต่อ)
ข ้อมูล ชนิด ตั ว เลขทศนิย มที่ม ีช นิด ข อ
้ มูล
เป็ น float จะมีตวั อักษร F หรือ f ต่อท ้าย
่
เชน
2.718F
ข ้อมูล ชนิด ตั ว เลขทศนิย มที่ม ีช นิด ข อ
้ มูล
เป็ น double
จะมีตัวอักษร D
หรือ d
ต่อท ้าย
่
เชน
3.14D
32
ชนิด ข ้อมูล พื้น ฐานข ้อมูล ชนิด ตั ว
อักขระ
คื อ อั ก ษ ร ห นึ่ ง ตั ว ไ ม่ ว่ า จ ะ เ ป็ น ตั ว เ ล ข
ั ลักษณ์ตา่ งๆ
ตัวอักษร หรือสญ
่ ครือ
ใสเ
่ งหมาย Single Qoute (‘ ’) ครอบ
ไว ้
ตัวอย่าง
char ch = ‘x’;
ื่ ch มี
เป็ นการกาหนดตัวแปรทีช
่ อ
ช นิ ด ข อ
้ มู ล เ ป็ น ตั ว อั ก ข ร ะ โ ด ย
กาหนดให ้มีคา่ เป็ น x
33
ชนิด ข ้อมูล พื้น ฐานข ้อมูล ชนิด ตั ว
อักขระ (ต่อ)
อั ก ขระพิ เ ศษบางตั ว ที่ เ รี ย กว่ า Control
Character ต ้องมีเครือ
่ งหมาย \ นาหน ้า
อ ักขระ
‘\b’
‘\t’
‘\n’
‘\f’
‘\r’
‘\\’
‘\’’
Unicode
‘\u000A’
‘\u0009’
‘\u0008’
‘\u000D’
‘\u000C’
‘\u005C’
‘\u0027’
ความหมาย
Backspace
Tab
New Line
Form Feed
Return
Backslash
Single Quote
‘\“’
‘\u0022’
Double Quote
34
ชนิด ข ้อมูล พื้น ฐานข ้อมูล ชนิด ค่า
ความจริง
เป็ นข ้อมูลทีม
่ ค
ี า่ ความจริงเป็ นจริง หรือเท็จ
เท่านัน
้
ค่าความจริงทีเ่ ป็ นจริงแทนด ้วย
true
ค่าความจริงทีเ่ ป็ นเท็จแทนด ้วย false
ตัวอย่าง
boolean flag = true;
ื่ flag
เป็ นการก าหนดตั ว แปรที่ช อ
มีช นิด ข ้อมูล เป็ นค่า ความจริง โดย
กาหนดให ้มีคา่ เป็ น true
35
ชนิด ข ้อมูล พื้น ฐานข ้อมูล ชนิด ค่า
ความจริง (ต่อ)
public class BooleanDemo {
public static void main(String args[]) {
int x = 5;
int y = 4;
x not equal to y is true
y less than 0 is false
boolean b1;
b1 = (x!=y);
System.out.println("x not equal to y is "+b1);
System.out.println("y less than 0 is "+(y<0));
}
}
ข ้อมูลชนิดข ้อความ (String Type)
36
ไม่ได ้มีการกาหนดไว ้ในภาษาจาวา
้ วแปรชนิดข ้อความในรูปแบบ
สามารถใชตั
ของคลาสได ้
้ านขอ
การใชง
้ ความตอ
้ ง อ ยู่ ภ า ย ใ น
เครือ
่ งหมาย Double Quote (“”)
่
เชน
String university = “SRU”;
String subject = “Java”;
ค่าคงที่ (Constant)
37
่ ย
ทาได ้โดยการใสค
ี เ์ วิรด
์ final หน ้าคาสงั่
ื่ final data_type
ประกาศชอ
cons_name = Value;
โดยที่ data_type เป็ นชนิดข ้อมูลของตัวแปร
ื่ ตัวแปรค่าคงที่
cons_name
เป็ นชอ
ื่
ทีต
่ งั ้ ตามกฎการตัง้ ชอ
Value
เป็ นค่าของค่าคงที่
่
เชน
final int MINIMUM = 4;
final double MIN_GPA = 2.00;
ตัวดาเนินการ (Operator)
38
คาทีค
่ วรรู ้จัก
นิพจน์
(Expression) คือข ้อความหรือประโยคทีเ่ ขียน
ั หรือ
ในรูปสัญลักษณ์ โดยนาข ้อมูล ตัวแปร ฟั งก์ชน
ั พันธ์กบ
ค่าคงที่ มาสม
ั ตัวดาเนินการ
Term คือค่าหนึง
่ ค่า อาจจะเป็ นค่าคงที่ หรือ ค่าทีอ
่ ยู่
ในตัวแปร
ตัวดาเนินการ (ต่อ)
39
ตัวดาเนินการในภาษาจาวาแบ่งออกเป็ น 4
ประเภทคือ
ตั ว ด า เ นิ น ก า ร ท า ง ค ณิ ต ศ า ส ต ร์
( Arithmetic
Operator)
ั พันธ์ (Relational Operator)
ตัวดาเนินการแบบสม
ตัวดาเนินการทางตรรกศาสตร์ (Logical Operator)
ตัวดาเนินการแบบบิต (Bitwise Operator)
40
ตั ว ด า เ นิ น ก า ร ตั ว ด า เ นิ น ก า ร
กาหนดค่า
้
ใชส้ าหรับกาหนดค่าให ้กับตัวแปรทางด ้านซาย
ของตัวดาเนินการ =
ตัวดาเนินการประเภทนี้ ได ้แก่
=
+=
-=
*=
/=
%=
เท่ากับ
บวกเท่ากับ
ลบเท่ากับ
คูณเท่ากับ
หารเท่ากับ
หารเอาเศษเท่ากับ
41
ตั ว ด า เ นิ น ก า ร ตั ว ด า เ นิ น ก า ร
กาหนดค่า (ต่อ)
ตัวอย่างกาหนดให ้ a เป็ นตัวเลขจานวน
เต็มและ a = 25
นิ พจน์
การแทนค่านิ พจน์
ค่าของนิ พจน์
a += 5
a -= 25
a *= 10
a /=25
a %= 5
a = a+5
a = a-25
a = a*10
a = a/25
a = a%5
30
0
250
1
0
42
ตั ว ด าเนิน การตั ว ด าเนิน การทาง
คณิตศาสตร์
ตัวดาเนิ นการ
+
*
/
%
ความหมาย
บวก
ลบ
คูณ
หาร
เศษจากการ
ตัวอย่าง
a+b
a-b
a*b
a/b
a%b
43
ตั ว ด า เ นิ น ก า ร ตั ว ด า เ นิ น ก า ร ท า ง
คณิตศาสตร์ (ต่อ)
กาหนดให ้ a, b และ c เป็ นเลขจานวนเต็ม
และ a=11, b=5
นิ พจน์
c = a+b
c = a-b
c = a*b
c = a/b
c = a%b
c
16
6
55
2
1
44
ตั ว ด า เ นิ น ก า ร ตั ว ด า เ นิ น ก า ร ท า ง
คณิตศาสตร์ (ต่อ)
public class TaxCalculator2 {
public static void main(String[] args) {
double price
= 50;
double totalPrice = price * 1.07;
System.out.println("Price include VAT is " + totalPrice);
}
}
Price include VAT is 53.5
45
ตั ว ด า เ นิ น ก า ร ตั ว ด า เ นิ น ก า ร
เปรียบเทียบ
เป็ นตั ว ด าเนิ น การส าหรั บ เปรี ย บเที ย บ
้
ข ้อมู ล ระหว่า งตั ว ถูก กระท าทางด ้านซ าย
และทางด ้านขวาของตัวดาเนินการ
ต ัวดาเนิ นการ
าง
ผลลัพธ ์
ผลลัพธ์ท ไ
ี่ ด ้มีความหมาย
ค่าเป็ นจริตงัวอย่(True)
หรือเท็จ
(False)
้
== เท่า
เท่นั
ากัน
บ
1==2
false
!=
ไม่เท่ากับ
1!=2
true
>
มากกว่า
1>2
false
>=
มากกว่าหรือเท่ากับ
1>=2
false
<
น ้อยกว่า
1<2
true
<=
น ้อยกว่าหรือเท่ากับ
1<=2
false
46
ตั ว ด าเนิน การตั ว ด าเนิน การทาง
ตรรกศาสตร์
้ าหนดเงื่ อ นไขในกรณี ท ี่ ม ี เ งื่ อ นไข
ใช ก
มากกว่า 1 เงือ
่ นไข
ผลลัพธ์ท ไ
ี่ ตัดวด้มีาเนิคนการ
่าเป็ นจริ
ง (True) หรือเท็จ
ความหมาย
(False) เท่านัน
้
&&
and
||
or
!
not
47
ตั ว ด า เ นิ น ก า ร ตั ว ด า เ นิ น ก า ร ท า ง
ตรรกศาสตร์ (ต่อ)
ตารางค่าความจริง
A
B
A||B
!A
!B
true
A&&
B
true
true
true
false
false
true
false
false
true
false
true
false
true
false
true
true
false
false
false
false
false
true
true
48
ตั ว ด า เ นิ น ก า ร ตั ว ด า เ นิ น ก า ร ท า ง
ตรรกศาสตร์ (ต่อ)
public class Boolean_Test {
public static void main(String[] args) {
boolean x = false ;
boolean y = true ;
boolean z = x || y ;
System.out.println ("give x = false, y = true and z = x || y then");
System.out.println ("!x = " + !x);
System.out.println ("x && y = " + (x && y));
System.out.println ("z = " + z);
}
give x = false, y = true and z = x || y then
}
!x = true
x && y = false
z = true
ตัวดาเนินการตัวดาเนินการยูนารี
49
คือตัวดาเนินการทีม
่ ต
ี ัวถูกกระทาเพียงตัว
เดียว
่ ++x; หรือ x++;
เชน
่ --x; หรือ x--;
ประโยคลดค่าตัวแปร เชน
ประโยคเพิม
่ ค่าตัวแปร
50
ตัว ด าเนิน การตั ว ด าเนิน การยู น ารี
(ต่อ)
ตัวอย่าง กาหนดให ้ a และ
จานวนเต็
ม
นิ พจน์
ลาดและ
ับการ a=5 a
ทางาน
เป็ นเลข
b
b
b=a++ 1. b=a
2. a=a+1
6
5
b=++a 1. a=a+1
2. b=a
6
6
b=a--
1. b=a
2. a=a-1
4
5
b=--a
1. a=a-1
2. b=a
4
4
51
ตัว ด าเนิน การตั ว ด าเนิน การยู น ารี
(ต่อ)
class IncrementDemo {
public static void main(String args[]) {
int x;
int y;
x = 5;
y = x++;
System.out.println("x = "+x+" y = "+y);
y = ++x;
System.out.println("x = "+x+" y = "+y);
}
}
x = 6
x = 7
y = 5
y = 7
52
ตัว ด าเนิน การตั ว ด าเนิน การระดั บ
บิต
เป็ นการท างานกั บ บิต ของข ้อมู ล โดยตั ว
ดาเนินการจะกระทากับทุกๆ บิตของตัวถูก
ด าเนิน การที่ม ีช นิด ข ้อมูล เป็ นเลขจ านวน
เต็มหรืตัอวตัดวาเนิ
อักนษร
การ
คาอธิบาย
<<
>>
&
|
left shift
right shift
bitwise AND
bitwise OR
bitwise XOR
53
ตัว ด าเนิน การตั ว ด าเนิน การระดั บ
บิต
A
B
bitwise AND
(A&B)
bitwise OR
(A|B)
bitwise XOR
(AB)
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
ลาดับความสาคัญของตัวดาเนินการ
54
เ ป็ น ก า ร ก า ห น ด ค ว า ม ส า คั ญ ใ ห ก
้ ั บ ตั ว
ด าเนิ น การ โดยเครื่ อ งหมายที่ ม ี ล าดั บ
ความสาคัญสูงกว่าจะได ้รับการประมวลผล
ลาด ับที่
ต ัวดาเนิ นการ
ก่อนเสมอ
1
2
3
4
5
()
++,-*, /, %
+, <<, >>
55
ลาดับความสาคัญของตัวดาเนินการ
(ต่อ)
ลาดับที่
6
7
8
9
10
11
12
13
ตัวดาเนิ นการ
<, <=, >, >=
==, !=
&
|
&&
||
=, +=,-=, *=, /=,
/=, %=
56
ลาดับความสาคัญของตัวดาเนินการ
(ต่อ)
ตัวอย่าง คานวณหาผลลัพธ์ x = 2+3*4(7+2);
คานวณหาผลลัพธ์คา
่
x
= 2+3*4-9
คานวณหาผลลัพธ์คา
่
x
2+12 ทาให ้ได ้
= 14-9
คานวณหาผลลัพธ์คา
่
x
3*4 ทาให ้ได ้
= 2+12-9
คานวณหาผลลัพธ์คา
่
x
7+2 ทาให ้ได ้
=5
14-5 ทาให ้ได ้
การรับและแสดงผลข ้อมูล
57
ได ้แก่
้ ลาส
ใช ค
BufferedReader
ร่ ว มกั บ
InputStreamReder
้
ใชคลาส
Scanner
ใช ้ Dialog Boxes ด ้วยคลาส JOptionPane
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข ้อ มู ล ค ล า ส
BufferedReaderร่วมกับ InputStreamReder
58
้
ใชคลาสที
อ
่ ยูใ่ น package java.io คือ
คลาส BufferedReader
ร่ ว มกั บ
InputStreamReder
ั่ =ต่newอBufferedReader(new
BufferedReader
ใช ้ 2 คาส
ไปนี้
stdinง
InputStreamReader(System.in));
และ
strInput = stdin.readLine();
59
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข ้อ มู ล ค ล า ส
BufferedReaderร่ ว ม กั บ InputStreamReder
(ต่อ)
ต ้องทาการ import package
java.io.*
้
เข ้ามาใชงานด
้วย
และจะต ้องมีการใช ้ throws IOException
เพื่ อ ป้ องกั น ความผิด พลาดในการป้ อน
ข ้อมูลด ้วย
60
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข ้อ มู ล ค ล า ส
BufferedReaderร่ ว ม กั บ InputStreamReder
(ต่อ)
import java.io.*;
public class MyInfo {
public static void main(String [] args) throws IOException{
BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in));
String myInfo, myFname, myLname = "";
System.out.print(“Please enter your name -> ");
myFname = stdin.readLine(); // รับค่าจากผู ้ใช ้ เก็บในตัวแปร myFname
System.out.print(“Please enter your surname-> ");
myLname = stdin.readLine(); // รับค่าจากผู ้ใช ้ เก็บในตัวแปร myLname
myInfo = “Welcome K.”"+myFname+" "+myLname;
System.out.println(myInfo);
}
}
Please enter your name -> Jutarporn
Please enter your surname-> Intasara
Welcome K.Jutarporn Intasara
61
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข ้อ มู ล ค ล า ส
BufferedReaderร่ ว ม กั บ InputStreamReder
(ต่อ)
การแปลงชนิดข ้อมูลตัวอักษรเป็ นตัวเลข
String เป็ น Integer ใช ้
intNum = Interger.parseInt(strNum);
แปลง String เป็ น Double ใช ้
douNum
Double.parseDouble(strNum);
แปลง
=
62
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข ้อ มู ล ค ล า ส
BufferedReaderร่ ว ม กั บ InputStreamReder
(ต่อ)
import java.io.*;
public class TestBuff {
public static void main(String[] args) throws IOException{
BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in));
String input1, input2 = "";
int num1, num2, sum=0;
System.out.print("Please enter first number -> ");
input1 = stdin.readLine();
num1 = Integer.parseInt(input1); //แปลงค่าจาก String เป็ น int
System.out.print("Please enter second number -> ");
input2 = stdin.readLine();
num2 = Integer.parseInt(input2);
sum = num1+num2;
System.out.println("sum = "+sum);
}
}
Please enter first number -> 3
Please enter second number -> 5
sum = 8
63
การรั บ และแสดงผลข ้อมูล คลาส
Scanner
อยูใ่ น package java.util.Scanner จึง
ต ้องมีการ import ก่อน
ทาการสร ้างวัตถุจากคลาส Scanner โดย
มีรScanner
ป
ู แบบดั
งนี้ = new Scanner(System.in);
keyboard
64
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข อ
้ มู ล ค ล า ส
Scanner (ต่อ)
เมธอดในคลาส Scanner
เมธอด
nextByte()
การทางาน
รับข ้อมูลเลขจานวนเต็มชนิด Byte ทางแป้ นพิมพ์
nextDouble()
รับข ้อมูลเลขทศนิยมชนิด Double ทางแป้ นพิมพ์
nextFloat()
รับข ้อมูลเลขทศนิยมชนิด Float ทางแป้ นพิมพ์
nextInt()
รับข ้อมูลเลขจานวนเต็มชนิด Int ทางแป้ นพิมพ์
nextLine()
nextLong()
รับข ้อมูลแบบ String ทางแป้ นพิมพ์
รับข ้อมูลตัวเลขชนิด Long ทางแป้ นพิมพ์
nextShort()
รับข ้อมูลตัวเลขชนิด Short ทางแป้ นพิมพ์
65
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข อ
้ มู ล ค ล า ส
Scanner (ต่อ)
import java.util.Scanner;
public class TestInput {
public static void main(String[] args) {
int number;
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter an interger value: ");
number = keyboard.nextInt(); //อ่านค่าเป็ นชนิด
int เก็บในตัวแปร
number
System.out.println("Your number is "+number);
}
}
Enter an interger value: 12345
Your number is 12345
66
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข อ
้ มู ล ค ล า ส
JOptionPane
้
ก่อนเรียกใชงานจะต
้องอิมพอร์ตแพ็ คเกจ
javax.swing.JOptionPane;
JOptionPane.showInputDialog("Input Number 1");
Input Dialog
67
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข อ
้ มู ล ค ล า ส
JOptionPane (ต่อ)
JOptionPane.showMessageDialog(null,"ผลลัพธ์ คือ
"+result)
Message Dialog
68
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข อ
้ มู ล ค ล า ส
JOptionPane (ต่อ)
ข ้อมูลทีร่ ับเข ้ามาทาง InputDialog จะเป็ น
ข ้อมูลชนิด String ถ ้าต ้องการนาข ้อมูลนัน
้
ไปคานวณจะต ้องการแปลงข ้อมูลด ้วยเมธ
อดจากคลาสของชนิดข ้อมูลต่าง ๆ ดังนี้
เมธอด
การใช้งาน
Byte.parseByte
เปลีย
่ น String เป็ นข ้อมูลประเภท byte
Double.parseDouble
เปลีย
่ น String เป็ นข ้อมูลประเภท double
Float.parseFloat
เปลีย
่ น String เป็ นข ้อมูลประเภท float
Integer.parseInt
เปลีย
่ น String เป็ นข ้อมูลประเภท int
Long.parseLong
เปลีย
่ น String เป็ นข ้อมูลประเภท long
Short.parseShort
เปลีย
่ น String เป็ นข ้อมูลประเภท short
69
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข อ
้ มู ล ค ล า ส
JOptionPane (ต่อ)
import javax.swing.JOptionPane;
public class Calnum2 {
public static void main(String[] args) {
int x,y,result;
String input,output;
input = JOptionPane.showInputDialog("Input Number 1");
x = Integer.parseInt(input); //แปลงค่า String เป็ น int เก็บในตัวแปร x
input = JOptionPane.showInputDialog("Input Number 2");
y = Integer.parseInt(input);
result = x + y;
JOptionPane.showMessageDialog(null,"ผลลัพธ์ คือ "+result);
}
}
70
ก า ร รั บ แ ล ะ แ ส ด ง ผ ล ข อ
้ มู ล ค ล า ส
JOptionPane (ต่อ)
Output