27
หนวยที3 ตัวแปรและชนิดขอมูล (Variables and Data Types)

หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

หนวยที่ 3ตัวแปรและชนิดขอมูล

(Variables and Data Types)

Page 2: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 2

วัตถปุระสงค

• เพื่อใหนกัศึกษาเรียนรูการใชตัวแปรในโปรแกรมภาษาจาวา

• เพื่อใหนกัศึกษารูจักชนิดขอมลูประเภทตางๆ ในภาษาจาวา

• เพื่อใหนกัศึกษาเรียนรูการคํานวณในโปรแกรมภาษาจาวา

Page 3: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 3

โปรแกรม HelloWorld

// คลาส HelloWorld// แสดงผลขอความวา Hello, World! ในหนาตางพรอมพ

class HelloWorld{public static void main(String[ ] args) {

System.out.println(“Hello, World!”);

}}

Comment

Page 4: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 4

โปรแกรม HelloWorld

// คลาส HelloWorld// แสดงผลขอความวา Hello, World! ในหนาตางพรอมพ

class HelloWorld{public static void main(String[ ] args) {

System.out.println(“Hello, World!”);

}}

การประกาศคลาส

Page 5: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 5

รูปแบบพื้นฐานของการประกาศคลาส

class ชื่อคลาสc{. . . }

Page 6: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 6

โปรแกรม HelloWorld

// คลาส HelloWorld// แสดงผลขอความวา Hello, World! ในหนาตางพรอมพ

class HelloWorld{public static void main(String[ ] args) {

System.out.println(“Hello, World!”);

}}

เมนเมธอด

Page 7: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 7

เมนเมธอด (Main Method)• จาวาแอพพลิเคชันทกุตัวตองมเีมนเมธอดที่ลายเซ็นตแบบนี้

public static void main(String[] args){. . . }

• เปนจุดเริ่มตนในการรันแอพพลิเคชนั และเริม่เมธอดอื่นขึน้มาทํางานตามความตองการของโปรแกรม

• โมดิฟายเออร public และ static เรียงสลับกนัได (public static or static public) แตนิยมใช publicstatic

Page 8: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 8

เมนเมธอด (Main Method)public static void main(String[] args){. . . }

• เมนเมธอดรับอารกวิเมนตเปน อาเรยของ String• ตั้งชือ่อารกิวเมนต (argument) เปนอะไรก็ได แตนิยมใช "args" หรอื "argv"

• อาเรยนี้ใชในการสงผานขอมูลเขาสูโปรแกรมตอนรัน• สตริงแตละตัวในอาเรยเรียกวา command-line

argument• Command-line arguments ทําใหผูใชกําหนดการทํางานของระบบไดโดยไมตองคอมไพลใหม

Page 9: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 9

กฎการตั้งชื่อ (Naming Rules)

• ประกอบดวยตัวอกัษร, ตัวเลข, เครื่องหมาย _(Underscore) และ $ (Dollar sign)

• มีความยาวไดไมจํากัด• ตองขึ้นตนตัวอกัษร เครื่องหมาย _ หรือ $• หามมชีองวาง• ตองไมซ้ํากับคียเวิรด (Keywords), คาบูลีน (true,

false) หรือคําสงวน (Reserved words) คือ null

Page 10: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 10

คียเวิรดในภาษาจาวา

whilesupernativefloatconstvolatilestrictfplongfinallyclassvoidstaticinterfacefinalchartryshortintextendscatchtransientreturninstanceofenumcasethrowspublicimportelsebytethrowprotectedimplementsdoublebreakthisprivateifdobooleansynchronizedpackagegotodefaultassertswitchnewforcontinueabstract

Page 11: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 11

ตัวอยางการตั้งชื่อ

Number1

1Number

_Hello

null

Hello World

Page 12: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 12

ตัวอยางการตั้งชื่อ

Number1

1Number

_Hello

null

Hello World

Page 13: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 13

ขอแนะนําในการตั้งชื่อ

