แนะนําภาษาจาวา...•ภาษาจาวาเป นภาษาเช...

Post on 31-Dec-2019

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

แนะนาภาษาจาวา

16/12/58 เขยนโปรแกรม Java เบองตน 1

หวขอหวขอ

• ประวตของภาษาจาวาประวตของภาษาจาวา

• ขอดของภาษาจาวาขอดของภาษาจาวา

• จาวาแพลตฟอรมจาวาแพลตฟอรม

• การคอมไพลและรนโปรแกรมภาษาจาวา• การคอมไพลและรนโปรแกรมภาษาจาวา

• โปรแกรม HelloWorld ในแบบตวอกษรและ• โปรแกรม HelloWorld ในแบบตวอกษรและ

แบบกราฟกสแบบกราฟกส16/12/58 เขยนโปรแกรม Java เบองตน 2

ประวตของภาษาจาวา

16/12/58 เขยนโปรแกรม Java เบองตน 3

ภาษาโอคภาษาโอค

• ใ ป 1990 • เรมตนขนในปค.ศ. 1990

• แพททรก นอทน (Pattrick Naughton) จะลาออกจากซน

• เจมส กอสลง (James Gosling) ผใหกาเนดภาษาจาวา

• กรนทม – ยคถดจากคอมพวเตอรสวนบคคล (personal computer) กคอ

คอมพวเตอรในอปกรณอเลกโทรนกส (consumer electronics)

• ดค

16/12/58 เขยนโปรแกรม Java เบองตน 4

ภาษาจาวาภาษาจาวา

• มารค แอนดรสเซน กบ Mosaic และเวบ

• (Bill J ) • บล จอย (Bill Joy) แจกจายตวพฒนาภาษา

• นอทนพฒนาเวบเบราเซอรทสนบสนนภาษาจาวา นอทนพฒนาเวบเบราเซอรทสนบสนนภาษาจาวา

โปรแกรมดงกลาวมชอวา HotJava

• Netscape Navigator

• 23 มกราคม ค.ศ. 1996 ซนไดออก JDK 1.0

16/12/58 เขยนโปรแกรม Java เบองตน 5

ขอดของภาษาจาวา

16/12/58 เขยนโปรแกรม Java เบองตน 6

ขอดของภาษาจาวาขอดของภาษาจาวา

• ซ ไ • ทางานบนเวบเบราเซอรได

• ความปลอดภยสง • สนบสนนงานหลายระดบ

16/12/58 เขยนโปรแกรม Java เบองตน 7

ขอดของภาษาจาวาขอดของภาษาจาวา

• สามารถทางานบนเครองคอมพวเตอรไ ตางระบบได

• ภาษาจาวาเปนภาษาเชงวตถ• ความทนสมย

• ความเรยบงาย 16/12/58 เขยนโปรแกรม Java เบองตน 8

ขอดของภาษาจาวาขอดของภาษาจาวา

• กลไกในการคนพนทในหนวยความจาโอตโนมต (garbage collection)

• มคลาสและอนเตอรเฟซใหใชเยอะมาก

–794 interfaces

–2485 classes16/12/58 เขยนโปรแกรม Java เบองตน 9

จาวาแพลตฟอรม

16/12/58 เขยนโปรแกรม Java เบองตน 10

แพลตฟอรม (platform) แพลตฟอรม (platform)

• ระบบทโปรแกรมอาศยทางาน• Hardware

• Software

16/12/58 เขยนโปรแกรม Java เบองตน 11

จาวาแพลตฟอรมจาวาแพลตฟอรม

• Java 2 Platform, Standard Edition (J2SE)

– จาวาแอพพลเคชน (Java application)

– แอพเพลต (Java applet)

• Java 2 Platform, Enterprise Edition (J2EE)

โป โป ใ – โปรแกรมแบบมลตเทยร (multitiered) สาหรบการพฒนาโปรแกรมในระดบองคกร

• Java 2 Platform, Micro Edition (J2ME)

