แนะนําภาษาจาวา...•ภาษาจาวาเป นภาษาเช...
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