หน วยท ี่ 3 ตัวแปรและชน ิดข...
TRANSCRIPT
หนวยที่ 3ตัวแปรและชนิดขอมูล
(Variables and Data Types)
OOP 2/2550 ดร.สุขสถิต มีสถิตย 2
วัตถปุระสงค
• เพื่อใหนกัศึกษาเรียนรูการใชตัวแปรในโปรแกรมภาษาจาวา
• เพื่อใหนกัศึกษารูจักชนิดขอมลูประเภทตางๆ ในภาษาจาวา
• เพื่อใหนกัศึกษาเรียนรูการคํานวณในโปรแกรมภาษาจาวา
OOP 2/2550 ดร.สุขสถิต มีสถิตย 3
โปรแกรม HelloWorld
// คลาส HelloWorld// แสดงผลขอความวา Hello, World! ในหนาตางพรอมพ
class HelloWorld{public static void main(String[ ] args) {
System.out.println(“Hello, World!”);
}}
Comment
OOP 2/2550 ดร.สุขสถิต มีสถิตย 4
โปรแกรม HelloWorld
// คลาส HelloWorld// แสดงผลขอความวา Hello, World! ในหนาตางพรอมพ
class HelloWorld{public static void main(String[ ] args) {
System.out.println(“Hello, World!”);
}}
การประกาศคลาส
OOP 2/2550 ดร.สุขสถิต มีสถิตย 5
รูปแบบพื้นฐานของการประกาศคลาส
class ชื่อคลาสc{. . . }
OOP 2/2550 ดร.สุขสถิต มีสถิตย 6
โปรแกรม HelloWorld
// คลาส HelloWorld// แสดงผลขอความวา Hello, World! ในหนาตางพรอมพ
class HelloWorld{public static void main(String[ ] args) {
System.out.println(“Hello, World!”);
}}
เมนเมธอด
OOP 2/2550 ดร.สุขสถิต มีสถิตย 7
เมนเมธอด (Main Method)• จาวาแอพพลิเคชันทกุตัวตองมเีมนเมธอดที่ลายเซ็นตแบบนี้
public static void main(String[] args){. . . }
• เปนจุดเริ่มตนในการรันแอพพลิเคชนั และเริม่เมธอดอื่นขึน้มาทํางานตามความตองการของโปรแกรม
• โมดิฟายเออร public และ static เรียงสลับกนัได (public static or static public) แตนิยมใช publicstatic
OOP 2/2550 ดร.สุขสถิต มีสถิตย 8
เมนเมธอด (Main Method)public static void main(String[] args){. . . }
• เมนเมธอดรับอารกวิเมนตเปน อาเรยของ String• ตั้งชือ่อารกิวเมนต (argument) เปนอะไรก็ได แตนิยมใช "args" หรอื "argv"
• อาเรยนี้ใชในการสงผานขอมูลเขาสูโปรแกรมตอนรัน• สตริงแตละตัวในอาเรยเรียกวา command-line
argument• Command-line arguments ทําใหผูใชกําหนดการทํางานของระบบไดโดยไมตองคอมไพลใหม
OOP 2/2550 ดร.สุขสถิต มีสถิตย 9
กฎการตั้งชื่อ (Naming Rules)
• ประกอบดวยตัวอกัษร, ตัวเลข, เครื่องหมาย _(Underscore) และ $ (Dollar sign)
• มีความยาวไดไมจํากัด• ตองขึ้นตนตัวอกัษร เครื่องหมาย _ หรือ $• หามมชีองวาง• ตองไมซ้ํากับคียเวิรด (Keywords), คาบูลีน (true,
false) หรือคําสงวน (Reserved words) คือ null
OOP 2/2550 ดร.สุขสถิต มีสถิตย 10
คียเวิรดในภาษาจาวา
whilesupernativefloatconstvolatilestrictfplongfinallyclassvoidstaticinterfacefinalchartryshortintextendscatchtransientreturninstanceofenumcasethrowspublicimportelsebytethrowprotectedimplementsdoublebreakthisprivateifdobooleansynchronizedpackagegotodefaultassertswitchnewforcontinueabstract
OOP 2/2550 ดร.สุขสถิต มีสถิตย 11
ตัวอยางการตั้งชื่อ
Number1
1Number
_Hello
null
Hello World
OOP 2/2550 ดร.สุขสถิต มีสถิตย 12
ตัวอยางการตั้งชื่อ
Number1
1Number
_Hello
null
Hello World
OOP 2/2550 ดร.สุขสถิต มีสถิตย 13
ขอแนะนําในการตั้งชื่อ
• ควรตั้งชือ่ใหสือ่ความหมาย• ควรตั้งชือ่ตามหลกัการตั้งชือ่ (Naming Convention)ที่นิยม– ชื่อตัวแปร ออบเจ็ค และเมธอดใหขึ้นตนดวยอกัษรตัวพิมพเล็ก– ชื่อคลาสใหขึ้นตนดวยอกัษรตัวพิมพใหญ– ใหอักษรตวัแรกของตั้งแตคําที่สองเปนตนไปเปนตวัพิมพใหญ เชน isVisible, MyBook
– ชื่อของคาคงที่ใหใชอกัษรตัวพิมพใหญทั้งหมด และใชเครื่องหมาย underscore ( _ ) เพื่อแยกคาํ
– ไมนยิมขึ้นตนดวย _ หรอื $
OOP 2/2550 ดร.สุขสถิต มีสถิตย 14
ตัวแปร (Variables)
• ตําแหนงในหนวยความจําที่ใชเกบ็ขอมูล• การประกาศตัวแปร (Variable declaration)
• ตัวอยางdouble d;boolean b;int i, j, k;
<ชนดิขอมูล> <ชือ่ตัวแปร>;
OOP 2/2550 ดร.สุขสถิต มีสถิตย 15
ชนิดขอมูลพืน้ฐาน (Primitive Data Types)
-9,223,372,036,854,775,808
-2,147,483,648-32,768-128
คาต่ําสุด
9,223,372,036,854,775,807
64 บิตlong2,147,483,64732 บิตint32,76716 บิต short1278 บิตbyte
คาสูงสุดขนาดชนิดขอมลู
• ประเภทเลขจาํนวนเตม็ (Integer)
OOP 2/2550 ดร.สุขสถิต มีสถิตย 16
ชนิดขอมูลพืน้ฐาน (ตอ)
-1.79769e+308-3.40282e+38
คาต่ําสุด
1.79769e+30864 บิตdouble3.40282e+3832 บิตfloat
คาสูงสุดขนาดชนิดขอมลู
• ประเภทเลขจาํนวนจริง (Real number)
• ประเภทอืน่ๆ (Other types)
true หรือ falseตัวอักขระตามรหัส Unicode
ขอมลู
boolean16 บิต charขนาดชนิดขอมลู
OOP 2/2550 ดร.สุขสถิต มีสถิตย 17
การกําหนดคาใหตัวแปร (Variable assignment)
d = 2.5; //2.5d, 2.5Db = true;i = j + k;
<ชือ่ตัวแปร> = <นิพจน>;
• ตัวอยาง
OOP 2/2550 ดร.สุขสถิต มีสถิตย 18
การกําหนดตัวแปร• การประกาศตัวแปรพรอมกําหนดคา
float f = 3.5F; // 3.5f
final double SALES_TAX_RATE =7.5;
•การประกาศคาคงที่
OOP 2/2550 ดร.สุขสถิต มีสถิตย 19
ตัวดําเนินการทางคณิตศาสตร (Arithmetic Operators)
11 % 2
11 / 211 * 211 - 2
11 + 2
ตัวอยาง ผลลัพธความหมายโอเปอเรเตอร (Operator)
หาเศษ
หารคูณลบ
บวก
1%
5/22*9-
13+
OOP 2/2550 ดร.สุขสถิต มีสถิตย 20
ตัวดําเนินการกําหนดคา (Assignment Operators)
a = b;=
a %= b;
a /= b;a *= b;a -= b;
a += b;
รูปแบบ ความหมายโอเปอเรเตอร
a = a % b;%=
a = a / b;/=a = a * b;*=a = a - b;-=
a = a + b;+=
OOP 2/2550 ดร.สุขสถิต มีสถิตย 21
ตัวดําเนินการเดี่ยว (Unary Operators)
ความหมายโอเปอเรเตอร
เปลี่ยนคาบูลีนเปนตรงกนัขาม
!
ลดคาลง 1--เพิ่มคาขึ้น 1++ทําใหเปนคาติดลบ-
ระบุวาเปนคาบวก+
OOP 2/2550 ดร.สุขสถิต มีสถิตย 22
ตัวดําเนินการเปรียบเทียบ (Equality and Relational Operators)
นอยกวา หรือเทากับ<=
ความหมายโอเปอเรเตอร
นอยกวา<
มากกวา หรือเทากับ>=มากกวา>ไมเทากับ!=
เทากบั==
OOP 2/2550 ดร.สุขสถิต มีสถิตย 23
ตัวดําเนินการเงื่อนไข (Conditional Operators)
ความหมายโอเปอเรเตอร
เงือ่นไข-หรือ||
เงือ่นไข-และ&&
OOP 2/2550 ดร.สุขสถิต มีสถิตย 24
ตัวดําเนินการเปรียบเทียบชนิด (Type Comparison Operators)
ความหมายโอเปอเรเตอรเปรียบเทยีบออบเจค็กับชนิดหนึง่instanceof
OOP 2/2550 ดร.สุขสถิต มีสถิตย 25
ลําดับความสําคัญของตัวดําเนินการ (Operator Precedence)
== !=เทาเทียบ< > <= >= instanceofเทียบคา+ -เพิ่มคา* / %ทวีคูณ++expr --expr +expr -expr !เดี่ยวexpr++ expr--ตอทาย
ลําดับโอเปอเรเตอร
OOP 2/2550 ดร.สุขสถิต มีสถิตย 26
ลําดับความสําคัญของตัวดําเนินการ (Operator Precedence)
= += -= *= /= %=กําหนดคา? :แทน if||ตรรกะ OR&&ตรรกะ AND
ลําดับโอเปอเรเตอร
OOP 2/2550 ดร.สุขสถิต มีสถิตย 27
การเปลีย่นชนิดขอมูล (Type Casting)
(<ชนดิขอมูล>) <นิพจน>;
float a = 1.0F,b = 2.5F;int c;c = (int) (a + b);
• ตัวอยาง
• รูปแบบ