โ โ – สนคาอเลกโทรนกส เชน โทรศพทมอถอ พดเอ (personal digital assistant) และกลองเคเบลทว (TV set-top box

16/12/58 เขยนโปรแกรม Java เบองตน 12

การคอมไพลและรนการคอมไพลและรน

โปโปรแกรมภาษาจาวา

16/12/58 เขยนโปรแกรม Java เบองตน 13

ชดพฒนาภาษาจาวา (JDK)ชดพฒนาภาษาจาวา (JDK)

• ชดพฒนาภาษาจาวา (Java Development Kit - JDK)

– จาวาคอมไพเลอร (javac.exe)(j )

– สภาพแวดลอมการรนโปรแกรมจาวา (Java Runtime สภาพแวดลอมการรนโปรแกรมจาวา (Java Runtime

Environment - JRE) (java.exe)

• Download http://java.sun.com

16/12/58 เขยนโปรแกรม Java เบองตน 14

โปรแกรมทใชเขยนตนฉบบโปรแกรมโปรแกรมทใชเขยนตนฉบบโปรแกรม

• Notepad

–มาพรอมกบ Windows

• J-Lab– http://www.cp.eng.chula.ac.th/~somchai/JLab/http://www.cp.eng.chula.ac.th/ somchai/JLab/

• Netbeans

–http://www.netbeans.org/

• Eclipse

htt :// li /–http://www.eclipse.org/16/12/58 เขยนโปรแกรม Java เบองตน 15

NotepadNotepad

16/12/58 เขยนโปรแกรม Java เบองตน 16

J-LabJ-Lab

16/12/58 เขยนโปรแกรม Java เบองตน 17

NetbeansNetbeans

16/12/58 เขยนโปรแกรม Java เบองตน 18

EclipseEclipse

16/12/58 เขยนโปรแกรม Java เบองตน 19

โปรแกรม HelloWorld ในโปรแกรม HelloWorld ใน

แบบตวอกษรและแบบ

กราฟกสกราฟกส

16/12/58 เขยนโปรแกรม Java เบองตน 20

โปรแกรม HelloWorldโปรแกรม HelloWorld

•พมพคาวา Hello, World! ขนบน

หนาจอคอมพวเตอร

16/12/58 เขยนโปรแกรม Java เบองตน 21

การเปดโปรแกรม cmdการเปดโปรแกรม cmd

22

1

3

16/12/58 เขยนโปรแกรม Java เบองตน 22

คอมไพลโปรแกรมคอมไพลโปรแกรม

16/12/58 เขยนโปรแกรม Java เบองตน 23

โปรแกรม HelloWorld โปรแกรม HelloWorld

public class HelloWorld

{

}

16/12/58 เขยนโปรแกรม Java เบองตน 24

โปรแกรม HelloWorld โปรแกรม HelloWorld

public class HelloWorld

{

public static void main(String[] args)

{{

}

}

16/12/58 เขยนโปรแกรม Java เบองตน 25

โปรแกรม HelloWorld โปรแกรม HelloWorld

public class HelloWorld

{

public static void main(String[] args)

{{

System.out.println("Hello, World!");

}

}

16/12/58 เขยนโปรแกรม Java เบองตน 26

โปรแกรม HelloWorld แบบกราฟกโปรแกรม HelloWorld แบบกราฟก

16/12/58 เขยนโปรแกรม Java เบองตน 27

โปรแกรม HelloWorld แบบกราฟกโปรแกรม HelloWorld แบบกราฟก

import java.awt.*;

import javax.swing.*;

public class HelloGraphicsWorld {

bli i id i (S i [] ) {public static void main(String[] args) {

JFrame frame = new JFrame() {

public void paint(Graphics g) {

g drawString("Hello World!" 110 150);g.drawString("Hello, World!", 110, 150);

g.drawOval(100, 130, 90, 30);

}

};

frame.setSize(300, 300);( , );

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

16/12/58 เขยนโปรแกรม Java เบองตน 28

คาอธบายในโปรแกรมคาอธบายในโปรแกรม• คอมเมนตบรรทดเดยวคอมเมนตบรรทดเดยว

// print the word hello// print the word hello

• คอมเมนตทเปนยอหนาคอมเมนตทเปนยอหนา

/* /

This program p g

will print p

the word hello16/12/58 เขยนโปรแกรม Java เบองตน 29

คาอธบายในโปรแกรมคาอธบายในโปรแกรม

• คอมเมนตทเปนยอหนาสาหรบการ โสรางเอกสารดวยโปรแกรม javadoc

/**

*/

16/12/58 เขยนโปรแกรม Java เบองตน 30

สรป

16/12/58 เขยนโปรแกรม Java เบองตน 31

สรปสรป

• โป ใ ฟ ป • โปรแกรมในจาวาแพลตฟอรมมาตรฐานมอยสองประเภทคอ แอพพลเคชน และ แอพเพลท

ไ โป ไป• จาวาแอพพลเคชนสามารถทางานไดเหมอนกบโปรแกรมทวไป มนสามารถทางานบนคอมพวเตอรตางรนตางระบบปฏบตการได เพราะวามนทางานอยบนโปรแกรมเครองจกรเสมอนเพราะวามนทางานอยบนโปรแกรมเครองจกรเสมอน

• จาวาแอพเพลตสามารถทางานบนเวบเพจได มนสามารถทางานบนคอมพวเตอรตางรนตางระบบปฏบตการได ขอเพยงแคมบนคอมพวเตอรตางรนตางระบบปฏบตการได ขอเพยงแคมโปรแกรมเวบเบราเซอรทสนบสนนภาษาจาวาตดตงอยบนระบบปฏบตการนนระบบปฏบตการนน

16/12/58 เขยนโปรแกรม Java เบองตน 32

สรปสรป

• โ โป ใ ฟ • ซอรสโคดโปรแกรมจาวาอยในแฟมทมนามสกล java

• โปรแกรมทใชคอมไพลภาษาจาวาชอ javac

• ผลการคอมไพลจะไดแฟมทมนามสกล class

• ไฟลนามสกล class สามารถทางานใน JRE ได

• ใชโปรแกรม java รนไฟล .class ทมเมธอด main()

• การพมพขอความใชคาสง การพมพขอความใชคาสง System.out.println("ขอความทตองการพมพ")

16/12/58 เขยนโปรแกรม Java เบองตน 33

ชนดขอมลพนฐานชนดขอมลพนฐาน

16/12/58 เขยนโปรแกรม Java เบองตน 1

หวขอหวขอ ตวแปร

ชนดขอมลพนฐาน

การคานวณ

คาคงทคาคงท

16/12/58 เขยนโปรแกรม Java เบองตน2

ตวแปรตวแปร

16/12/58 เขยนโปรแกรม Java เบองตน 3

ตวแปรตวแปร• กลองสเหลยมกลองสเหลยม

= 5 + 3 = 5 + 3

• ตวอกษร• ตวอกษร

5 + 3x = 5 + 3

• คา

3count = 5 + 316/12/58 เขยนโปรแกรม Java เบองตน

4

การประกาศตวแปรการประกาศตวแปร

• รปแบบ

ชนดขอมล ชอตวแปร;

• ตวอยาง

int count;

double sum;

16/12/58 เขยนโปรแกรม Java เบองตน5

การตงชอการตงชอ• ตองเรมตนชอดวย

ตวอกษรโรมน (เชน a, z, A, Z)

เชน count

เครองหมาย _ หรอ $

เชน _height หรอ $name

• ตวเลขสามารถอยในชอตวแปรได • ตวเลขสามารถอยในชอตวแปรได

• เชน car12 หรอ c1a2r

หาม ขนตนชอดวยตวเลข

หาม ตงชอดวยคาสงวน (reserved word) ( ese ved wo d) 16/12/58 เขยนโปรแกรม Java เบองตน

6

คาสงวน (Reserved Words)คาสงวน (Reserved Words)

• abstract, assert, boolean, break, byte, case, catch, char,

class const continue default do double else enum class, const, continue, default, do, double, else, enum,

extends, final, finally, float, for, goto, if, implements,

import, instanceof, int, interface, long, native, new,

package, private, protected, public, return, short, static, p g , p , p , p , , , ,

strictfp, super, switch, synchronized, this, throw, throws,

i id l il hiltransient, try, void, volatile, while

16/12/58 เขยนโปรแกรม Java เบองตน7

กาหนดคาใหตวแปรกาหนดคาใหตวแปร

• รปแบบ

• ตวแปร = คาทตองการกาหนด;

• ตวอยาง

• count = 3;

16/12/58 เขยนโปรแกรม Java เบองตน8

ชนดขอมลพนฐานน มล นฐ น

16/12/58 เขยนโปรแกรม Java เบองตน 9

ชนดขอมลพนฐานชนดขอมลพนฐาน ชนดขอมลชนดขอมล

booleancharcharstringb tbyteshortint

longfloat

double

16/12/58 เขยนโปรแกรม Java เบองตน10

แผนผงแผนผง

16/12/58 เขยนโปรแกรม Java เบองตน11

System.out.println(“ขอความ" + ตวแปร);

12

การรบคาimport java.util.Scanner;

j il S java.util.Scanner sc;

j til S (S stem in)sc = new java.util.Scanner(System.in);

String s = Sc nextLine(); //ใชสาหรบรบคาเปน StingString s = Sc.nextLine(); //ใชสาหรบรบคาเปน Sting

int i = Sc.nextInt(); //ใชสาหรบรบคาเปน intergerg

float f = Sc.nextFloat(); //ใชสาหรบรบคาเปน float

double d = Sc.nextDouble(); //ใชสาหรบรบคาเปน double

l l S L () //ใ ส ป llong l = Sc.nextLong(); //ใชสาหรบรบคาเปน long13

การคานวณร นวณ

16/12/58 เขยนโปรแกรม Java เบองตน 14

การคานวณการคานวณ• บวก

i 1 int a = 1;

int b = 2;int b 2;

int sum = a + b;;

• ลบ

• double a = 1.2;

• double b = 3.4;

• double result = a - b;16/12/58 เขยนโปรแกรม Java เบองตน

15

การเพมคาการเพมคา

• เครองหมาย +=

int count = 0;

count += 1;count += 1;

• เครองหมาย ++ (เพมคาอกหนง)เครองหมาย (เพมคาอกหนง)

int count = 0;

count++;

16/12/58 เขยนโปรแกรม Java เบองตน16

การคานวณการคานวณ

• คณ

int result;

result = 3 * 4;result = 3 * 4;

• หารหาร

double a = 14;

double result = a / 3;

16/12/58 เขยนโปรแกรม Java เบองตน17

การหารเอาเศษการหารเอาเศษ

• เครองหมาย %

• ตวอยาง

int remainder; int remainder;

remainder = 14 % 7; remainder 14 % 7;

remainder = 15 % 7;

16/12/58 เขยนโปรแกรม Java เบองตน18

ใชวงเลบเพอจดกลมการคานวณใชวงเลบเพอจดกลมการคานวณ

16/12/58 เขยนโปรแกรม Java เบองตน19

เปรยบเทยบผลการคานวณเปรยบเทยบผลการคานวณ

• int a = 2 + (3 * 4);

• int a = (2 + 3) * 4;

16/12/58 เขยนโปรแกรม Java เบองตน20

การแสดงผลการคานวณการแสดงผลการคานวณ• คาสง System.out.println()

• ตวอยาง

public class PrintMoney1 {

public static void main(String[] arg) {

i t 12int money = 12;

money *= 3;money 3;

System.out.println(money);y p y

}16/12/58 เขยนโปรแกรม Java เบองตน

21

การแสดงผลการคานวณการแสดงผลการคานวณ

• ตวอยาง

public class PrintMoney2 {

public static void main(String[] arg) {

int money = 12;

money *= 3;

System out println("Money is " + money);System.out.println("Money is " + money);

}16/12/58 เขยนโปรแกรม Java เบองตน

22

โปรแกรมคานวณราคารวมภาษมลคาเพมโปรแกรมคานวณราคารวมภาษมลคาเพม

public class TaxCalculator {

public static void main(String[] args) {

double price = 50;

double vat = price * 7 / 100;

double totalPrice = price + vat;

System.out.println("Price include VAT is " + totalPrice);

}

}

16/12/58 เขยนโปรแกรม Java เบองตน23

คาคงท

16/12/58 เขยนโปรแกรม Java เบองตน 24

เลขพศวง (Magic Number)เลขพศวง (Magic Number)

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);

}

}

16/12/58 เขยนโปรแกรม Java เบองตน25

คาคงทคาคงท

• แกปญหาเลขพศวง

ป• ตรงขามกบตวแปร

• รปแบบ• รปแบบ

• final ชนดขอมล ชอคาคงท = คา;final ชนดขอมล ชอคาคงท คา;• ตวอยาง

• final double VAT_RATE = 1.07;

16/12/58 เขยนโปรแกรม Java เบองตน26

การคานวณภาษโดยใชคาคงทการคานวณภาษโดยใชคาคงทpublic class TaxCalculatorConst {

public static void main(String[] args) {

final double VAT RATE = 1 07;final double VAT_RATE = 1.07;

double tvPrice = 10000;

double dvdPrice = 600;

double cdPrice = 200;

double totalTVPrice = tvPrice * VAT_RATE;

double totalDVDPrice = dvdPrice * VAT RATE; double totalDVDPrice dvdPrice VAT_RATE;

double totalCDPrice = cdPrice * VAT_RATE;

16/12/58 เขยนโปรแกรม Java เบองตน27

สรปสร

16/12/58 เขยนโปรแกรม Java เบองตน 28

สรปสรป

• ตวแปรเปนเหมอนกบกลองทสามารถใสคาตางๆลงไป

ป ป ป • ตวแปรแบงออกเปน 2 ประเภทคอ

• ตวแปรชนดขอมลพนฐาน• ตวแปรชนดขอมลพนฐาน

• ตวแปรทอางถงวตถหรอเรฟเฟอรเรนซตวแปรทอางถงวตถหรอเรฟเฟอรเรนซ

16/12/58 เขยนโปรแกรม Java เบองตน29

สรปสรป

• การบรรยายนกลาวถงตวแปรประเภทแรก นนคอตว

แปรชนดขอมลพนฐาน ซงสามารถแบงออกเปน 2 แปรชนดขอมลพนฐาน ซงสามารถแบงออกเปน 2

ประเภทยอยๆ คอ

• ตวเลข ไดแก byte, short, int, long, float และ

double

ไ ใ ไ • ไมใชตวเลข ไดแก char และ boolean

16/12/58 เขยนโปรแกรม Java เบองตน30

สรปสรป

• ตวแปรทเปนตวเลขสามารถนามาคานวณไดโดยใช

เครองหมาย + * / และ % เปนตนเครองหมาย +, -, *, /, และ % เปนตน

• การคานวณจะเรมจากเครองหมายทมความสาคญการคานวณจะเรมจากเครองหมายทมความสาคญ

มากกวากอน

• เพอความแนนอน ใหใชวงเลบชวยจดลาดบการ

คานวณ

16/12/58 เขยนโปรแกรม Java เบองตน31

สรปสรป

• ไมควรใชเลขพศวงในการคานวณ ใหใชคาคงทแทน

ป ไ โ ใ • การประกาศคาคงททาไดโดยใชคาวา final

16/12/58 เขยนโปรแกรม Java เบองตน32

ประโยคควบคม

16/12/58 เขยนโปรแกรม Java เบองตน 1

หวขอหวขอ

• การทางานแบบเรยงลาดบ

• ประโยค if, if‐else• ประโยค switch• ประโยคทใชทางานซาหรอลป

– for– while– do‐while

• คาสง break• คาสง continue

16/12/58 เขยนโปรแกรม Java เบองตน 2

การทางานแบบเรยงลาดบ

16/12/58 เขยนโปรแกรม Java เบองตน 3

การทางานแบบเรยงลาดบการทางานแบบเรยงลาดบ

bli l Sh ipublic class Shopping

{public static void main(String[] args) 

{int cash      = 500;

int bookPrice = 180;

int foodPrice =  20;int sodaPrice =   7;

cash ‐= bookPrice;

cash ‐= foodPrice;

cash ‐= sodaPrice;

System.out.println("Cash = " + cash);

}}

16/12/58 เขยนโปรแกรม Java เบองตน 4

ประโยค if

16/12/58 เขยนโปรแกรม Java เบองตน 5

ประโยค ifประโยค if• รปแบบ

if (เงอนไข) 

{{ประโยคทจะทางานเมอเงอนไขเปนจรง;

}

• ตวอยางตวอยาง

if (cash >= bookPrice) {

System.out.println("Buy book."); }}

16/12/58 เขยนโปรแกรม Java เบองตน 6

ตวอยางการตดสนใจซอหนงสอตวอยางการตดสนใจซอหนงสอ

public class If {

public static void main(String[] args) {

int cash      = 200;

int bookPrice = 180;

if (cash >= bookPrice) {if (cash >= bookPrice) {         

cash -= bookPrice;        

System.out.println("Buy book.");

}

System.out.println("Cash = " + cash);

}

}}

16/12/58 เขยนโปรแกรม Java เบองตน 7

การเปรยบเทยบการเปรยบเทยบ

1. <

2 >2. >

3. <=

4. >=

5. ==6 !6. !=

16/12/58 เขยนโปรแกรม Java เบองตน 8

การเปรยบเทยบทศนยมการเปรยบเทยบทศนยม

ใ ไ• แทนทจะเทยบความเทากน บางทควรเทยบวามคาใกลเคยงกนหรอไม

• เชน d = 2เชน d   2– d * d ไมเทากบ2 

d * d ใ 2– d * d มคาใกลเคยงกบ 2

16/12/58 เขยนโปรแกรม Java เบองตน 9

ตวดาเนนการแบบบล (Boolean operator)ตวดาเนนการแบบบล (Boolean operator)

&& • && คอ AND– เชน เงอนไข cash >= price && price < 150 p p

• || คอ OR

! NOT• ! คอ NOT

16/12/58 เขยนโปรแกรม Java เบองตน 10

ตวดาเนนการแบบบลตวดาเนนการแบบบล

เงอนไข ตวดาเนนการแบบบล

A B A && B A || B !A

false false false false true

false true false true true

true false false true false

t t t t f ltrue true true true false

16/12/58 เขยนโปรแกรม Java เบองตน 11

ตวดาเนนการแบบบลตวดาเนนการแบบบล

bl l f dpublic class IfAnd

{

public static void main(String[] args)public static void main(String[] args) 

{

int cash  = 220;

int price = 100;

if ( h i && i 150)if (cash >= price && price < 150) 

System.out.println("Buy book.");

}}

}

16/12/58 เขยนโปรแกรม Java เบองตน 12

การใชตวแปรแทนเงอนไขการใชตวแปรแทนเงอนไข

f ( && )• if (มเงนพอ && ราคาทสมเหตผล)

• if (cash >= price && price < 150)

• boolean hasEnoughCash = cash >= price;g pboolean reasonablePrice = price < 150;if (hasEnoughCash && reasonablePrice)if (hasEnoughCash && reasonablePrice) 

16/12/58 เขยนโปรแกรม Java เบองตน 13

การทางานเมอเงอนไขเปนเทจ (else)การทางานเมอเงอนไขเปนเทจ (else)

• รปแบบ

if (เงอนไข)

{

ประโยคทจะทางานเมอเงอนไขเปนจรง;

}

else

{{

ประโยคทจะทางานเมอเงอนไขเปนเทจ;

}}

16/12/58 เขยนโปรแกรม Java เบองตน 14

ตวอยางการตดสนใจใชบตรเครดตตวอยางการตดสนใจใชบตรเครดต

int cash  = 200;

int price = 380;

if (cash >= price) 

{

cash ‐= price;    

System.out.println("Use cash");

}

else 

{

System.out.println("Use card");

}system.out.println(“Cash = “ + cash);

}}

16/12/58 เขยนโปรแกรม Java เบองตน 15

การกาหนดคาตามเงอนไขการกาหนดคาตามเงอนไข

ป• รปแบบ

– ตวแปร = เงอนไข ? a : b;

• ตวอยาง

i t i 99int price = 99;

int withdraw = price <= 100 ? 100 : 200; 

ถาเงอนไขเปนจรง withdraw มคาเปน 100 ถาเงอนไขเปนเทจ withdraw มคาเปน 200คาเปน 200

16/12/58 เขยนโปรแกรม Java เบองตน 16

การจดระเบยบโปรแกรมการจดระเบยบโปรแกรม

public class IfAssignMessy

{

bli t ti id i ( St i [] )public static void main( String[] args ) 

{

int price = 99;

int withdraw;

if( price <= 100 )

withdraw = 100;withdraw = 100;

else

withdraw = 200; 

System.out.println("Withdraw = " + withdraw);

}}

16/12/58 เขยนโปรแกรม Java เบองตน 17

การจดระเบยบโปรแกรมการจดระเบยบโปรแกรม

public class IfAssign

{

bli t ti id i (St i [] )public static void main(String[] args) 

{

int price = 99;

int withdraw;

if (price <= 100)if (price <= 100)

withdraw = 100;

else

withdraw = 200; 

System.out.println("Withdraw = " + withdraw);y p ( );

}

}16/12/58 เขยนโปรแกรม Java เบองตน 18

การจดระเบยบโปรแกรมการจดระเบยบโปรแกรม

public class IfAssign {

public static void main(String[] args) {

i t i 99int price = 99;

int withdraw;

if (price <= 100)

withdraw = 100;

elseelse

withdraw = 200; 

System.out.println("Withdraw = " + withdraw);

}

}}

16/12/58 เขยนโปรแกรม Java เบองตน 19

รปแบบ if‐else ifรปแบบ if‐else if 

if (เงอนไข1)

{{ประโยคทจะทางานเมอ เงอนไข1 เปน จรง;

}else if (เงอนไข2)

{ประโยคทจะทางานเมอ เงอนไข2 เปน จรง;ประโยคทจะทางานเมอ เงอนไข2 เปน จรง;

}

else 

{ประโยคทจะทางานเมอ เงอนไขกอนหนานทงหมด เปน เทจ;

}

16/12/58 เขยนโปรแกรม Java เบองตน 20

ตวอยางการคดเกรดตวอยางการคดเกรด

h dchar grade;

int score = 70;

if 90if (score >= 90)

grade = 'A';

else if (score >= 80)

grade = 'B';

else if (score >= 60)

grade = 'C';

else if (score >= 40)

grade = 'D';

else 

grade = 'F';

16/12/58 เขยนโปรแกรม Java เบองตน 21

ประโยค switch

16/12/58 เขยนโปรแกรม Java เบองตน 22

รปแบบรปแบบ

switch ( )switch (กรณ) 

{case กรณ1:

ประโยค;

break;

case กรณ2:

ประโยค;

break; break;

default:

ประโยค;;}

16/12/58 เขยนโปรแกรม Java เบองตน 23

ตวอยางการพมพขอความชมเชยตามเกรดทไดตวอยางการพมพขอความชมเชยตามเกรดทได

char grade = 'B';

switch (grade) 

{

case 'A':case  A : System.out.println(“ดมาก"); 

break;

case 'B': System.out.println(“ด");

break;

case 'C': S i l (“ ใ ")System.out.println(“พอใช");

break;

case 'D': System.out.println(“ตองปรบปรง");System.out.println( ตองปรบปรง );

break;

default:System.out.println(“แกไข");

}

16/12/58 เขยนโปรแกรม Java เบองตน 24

Menu1.บวก

2.ลบ2.ลบ

3. คณ

4.หาร

16/12/58 เขยนโปรแกรม Java เบองตน 25

แบบฝกหดแบบฝกหด

ใ ใ โ ใหรบ ชอผซอ และเลอกหนงสอ และใหกาหนดจานวนหนงสอ โดยมเมน

ดงน

MENU1 โป1. การเขยนโปรแกรมภาษาจาวา

2. คมอ VB.NET 

3. หนงสอภาษาไทย

โ โปโดยกาหนดวา หนงสอการเขยนโปรแกรมภาษาจาวา ราคา 350

คมอ VB.NET  540 หนงสอภาษาไทย 150

16/12/58 เขยนโปรแกรม Java เบองตน 26

การวนลปแบบ while 

16/12/58 เขยนโปรแกรม Java เบองตน 27

รปแบบรปแบบ

hil ( ไwhile (เงอนไข)

{ ประโยคททาซาขณะทเงอนไขเปนจรง;

}}

16/12/58 เขยนโปรแกรม Java เบองตน 28

ตวอยางการคานวณดอกเบยตวอยางการคานวณดอกเบย

int year = 0;

double balance = 100;

while (balance <= 10000)

{{

year++;

b l * 1 05balance *= 1.05;

}

16/12/58 เขยนโปรแกรม Java เบองตน 29

ป d hilการวนลปแบบ do‐while 

16/12/58 เขยนโปรแกรม Java เบองตน 30

รปแบบรปแบบ

do 

{{ ประโยค;

} while (เงอนไข);

16/12/58 เขยนโปรแกรม Java เบองตน 31

ตวอยางวนลปจนกวาจะไดขอมลทถกตองตวอยางวนลปจนกวาจะไดขอมลทถกตอง

ddo

{{

รบขอมล;

} while (ขอมลไมถกตอง);

นาขอมลทถกตองไปประมวลผล;นาขอมลทถกตองไปประมวลผล;

16/12/58 เขยนโปรแกรม Java เบองตน 32

การวนลปแบบ for 

16/12/58 เขยนโปรแกรม Java เบองตน 33

รปแบบรปแบบ

f ไfor (ประโยคเรม; เงอนไข; ประโยคอพเดท)

{{

ประโยคในลป;

}

16/12/58 เขยนโปรแกรม Java เบองตน 34

ตวอยางวนลปเปนจานวน 5 ครงตวอยางวนลปเปนจานวน 5 ครง

f (for (int i = 0; i < 5; i++)

{{ // ประโยคทจะทาซา 5 ครง

}

16/12/58 เขยนโปรแกรม Java เบองตน 35

ตวอยางการคานวณยอดเงนในบญชเมอเวลาผานไป 95 ปตวอยางการคานวณยอดเงนในบญชเมอเวลาผานไป 95 ป

double balance = 100;

f ( )for (int i = 0; i < 95; i++)

{b l * 0 (b l b l * 0 )balance *= 1.05; (balance = balance*1.05)

}

System.out.println(balance);

16/12/58 เขยนโปรแกรม Java เบองตน 36

คาสง break

16/12/58 เขยนโปรแกรม Java เบองตน 37

การออกจาก while ดวยคาสง breakการออกจาก while ดวยคาสง break

hil ไ ใ ปwhile( เงอนไข ในการวนลป)

{

….

if( เงอนไขทจะออกจากลป )

break;

….

}

คาสงหลงลป;

16/12/58 เขยนโปรแกรม Java เบองตน 38

การออกจาก for ดวยคาสง breakการออกจาก for ดวยคาสง break

for (int i = 0; i < 5; i++) 

{{

System.out.print("<");

if (i == 2)

b kbreak;

S t t i t(i " ")System.out.print(i + ">");

}

16/12/58 เขยนโปรแกรม Java เบองตน 39

คาสง continue

16/12/58 เขยนโปรแกรม Java เบองตน 40

ขามไปตรวจสอบเงอนไขขามไปตรวจสอบเงอนไข

h l ไwhile( เงอนไขในการวนลป)

{{

….

if( เงอนไขทจะกลบไปตนลป )

continue;continue;

….

}

16/12/58 เขยนโปรแกรม Java เบองตน 41

ขามไปตรวจสอบเงอนไขขามไปตรวจสอบเงอนไข

f ไfor (ประโยคเรม; เงอนไข; ประโยคอพเดท)

{{

….

if( เงอนไขทจะกลบไปตนลป )

continue;continue;

….

}

16/12/58 เขยนโปรแกรม Java เบองตน 42

ตวอยางโปรแกรมตวอยางโปรแกรม

for (int i = 0; i < 5 ;  i++ )

{{

System.out.print("<");

if (i == 2)

continue;

System.out.print(i + ">");

}

16/12/58 เขยนโปรแกรม Java เบองตน 43

สรป

16/12/58 เขยนโปรแกรม Java เบองตน 44

สรปสรป

โ ไปโป • โดยทวไปโปรแกรมจะทางานเรยงลาดบทละคาสง

• ประโยคควบคมมหนาทควบคมการลาดบการทางานของคาสงตางๆ ๆ

• คาสงทอยถดจากประโยค if จะทางานเมอเงอนไขเปนจรง

16/12/58 เขยนโปรแกรม Java เบองตน 45

สรปสรป

f l ไ• ประโยค if-else ทาใหโปรแกรมทางานอยางหนงเมอเงอนไขเปนจรงและทางานอกอยางหนงเมอเงอนไขเปนเทจ

• ประโยค if-else if ใชกรณทมหลายๆ เงอนไข

ป โ it h ใ ไ โ ป • ประโยค switch ใชกรณทมหลายๆ เงอนไข โดยจะเปรยบเทยบกบคาคงท

16/12/58 เขยนโปรแกรม Java เบองตน 46

สรปสรป

h l ไ• ประโยค while ใชเพอวนทางานซาจนกวาเงอนไขจะเปนเทจ

• ประโยค do-while จะทางานในกลมประโยคหลง do หนงครง ตรวจสอบเงอนไข และจะวนลปไปเรอยๆจนกวาเงอนไขจะเปนเทจ

ป โ f ป ป • ประโยค for เปนลปทเหมาะสาหรบการกาหนดจานวนครงการวนซา

16/12/58 เขยนโปรแกรม Java เบองตน 47

สรปสรป

b k • คาสง break ใชเพอออกจากลป

• คาสง continue จะตรวจสอบเงอนไขของลป ถาเปนจรงจะทางานคาสงทอยตนลป แตถาเปนเทจจะออกจากลป

16/12/58 เขยนโปรแกรม Java เบองตน 48

แบบฝกหด แบบฝกหด

f l • จงเขยนโปรแกรมเพอแสดงชอและเงนเดอนโดยใชคาสง if‐ else ทประมวลผลแสดงผลดงตอไปน

‐ เงนเดอนมากกวา 200000 แสดงผล คณเปนผจดการ

‐ เงนเดอนมากวา 150000 – 200000   แสดงผลคณเปนผจดการฝาย

‐ เงนเดอนมากกวา 100000 – 150000 แสดงผลคณเปนผจดการแผนก

เงนเดอนตงแต 50000 100000 แสดงผลคณเปนหวหนาหนวย‐ เงนเดอนตงแต 50000 – 100000 แสดงผลคณเปนหวหนาหนวย

‐ เงนเดอนตากวา 50000 แสดงผลคณเปนพนกงาน

16/12/58 เขยนโปรแกรม Java เบองตน 49

แบบทดสอบแบบทดสอบ

ใ โใหเขยนโปรแกรมตรวจสอบ Username = add และ

P d ddPassword = add

จานวน 3 ครง ***ถาถกครงใดครงหนงแสดงวา ATCจานวน 3 ครง ถาถกครงใดครงหนงแสดงวา ATC

ครงท 1 แสดงขอความวา กรณาตรวจสอบครงท 2ครงท 1 แสดงขอความวา กรณาตรวจสอบครงท 2

ครงท 2 แสดงขอความวา กรณาตรวจสอบครงท 3ครงท 2 แสดงขอความวา กรณาตรวจสอบครงท 3

ครงท 3 แสดงขอความวา ออกจากโปรแกรมครงท 3 แสดงขอความวา ออกจากโปรแกรม16/12/58 เขยนโปรแกรม Java เบองตน 50

สายอกขระ

คอสายทไมไดเอาไปคานวณ คอสายทไมไดเอาไปคานวณ

จะเปนตวเลขหรอตวอกษรกไดจะเปนตวเลขหรอตวอกษรกได

16/12/58 เขยนโปรแกรม Java เบองตน 1

หวขอหวขอ

• • สายอกขระ

• คลาส String• คลาส String• คลาส StringBufferคลาส StringBuffer

16/12/58 เขยนโปรแกรม Java เบองตน2

สายอกขระ

16/12/58 เขยนโปรแกรม Java เบองตน 3

สายอกขระสายอกขระpublic class HelloWorld {public class HelloWorld {

public static void main(String[] args) {System.out.println("Hello, World! 2");

}}

16/12/58 เขยนโปรแกรม Java เบองตน4

ประโยชนของสายอกขระประโยชนของสายอกขระ

• ใ • บอกผลลพธของการคานวณใหเราทราบ

• รายงานขนตอนการทางานของโปรแกรมรายงานขนตอนการทางานของโปรแกรม

• เกบขอมลทเปนตวอกษร ตวเลข สญลกษณ เกบขอมลทเปนตวอกษร ตวเลข สญลกษณ

16/12/58 เขยนโปรแกรม Java เบองตน5

คลาส Stringคลาส String

16/12/58 เขยนโปรแกรม Java เบองตน 6

การใชงานสตรงการใชงานสตรง

• ป ป• ประกาศตวแปร

String name;String name;

• กาหนดคา

name = new String("Smith");

• แสดงผล

System out println(name); System.out.println(name);

16/12/58 เขยนโปรแกรม Java เบองตน7

เรฟเฟอรเรนซ (Reference)เรฟเฟอรเรนซ (Reference)i t• int n–n เปนขอมลชนดจานวนเตม n เปนขอมลชนดจานวนเตม

• String nameg–ไมไดหมายความวา name เปนวตถ String –แตเปนการบอกวา name เปนเรฟเฟอรเรนซ

(reference) หรอตวทใชอางองไปทวตถ String(reference) หรอตวทใชอางองไปทวตถ String

16/12/58 เขยนโปรแกรม Java เบองตน8

วตถและเรฟเฟอรเรนซวตถและเรฟเฟอรเรนซ

• • วตถ

• เรฟเฟอรเรนซ

16/12/58 เขยนโปรแกรม Java เบองตน9

การสงงานสตรง การสงงานสตรง

• ป• รปแบบ– เรฟเฟอรเรนซ.ขอความ(สงทสงไปพรอมกบขอความ)

• ตวอยาง– name.length();– name.charAt(1);

16/12/58 เขยนโปรแกรม Java เบองตน10

เมธอดทนาสนใจเมธอดทนาสนใจ

length() • length() ความยาวของสตรง

• charAt() ตวอกษรในตาแหนงทกาหนด• charAt() ตวอกษรในตาแหนงทกาหนด

–ตวอกษรตวแรกคอตาแหนงท 0

–ตวอกษรสดทายคอ length() - 1

• indexOf() ตาแหนงของสายอกขระในสตรง

b t i () • substring() สตรงทอยในชวงทกาหนด

16/12/58 เขยนโปรแกรม Java เบองตน11

ตวอยางการใชเมธอดตวอยางการใชเมธอดpublic class StringMessage {public class StringMessage {

public static void main(String[] args) {String name = "Smith";

System.out.println(name.length());S t t i tl h At 2System.out.println(name.charAt(2));System.out.println(name.indexOf("t"));System.out.println(name.substring(1, 3));System.out.println(name.substring(1, 3));

}}

16/12/58 เขยนโปรแกรม Java เบองตน12

การเปรยบเทยบสตรง (แบบผดๆ)การเปรยบเทยบสตรง (แบบผดๆ)public class StringCompareInCorrect {public class StringCompareInCorrect {

public static void main(String[] args) {String name1 = new String(“Smith”);String name2 = new String(“Smith”);System.out.println(name1 == name2);

}

}

16/12/58 เขยนโปรแกรม Java เบองตน13

การเปรยบเทยบสตรง (แบบผดๆ)การเปรยบเทยบสตรง (แบบผดๆ)

16/12/58 เขยนโปรแกรม Java เบองตน14

การเปรยบเทยบสตรงการเปรยบเทยบสตรงpublic class StringCompare {public class StringCompare {

public static void main(String[] args) {String name1 = new String(“Smith”);String name2 = new String(“Smith”);System.out.println(name1.equals(name2));

} }}

16/12/58 เขยนโปรแกรม Java เบองตน15

การตอสตรงการตอสตรง

concat()• เมธอด concat()• เครองหมาย +• เครองหมาย +• เครองหมาย +=เครองหมาย

16/12/58 เขยนโปรแกรม Java เบองตน16

เมธอด concat()เมธอด concat()public class StringConcat1 {public class StringConcat1 {

public static void main(String[] args) {String name = "Smith";String lastName = " Brown";String fullName = name.concat(lastname);S i l (f llSystem.out.println(fullName);

}}}

16/12/58 เขยนโปรแกรม Java เบองตน17

เครองหมาย +เครองหมาย +public class StringConcat2 {public class StringConcat2 {

public static void main(String[] args) {String name = "Smith";String lastName = " Brown";

String fullName = name + lastName;i l (f ll )System.out.println(fullName);

}

}}

16/12/58 เขยนโปรแกรม Java เบองตน18

เครองหมาย +=เครองหมาย +=public class StringAppend {public class StringAppend {

public static void main(String[] args) {String name = "Smith";String lastName = " Brown";

name += lastName;

S i l ( )System.out.println(name); }

}}

16/12/58 เขยนโปรแกรม Java เบองตน19

ความมนคงของสตรง

(Immutability)• ไ ป ป ไ • ไมสามารถเปลยนแปลงคาของสายอกขระไดเลย

หลงจากทเราไดสรางมนขนมา

• ในบรรดาขอความ (message) ทวตถ String รจกนน ไมมขอความใดเลยททาใหสายอกขระ

ป ป ไ เปลยนแปลงได

–length()length() –substring()

16/12/58 เขยนโปรแกรม Java เบองตน20

สตรงไมเปลยนแปลงสตรงไมเปลยนแปลงString str;String str;str = new String("Smith");str = new String("John");

16/12/58 เขยนโปรแกรม Java เบองตน21

สตรงไมเปลยนแปลงสตรงไมเปลยนแปลงString str = "Smith";String str Smith ;System.out.println(str.toUpperCase());System.out.println(str);

16/12/58 เขยนโปรแกรม Java เบองตน22

สตรงไมเปลยนแปลงสตรงไมเปลยนแปลง

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

String str = "A";for (int i = 0; i < 100; i++)

str += "A";System.out.println(str);

}}

16/12/58 เขยนโปรแกรม Java เบองตน23

สตรงไมเปลยนแปลงสตรงไมเปลยนแปลง

16/12/58 เขยนโปรแกรม Java เบองตน24

คลาส StringBufferคลาส StringBuffer

16/12/58 เขยนโปรแกรม Java เบองตน 25

ขอดของ StringBufferขอดของ StringBuffer• ป ใ ป• ประหยดทงหนวยความจาและเวลาในการประมวลผล

– วตถ StringBuffer สามารถเปลยนแปลงคาในสายวตถ StringBuffer สามารถเปลยนแปลงคาในสาย

อกขระทมนนาเสนอไดเอง โดยไมตองสรางวตถขนมาใหม

16/12/58 เขยนโปรแกรม Java เบองตน26

เมธอดทนาสนใจเมธอดทนาสนใจ

append() • append() การตอสายอกขระ• insert() การแทรกสายอกขระ• insert() การแทรกสายอกขระ• delete() การลบสายอกขระยอยdelete() การลบสายอกขระยอย

16/12/58 เขยนโปรแกรม Java เบองตน27

ตวอยางการใชเมธอดตวอยางการใชเมธอดStringBuffer sb = new StringBuffer("John");StringBuffer sb new StringBuffer( John );System.out.println(sb);

sb.append(" Hunter");System.out.println(sb);

sb.insert(4, "y");

Systemoutprintln(sb);System.out.println(sb);

sb.delete(2, 4);System.out.println(sb);

16/12/58 เขยนโปรแกรม Java เบองตน28

ป ป StringBufferทดลองเปลยนแปลง StringBufferpublic class StringBufferAppend {public class StringBufferAppend {

public static void main(String[] args) {

StringBuffer sb;sb = new StringBuffer("A");

f i i 0 i 100 ifor (int i = 0; i < 100; i++)

sb.append("A");

System.out.println(sb);}

}

16/12/58 เขยนโปรแกรม Java เบองตน29

ป ป StringBufferทดลองเปลยนแปลง StringBuffer

16/12/58 เขยนโปรแกรม Java เบองตน30

StringBuilderStringBuilder StringBuffer• มเมธอดทเหมอนกบ StringBuffer

• ทางานไดเรวกวา StringBuffer• ทางานไดเรวกวา StringBuffer• StringBuffer ปลอดภยสาหรบการทางานในแบบStringBuffer ปลอดภยสาหรบการทางานในแบบ

multiple threads

16/12/58 เขยนโปรแกรม Java เบองตน31

Java DocJava Doc

16/12/58 เขยนโปรแกรม Java เบองตน 32

เอกสารอางองเอกสารอางอง

16/12/58 เขยนโปรแกรม Java เบองตน33

แหลงเอกสารแหลงเอกสาร

http://java sun com/j se/ docs/• http://java.sun.com/j2se/1.5.0/docs/apiapi

• http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

• http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuffer htmlcs/api/java/lang/StringBuffer.html

16/12/58 เขยนโปรแกรม Java เบองตน34

สรป

16/12/58 เขยนโปรแกรม Java เบองตน 35

สรปสรป• สายอกขระมไวเพอการแสดงผลขอความ• สายอกขระมไวเพอการแสดงผลขอความ

• สายอกขระไดถกนาเสนอดวยวตถ String และ StringBuffer• เราสามารถใชงานวตถไดโดยผานทางเรฟเฟอรเรนซ

• เรฟเฟอรเรนซเปรยบเสมอนรโมทคอนโทรล

• วตถเปรยบไดกบสงทรโมทนนควบคมอย

• การสงขอความหาวตถเปรยบไดกบการกดปมรโมทคอนโทรล• การสงขอความหาวตถเปรยบไดกบการกดปมรโมทคอนโทรล

16/12/58 เขยนโปรแกรม Java เบองตน36

สรปสรป• การเปรยบเทยบสตรงทาไดโดยการสงขอความ equals( ) • การเปรยบเทยบสตรงทาไดโดยการสงขอความ equals( )

• การตอสตรงนอกจากจะใชการสงขอความ concat() แลว ยงสามารถใช

+ ไ เครองหมาย + ไดอกดวย• สายอกขระของวตถ String ไมสามารถถกเปลยนแปลงได

• ถาตองการเปลยนแปลงคาในสายอกขระบอยๆ ควรใชวตถ StringBuffer

16/12/58 เขยนโปรแกรม Java เบองตน37

ÊÒÂoa¡¢ÃaÊÒÂo¡¢Ãa

คอสายทไมไดเอาไปคานวณ

จะเปนตวเลขหรอตวอกษรกได

16/12/58 เขยนโปรแกรม Java เบองตน 1

�ËaÇ¢ �o

ÊÒÂoa¡¢Ãa

¤ÅÒÊ String Å Ê tring

¤ÅÒÊ StringBuffer¤ÅÒÊ StringBuffer

16/12/58 เขยนโปรแกรม Java เบองตน 2

ÊÒÂoa¡¢ÃaÊÒÂo¡¢Ãa

16/12/58 เขยนโปรแกรม Java เบองตน 3

ÊÒÂoa¡¢Ãa

([] )

..(" ! ")

16/12/58 เขยนโปรแกรม Java เบองตน 4

�»Ãaoª¹ �¢o§ÊÒÂoa¡¢Ãa

ºo¡¼ÅÅa¾¸ �¢o§¡ÒäíҹdzãË �eÃÒ·ÃÒº

ÃÒ§ҹ¢aé¹µo¹¡Ò÷íÒ§Ò¹¢o§o»Ãæ¡ÃÁ

e¡çº¢ �oÁÙÅ·Õèe» �¹µaÇoa¡Éà µaÇeÅ¢ Êa­Åa¡É³ �

16/12/58 เขยนโปรแกรม Java เบองตน 5

Å Ê St i¤ÅÒÊ String

16/12/58 เขยนโปรแกรม Java เบองตน 6

�¡ÒÃ㪠�§Ò¹ÊµÃi§

»Ãa¡ÒȵaÇæ»Ã

¡íÒ˹´¤ �Ò " "

æÊ´§¼Å æÊ´§¼Å

16/12/58 เขยนโปรแกรม Java เบองตน 7

� �eÿe¿oà �eù« � (Reference)

int n

n e» �¹¢ �oÁÙŪ¹ i ¨íҹǹeµçÁ

String name

äÁ �ä´ �ËÁÒ¤ÇÒÁÇ �Ò name e» �¹Çaµ¶ u String

æµ �e» �¹¡Òúo¡Ç �Ò name e» �¹eÿe¿oà �eù« � (reference) ËÃoµaÇ·Õè㪠�o �Ò§o i§ä»·ÕèÇaµ¶ String (reference) ËÃoµÇ·ãªoÒ§o§ä»·Çµ¶ u String

16/12/58 เขยนโปรแกรม Java เบองตน 8

� �Çaµ¶ uæÅaeÿe¿oà �eù« �

Çaµ¶ uu

eÿe¿oà �eù« �

16/12/58 เขยนโปรแกรม Java เบองตน 9

è¡ÒÃÊa觧ҹʵÃi§

û溺Ãٻ溺 eÿe¿oà �eù« �.¢ �o¤ÇÒÁ(Ê i觷ÕèÊ �§ä»¾Ã �oÁ¡aº¢ �o¤ÇÒÁ)

µaÇo �Ò§ name.length();

name.charAt(1);

16/12/58 เขยนโปรแกรม Java เบองตน 10

è �eÁ¸o´·Õè¹ �Òʹã¨

length() ¤ÇÒÁÂÒÇ¢o§ÊµÃi§

charAt() µaÇoa¡ÉÃã¹µíÒæ˹ �§·Õè¡íÒ˹´

µaÇoa¡ÉõaÇæá¤oµíÒæ˹ �§·Õè 0

µaÇoa¡ÉÃÊ u´· �Ò¤o length() - 1

i d Of() í � Ê a ã Ê iindexOf() µíÒæ˹ �§¢o§ÊÒÂoa¡¢Ãaã¹ÊµÃ i§

subst ing() ʵÃi§·Õèo �㹪 �ǧ·Õè¡íÒ˹´substring() ʵç·oÂÙ㹪ǧ·¡Ò˹´16/12/58 เขยนโปรแกรม Java เบองตน 11

� �µaÇo �Ò§¡ÒÃ㪠�eÁ¸o´

public class StringMessage {

public static void main(String[] args) {

String name = "Smith";

System.out.println(name.length());

System out println(name charAt(2));System.out.println(name.charAt(2));

System.out.println(name.indexOf("t"));

System.out.println(name.substring(1, 3));

}}

}16/12/58 เขยนโปรแกรม Java เบองตน 12

¡ÒÃe»ÃÕºe·Õºʵà i§ (溺¼ i æ)public class StringCompareInCorrect {

public static void main(String[] args) {public static void main(String[] args) {String name1 = new String(“Smith”);String name2 = new String(“Smith”);g gSystem.out.println(name1 == name2);

}

}

16/12/58 เขยนโปรแกรม Java เบองตน 13

¡ÒÃe»ÃÕºe·Õºʵà i§ (溺¼ i æ)

16/12/58 เขยนโปรแกรม Java เบองตน 14

¡ÒÃe»ÃÕºe·Õºʵà i§public class StringCompare {

public static void main(String[] args) {public static void main(String[] args) {String name1 = new String(“Smith”);String name2 = new String(“Smith”);g gSystem.out.println(name1.equals(name2));

}}

16/12/58 เขยนโปรแกรม Java เบองตน 15

�¡Òõ �oʵà i§

eÁ¸o´ concat()

e¤Ã èo§ËÁÒ +

e¤Ã èo§ËÁÒ +=

16/12/58 เขยนโปรแกรม Java เบองตน 16

eÁ¸o´ concat()public class StringConcat1 {

public static void main(String[] args) {public static void main(String[] args) {String name = "Smith";String lastName = " Brown";gString fullName = name.concat(lastname);System.out.println(fullName);

}}

16/12/58 เขยนโปรแกรม Java เบองตน 17

èe¤Ã èo§ËÁÒ +public class StringConcat2 {

public static void main(String[] args) {public static void main(String[] args) {String name = "Smith";String lastName = " Brown";gString fullName = name + lastName;System.out.println(fullName);

}

}

16/12/58 เขยนโปรแกรม Java เบองตน 18

èe¤Ã èo§ËÁÒ +=public class StringAppend {

public static void main(String[] args) {public static void main(String[] args) {String name = "Smith";String lastName = " Brown";name += lastName;System.out.println(name);

}

}

16/12/58 เขยนโปรแกรม Java เบองตน 19

è b¤ÇÒÁÁa蹤§¢o§ÊµÃ i§ (Immutability)

äÁ �ÊÒÁÒöe»ÅÕè¹æ»Å§¤ �Ò¢o§ÊÒÂoa¡¢Ãaä´ �eÅÂËÅa§¨Ò¡·ÕèeÃÒä´ �Êà �Ò§Áa¹¢ é¹ÁÒ

㹺ÃôҢ �o¤ÇÒÁ (message) ·ÕèÇaµ¶ u String ÃÙ� a¡é è è¹aé¹ äÁ �ÁÕ¢ �o¤ÇÒÁã´eÅ·Õè·íÒãË �ÊÒÂoa¡¢Ãae»ÅÕè¹æ»Å§ä´ �

l h() length()

substring() substring() 16/12/58 เขยนโปรแกรม Java เบองตน 20

� èʵà i§äÁ �e»ÅÕè¹æ»Å§String str;str = new String("Smith");str = new String( Smith );str = new String("John");

16/12/58 เขยนโปรแกรม Java เบองตน 21

� èʵà i§äÁ �e»ÅÕè¹æ»Å§String str = "Smith";System out println(str toUpperCase());System.out.println(str.toUpperCase());System.out.println(str);

16/12/58 เขยนโปรแกรม Java เบองตน 22

� èʵà i§äÁ �e»ÅÕè¹æ»Å§

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

String str = "A";for (int i = 0; i < 100; i++)

str += "A";System.out.println(str);

}}

16/12/58 เขยนโปรแกรม Java เบองตน 23

� èʵà i§äÁ �e»ÅÕè¹æ»Å§

16/12/58 เขยนโปรแกรม Java เบองตน 24

Å Ê St i B ff¤ÅÒÊ StringBuffer

16/12/58 เขยนโปรแกรม Java เบองตน 25

�¢ �o´Õ¢o§ StringBuffer

»ÃaËÂa´·aé§Ë¹ �ǤÇÒÁ¨íÒæÅaeÇÅÒ㹡ÒûÃaÁÇżÅ

Çaµ¶ u StringBuffer ÊÒÁÒöe»ÅÕè¹æ»Å§¤ �Òã¹ÊÒÂoa¡¢Ãa·ÕèÁa¹¹íÒeʹoä´ �eo§ o´ÂäÁ �µ �o§Êà �Ò§Çaµ¶ u¢ é¹ÁÒãËÁ �

16/12/58 เขยนโปรแกรม Java เบองตน 26

è �eÁ¸o´·Õè¹ �Òʹã¨

append() ¡Òõ �oÊÒÂoa¡¢Ãapp

insert() ¡ÒÃæ·Ã¡ÊÒÂoa¡¢Ãa

delete() ¡ÒÃźÊÒÂoa¡¢Ãa �oÂ

16/12/58 เขยนโปรแกรม Java เบองตน 27

� �µaÇo �Ò§¡ÒÃ㪠�eÁ¸o´StringBuffer sb = new StringBuffer("John");Systemoutprintln(sb);System.out.println(sb);

sb.append(" Hunter");System.out.println(sb);

b i t(4 " ")sb.insert(4, "y");

System.out.println(sb);

sb.delete(2, 4);System.out.println(sb);System.out.println(sb);

16/12/58 เขยนโปรแกรม Java เบองตน 28

·´Åo§e»ÅÕè¹æ»Å§ StringBuffer

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

StringBuffer sb;sb = new StringBuffer("A");

for (int i = 0; i < 100; i++)

sb.append("A");

Systemoutprintln(sb);System.out.println(sb);}

}

16/12/58 เขยนโปรแกรม Java เบองตน 29

·´Åo§e»ÅÕè¹æ»Å§ StringBuffer

16/12/58 เขยนโปรแกรม Java เบองตน 30

StringBuilder

ÁÕeÁ¸o´·ÕèeËÁo¹¡aº StringBuffer

·íÒ§Ò¹ä´ �eÃçÇ¡Ç �Ò StringBuffer

StringBuffer »Åo´ÀaÂÊíÒËÃaº¡Ò÷íÒ§Ò¹ã¹æººmultiple threads

16/12/58 เขยนโปรแกรม Java เบองตน 31

Java DocJava Doc

16/12/58 เขยนโปรแกรม Java เบองตน 32

�eo¡ÊÒÃo�Ò§o i§

16/12/58 เขยนโปรแกรม Java เบองตน 33

�æËÅ �§eo¡ÊÒÃ

http://java.sun.com/j2se/1.5.0/docs/apip j j p

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

http://java.sun.com/j2se/1.5.0/docs/api//l / i B h ljava/lang/StringBuffer.html

16/12/58 เขยนโปรแกรม Java เบองตน 34

ÊûÊà u»

16/12/58 เขยนโปรแกรม Java เบองตน 35

ÊÃ u»

ÊÒÂoa¡¢ÃaÁÕäÇ �e¾ èo¡ÒÃæÊ´§¼Å¢ �o¤ÇÒÁ

ÊÒÂoa¡¢Ãaä´ �¶Ù¡¹íÒeʹo´ �ÇÂÇaµ¶ u String æÅa StringBuffer

eÃÒÊÒÁÒö㪠�§Ò¹Çaµ¶ uä´ �o´Â¼ �Ò¹·Ò§eÿe¿oà �eù« � u

eÿe¿oà �eù« �e»ÃÕºeÊÁo¹ÃÕoÁ·¤o¹o·ÃÅ

Çaµ¶e»ÃÕÂºä´ �¡aºÊ i觷ÕèÃÕoÁ·¹a鹤Ǻ¤Áo � ǵ¶ ue»Ãº䴡ºÊ§·ÃoÁ·¹¹¤Çº¤ uÁoÂÙ

¡ÒÃÊ �§¢ �o¤ÇÒÁËÒÇaµ¶ ue»ÃÕÂºä´ �¡aº¡Òá´» u�ÁÃÕoÁ·¤o¹o·ÃÅ

16/12/58 เขยนโปรแกรม Java เบองตน 36

ÊÃ u»

¡ÒÃe»ÃÕºe·Õºʵà i§·íÒä´ �o´Â¡ÒÃÊ �§¢ �o¤ÇÒÁ equals( )

¡Òõ �oʵÃi§¹o¡¨Ò¡¨a㪠�¡ÒÃÊ �§¢ �o¤ÇÒÁ concat() æÅ�Ç Âa§ÊÒÁÒö㪠�e¤Ã èo§ËÁÒ + ä´ �oÕ¡´ �ÇÂ

ÊÒÂoa¡¢Ãa¢o§Çaµ¶ u String äÁ �ÊÒÁÒö¶Ù¡e»ÅÕè¹æ»Å§ä´ �

¶ �Òµ �o§¡ÒÃe»ÅÕè¹æ»Å§¤ �Òã¹ÊÒÂoa¡¢Ãaº �oÂæ ¤ÇÃãª�Çaµ¶ StringBuffer ¶Òµo§¡ÒÃe»Å¹æ»Å§¤Òã¹ÊÒÂo¡¢ÃaºoÂæ ¤ÇÃãªÇµ¶ u StringBuffer

16/12/58 เขยนโปรแกรม Java เบองตน 37

คณตศาสตร ตวหอหม คณตศาสตร ตวหอหม

และการจดรปแบบ

16/12/58 เขยนโปรแกรม Java เบองตน 1

หวขอหวขอ

h• คลาสMath• การรบขอมลจากผใช

• ตวหอหม (Wrappers)

• การจดรปแบบ

16/12/58 เขยนโปรแกรม Java เบองตน 2

คลาส Math 

16/12/58 เขยนโปรแกรม Java เบองตน 3

การคานวณการคานวณ

• งาย

– + - * / %

• ซบซอน

– คลาสMath

16/12/58 เขยนโปรแกรม Java เบองตน 4

เมธอดในคลาส Mathเมธอดในคลาส Math 

ใ ใ • sqrt() ใชในการหาคารากทสอง – Math.sqrt(9) จะมคาเทากบ 3

• pow() ใชในการหาคายกกาลง

– Math.pow(2, 4) จะเทากบ 24 หรอ 16 นนเอง

• abs() ใชในการหาคาสมบรณ

– Math.abs(‐4) จะเทากบ 4Math.abs( 4) จะเทากบ 4

16/12/58 เขยนโปรแกรม Java เบองตน 5

เมธอดในคลาส Mathเมธอดในคลาส Math 

il ใ ใ ไ • ceil() ใชในการหาคาเลขจานวนเตมนอยทสดทมากกวาตวเลขทระบไว – Math.ceil(3.27) จะมคาเทากบ 4

– Math.ceil(‐3.27) จะมคาเทากบ ‐3

• floor() ใชในการหาคาเลขจานวนเตมทมากทสดทนอยกวาตวเลขทระบไว – Math.floor(3.27) จะมคาเทากบ 3

– Math.floor(‐3.27) จะมคาเทากบ ‐4

16/12/58 เขยนโปรแกรม Java เบองตน 6

เมธอดในคลาส Mathเมธอดในคลาส Math 

d ใ ใ ป โ ใ • round() ใชในการปดเศษทศนยมโดยจะหาเลขจานวนเตมทใกลกบตวเลขทระบมากทสด

– Math.round(3.27) จะมคาเทากบ 3

Math round( 3 27) จะมคาเทากบ 3– Math.round(‐3.27) จะมคาเทากบ ‐3

• min() ใชหาคาตวเลขทนอยทสดระหวางเลขสองตวตามทระบไว

– Mathmin(3, 5) จะไดคาเทากบ 3Math.min(3, 5) จะไดคาเทากบ 3

• max() ใชหาคาตวเลขทมากทสดระหวางเลขสองตวตามทระบไว

– Math.max(3, 5) จะไดคาเทากบ 5,

16/12/58 เขยนโปรแกรม Java เบองตน 7

เมธอดในคลาส Mathเมธอดในคลาส Math 

D ป di ป d• toDegrees() แปลงมม radian เปนมม degree– Math.toDegrees(Math.PI) มคาเทากบ 180.0

• toRadians() ป degree ป radian • toRadians() แปลงมม degree เปนมม radian

– Math.toRadians(180) มคาเทากบ 3.141592653589793

• sin() • sin()

– Math.sin(Math.toRadians(90)) มคาเทากบ 1

16/12/58 เขยนโปรแกรม Java เบองตน 8

ปรมาตรวตถทรงกลมปรมาตรวตถทรงกลม

( ) 3• ปรมาตร = (4÷3) × × รศม3

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

double radius = 10;double volume = 4 0 / 3 0 * double volume = 4.0 / 3.0

Math.PI *

Math.pow(radius, 3);

System.out.println(volume);}

}

16/12/58 เขยนโปรแกรม Java เบองตน 9

เลขสมเลขสม

d ()• เมธอด random() – return คาสมในชวง 0 เกอบถง 1

for (int i = 0; i < 10; i++) {( ; ; ) {

double r = Math.random() * 100;int rand = (int) r;

System.out.println(rand);}}

16/12/58 เขยนโปรแกรม Java เบองตน 10

การรบขอมลจากผใช

16/12/58 เขยนโปรแกรม Java เบองตน 11

คลาส java util Scannerคลาส java.util.Scanner

• คอนสตรกเตอร

– java.util.Scanner(InputStream src);j ( p )

• เมธอด

I ()– nextInt();

– nextDouble();– next();

16/12/58 เขยนโปรแกรม Java เบองตน 12

ตวอยางตวอยาง

j til Sjava.util.Scanner sc;sc = new java.util.Scanner(System.in);

System.out.print("Please enter an integer : ");int i = sc.nextInt();

System.out.print("Please enter a double : ");d bl d tD bl ()double d = sc.nextDouble();

System.out.print("Please enter a string : ");System.out.print( Please enter a string : );String s = sc.next();

16/12/58 เขยนโปรแกรม Java เบองตน 13

ผลการทางานผลการทางาน

16/12/58 เขยนโปรแกรม Java เบองตน 14

ถาไมอยากใชชอเตมถาไมอยากใชชอเตม

import java.util.Scanner;

class MyClass {public static void main(String[] a) {

Scanner sc = new Scanner(System.in);

...}}

}

16/12/58 เขยนโปรแกรม Java เบองตน 15

ตวหอหม (Wrappers) 

16/12/58 เขยนโปรแกรม Java เบองตน 16

ตวหอหมตวหอหม

• หอชนดขอมลพนฐาน

– เพอใสใน Collection

• แปลง String เปนชนดขอมลพนฐาน

ป ป St i• แปลงจากชนดขอมลพนฐานเปน String• มคาคงทของคาทมากสดและนอยของชนดขอมลพนฐาน ฐ

16/12/58 เขยนโปรแกรม Java เบองตน 17

คลาสทเปนตวหอหมคลาสทเปนตวหอหม

ชนดขอมลพนฐาน คลาสในกลม Wrapper

boolean Booleanchar Characterbyte Byteshort Shortint Integerlong Longlong Longfloat Floatdouble Double

16/12/58 เขยนโปรแกรม Java เบองตน 18

double Double

การสรางวตถ Wrapperการสรางวตถ Wrapper 

Boolean bo = new Boolean(true);Boolean bo = new Boolean("true");Boolean bo = new Boolean( true );

Character c = new Character('c');

Byte by = new Byte((byte)20);Byte by = new Byte("20");

Short s = new Short((short)20);Short s new Short((short)20);Short s = new Short("20");

16/12/58 เขยนโปรแกรม Java เบองตน 19

การแปลง Wrapper กลบเปนชนดขอมลพนฐานการแปลง Wrapper กลบเปนชนดขอมลพนฐาน

ป• รปแบบ– ตวแปรชนดขอมลพนฐาน = ตวหอหม.ชนดขอมลพนฐานValue();

• ตวอยางString s = "20";Integer i = new Integer(s);int number = i.intValue();

16/12/58 เขยนโปรแกรม Java เบองตน 20

ตวอยางตวอยาง

S S S t iScanner sc = new Scanner(System.in);

System.out.print("Please enter a number : ");System.out.print( Please enter a number : );String s = sc.next();

Integer i = new Integer(s);int number = i.intValue();

System.out.print("Your number plus 10 equals ");System.out.println(number + 10);System.out.println(number 10);

16/12/58 เขยนโปรแกรม Java เบองตน 21

การแปลง Wrapper เปนสตรงการแปลง Wrapper เปนสตรง

ป• รปแบบ

– เรฟเฟอรเรนซสตรง = ตวหอหม.toString(); g()

• ตวอยางint number = 20;int number = 20;Integer i = new Integer(number);String s = i.toString();g g()

16/12/58 เขยนโปรแกรม Java เบองตน 22

การแปลงสตรงเปนชนดขอมลพนฐานการแปลงสตรงเปนชนดขอมลพนฐาน

ป• รปแบบ– ตวแปรชนดขอมลพนฐาน = คลาสหอหม.parseชนดขอมลพนฐาน();

• ตวอยางScanner sc = new Scanner(System.in);

System.out.print("Please enter a number : ");int number = Integer.parseInt(sc.next());

16/12/58 เขยนโปรแกรม Java เบองตน 23

การแปลงชนดขอมลพนฐาน เปนสตรงการแปลงชนดขอมลพนฐาน เปนสตรง

ป• รปแบบ– เรฟเฟอรเรนซสตรง = คลาสหอหม.toString(ขอมลพนฐาน);

• ตวอยางScanner sc = new Scanner(System.in);

System.out.print("Please enter a number : ");String s = Integer.toString(sc.nextInt());

16/12/58 เขยนโปรแกรม Java เบองตน 24

คาคงทในคลาส Wrapperคาคงทในคลาส Wrapper 

• Integer– Integer.MIN VALUE = ‐2147483648 g _

– Integer.MAX_VALUE =  2147483647 

D bl• Double– Double.MIN_VALUE = 4.9E‐324 

– Double.MAX_VALUE = 1.7976931348623157E308  

16/12/58 เขยนโปรแกรม Java เบองตน 25

การจดรปแบบ

16/12/58 เขยนโปรแกรม Java เบองตน 26

การจดรปแบบดวยเมธอด printf()การจดรปแบบดวยเมธอด printf() 

ป• รปแบบ

– ตวแสดงผล.printf("รปแบบ", ตวแปร1, ตวแปร2, ...);

• ตวอยางint i = 3277;int i 3277;double d = 132324.25;System.out.printf("%d\n", i);System.out.printf("%x\n", i);System.out.printf("%f\n", d);S t t i tf("%16f\ " d)System.out.printf("%16f\n", d);System.out.printf("%16.2f\n", d);System.out.printf("%,16.2f\n", d);y p ( , \ , );

16/12/58 เขยนโปรแกรม Java เบองตน 27

การจดรปแบบดวยคลาสในกลม Formatการจดรปแบบดวยคลาสในกลม Format

d bl d 37625 72558double d = 37625.72558;

NumberFormat nf;NumberFormat nf;

nf = NumberFormat.getCurrencyInstance();System.out.println(nf.format(d)); // ฿37,625.73

f N b F t tI t I t ()nf = NumberFormat.getIntegerInstance(); System.out.println(nf.format(d)); // 37,625

16/12/58 เขยนโปรแกรม Java เบองตน 28

สรป

16/12/58 เขยนโปรแกรม Java เบองตน 29

สรปสรป

h • คลาสMath มเมธอดสาหรบการคานวณทางดานคณตศาสตรชนสง

• คลาสประเภทWrapper ใชแปลงตวแปรชนดขอมลพนฐานไปเปนขอความ และกลบกน

• การแปลงวตถ String ไปเปนจานวนเตมใชเมธอด Integer.parseInt() g g p ()

• การแปลงจานวนเตมไปเปนวตถ String ใชเมธอด Integer.toString()

16/12/58 เขยนโปรแกรม Java เบองตน 30

สรปสรป

l ()• เมธอด println() ใชสาหรบแสดงผลลพธออกทางหนาจอ

• เมธอด printf() ใชแสดงผลลพธเชนเดยวกบเมธอด println() แตp () p ()สามารถจดรปแบบการแสดงผลไดหลากหลาย

N b F t ป ไ • คลาส NumberFormat ชวยจดรปแบบการแสดงผลได

16/12/58 เขยนโปรแกรม Java เบองตน 31

top related