• ควรตั้งชือ่ใหสือ่ความหมาย• ควรตั้งชือ่ตามหลกัการตั้งชือ่ (Naming Convention)ที่นิยม– ชื่อตัวแปร ออบเจ็ค และเมธอดใหขึ้นตนดวยอกัษรตัวพิมพเล็ก– ชื่อคลาสใหขึ้นตนดวยอกัษรตัวพิมพใหญ– ใหอักษรตวัแรกของตั้งแตคําที่สองเปนตนไปเปนตวัพิมพใหญ เชน isVisible, MyBook

– ชื่อของคาคงที่ใหใชอกัษรตัวพิมพใหญทั้งหมด และใชเครื่องหมาย underscore ( _ ) เพื่อแยกคาํ

– ไมนยิมขึ้นตนดวย _ หรอื $

Page 14: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 14

ตัวแปร (Variables)

• ตําแหนงในหนวยความจําที่ใชเกบ็ขอมูล• การประกาศตัวแปร (Variable declaration)

• ตัวอยางdouble d;boolean b;int i, j, k;

<ชนดิขอมูล> <ชือ่ตัวแปร>;

Page 15: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

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)

Page 16: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

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ขนาดชนิดขอมลู

Page 17: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 17

การกําหนดคาใหตัวแปร (Variable assignment)

d = 2.5; //2.5d, 2.5Db = true;i = j + k;

<ชือ่ตัวแปร> = <นิพจน>;

• ตัวอยาง

Page 18: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 18

การกําหนดตัวแปร• การประกาศตัวแปรพรอมกําหนดคา

float f = 3.5F; // 3.5f

final double SALES_TAX_RATE =7.5;

•การประกาศคาคงที่

Page 19: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 19

ตัวดําเนินการทางคณิตศาสตร (Arithmetic Operators)

11 % 2

11 / 211 * 211 - 2

11 + 2

ตัวอยาง ผลลัพธความหมายโอเปอเรเตอร (Operator)

หาเศษ

หารคูณลบ

บวก

1%

5/22*9-

13+

Page 20: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

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;+=

Page 21: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 21

ตัวดําเนินการเดี่ยว (Unary Operators)

ความหมายโอเปอเรเตอร

เปลี่ยนคาบูลีนเปนตรงกนัขาม

!

ลดคาลง 1--เพิ่มคาขึ้น 1++ทําใหเปนคาติดลบ-

ระบุวาเปนคาบวก+

Page 22: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 22

ตัวดําเนินการเปรียบเทียบ (Equality and Relational Operators)

นอยกวา หรือเทากับ<=

ความหมายโอเปอเรเตอร

นอยกวา<

มากกวา หรือเทากับ>=มากกวา>ไมเทากับ!=

เทากบั==

Page 23: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 23

ตัวดําเนินการเงื่อนไข (Conditional Operators)

ความหมายโอเปอเรเตอร

เงือ่นไข-หรือ||

เงือ่นไข-และ&&

Page 24: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 24

ตัวดําเนินการเปรียบเทียบชนิด (Type Comparison Operators)

ความหมายโอเปอเรเตอรเปรียบเทยีบออบเจค็กับชนิดหนึง่instanceof

Page 25: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 25

ลําดับความสําคัญของตัวดําเนินการ (Operator Precedence)

== !=เทาเทียบ< > <= >= instanceofเทียบคา+ -เพิ่มคา* / %ทวีคูณ++expr --expr +expr -expr !เดี่ยวexpr++ expr--ตอทาย

ลําดับโอเปอเรเตอร

Page 26: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 26

ลําดับความสําคัญของตัวดําเนินการ (Operator Precedence)

= += -= *= /= %=กําหนดคา? :แทน if||ตรรกะ OR&&ตรรกะ AND

ลําดับโอเปอเรเตอร

Page 27: หน วยท ี่ 3 ตัวแปรและชน ิดข อมูลcs.snru.ac.th/UserFiles/File/OOAD_2_50/Unit03.pdfOOP 2/2550 ดร.ส ขสถ ต ม สถ ตย

OOP 2/2550 ดร.สุขสถิต มีสถิตย 27

การเปลีย่นชนิดขอมูล (Type Casting)

(<ชนดิขอมูล>) <นิพจน>;

float a = 1.0F,b = 2.5F;int c;c = (int) (a + b);

• ตัวอยาง

• รูปแบบ