Java Programming Mr. Suradet Petcharanon
Chapter 2 Java Programming 17 December 2006
โครงสรางของ Application
การเขยนโปรแกรมภาษาจาวานน จะเขยนโปรแกรมเปนคลาส ซงในแต!ละ คลาสจะประกอบไปดวย เมธอด ตวแปรและค&าสงต!างๆ ภายในโปรแกรม หนงอาจจะประกอบดวยคลาสมากกว!า 1 คลาสขนอย+ก! บผ+ออกแบบ โปรแกรม และการใชคลาสทสรางขนมานนจะตองสรางออปเจกต/ขนมาก!อน แลวจงค!อยน&าออปเจกต/ไปใชงานตามตองการได
Suradet Petcharanon
Java Programming
2
โครงสรางของ Application
ตวอย!าง ไฟล/ App.java public class App{ //ก&าหนดช?อและค!าของตวแปร(ถาม) public static void main(String args[]){ App theApp = new App(); theApp.run(); } void run(){ //การท&างานภายในเมธอดน } }
Suradet Petcharanon
Java Programming
3
การสรางและเรยกใชโปรแกรม
ขนตอนในการสรางโปรแกรม มดงน
ใส! รายละเอยดการท&างานของโปรแกรม หร? อทเรยกว!า “Source Code” ลงไปใน โปรแกรม Editor ตวไดกได แลวบนทกเปนไฟล/นามสกVล .java ไฟล/นเรยกว!า “Source File” น&า Source File มาคอมไพล/(Compile) ท Dos Prompt โดยใชค&าสง “javac”แลวตาม ดวยช?อ Source File จะไดผลลพธ/มาอก 1 ไฟล/โดยจะมนามสกVลเปน .class ซงจะอย+! ในร+ ปของ “Byte Code” รนโปรแกรมทไดจากขนตอนก!อนหนานดวยค&าสง “java” แลวตามดวยช?อไฟล/โดย ไม!ตองมนามสกVล .class
Suradet Petcharanon
Java Programming
4
การตงช?อไฟล/จาวา
เราสามารถตงช?อไฟล/จาวาเปนช?ออะไรกได เน?องจากว!าหลงการคอมไพล/แลวจะได ไฟล/ .class ทมช?อเดยวกบช?อของคลาสนน และเวลารนโปรแกรม หร? อเรยกช?อคลาสจะ อางถงช?อของ .class ไม!ใช!ช?อของไฟล/ .java เช!น //TestName.java class Name{ public static void main(String args[]){ System.out.println(“Hello World”); } } เวลาคอมไพล/จะใชช?อ TestName.java จะไดไฟล/ .class ช?อ Name ดงนนเวลารนโปรแกรมจะใชช?อ Name
Suradet Petcharanon
Java Programming
5
เมธอดช?อ “main()”
เมธอดช?อ “main()” มลกษณะเฉพาะดงน
มเมธอด “main()” เพยง 1 เมธอดใน 1 โปรแกรม โปรแกรมจะเรd มตนการท&างานทเมธอด “main()” เสมอ จะตองมค!า Accessibility เปน “public” เสมอ ไม!เช!นนนจะไม!สามารถรนโปรแกรม ได จะไม!มการส! งค!ากลบค?น ดงนนจงใช keyword “void” ร! วมดวยเสมอ เพ?อใหสามารถเรยกใชงานไดทนทโดยทไม!ตองเรยกผ!านออบเจกต/ จงตองระบV keyword “static” ไวดวย Parameter จะตองอย+ใ! นร+ ปแบบใดร+ ปแบบหนงเสมอ ค?อ (String args[]) หร? อ (String []args) ดงนนจงมกเขยน เมธอด “main()” แบบน public static void main(String args[])
Suradet Petcharanon
Java Programming
6
การใส! หมายเหตV (Comment) และ Accessibility
Comment
ใช /* และ */ เหมาะส&าหรบหมายเหตVขอความทมากกว!าหนงบรรทด ใช // เหมาะส&าหรบหมายเหตVขอความเพยงหนงบรรทด
Accessibility
public ใชนdยามคลาส ตวแปร เมธอด เพ?อใหคลาสทอย+ใ! น Package เดยวกนหร? อต!าง Package กน สามารถเรยกใชงานคลาส ตวแปร หร? อเมธอดเหล!านนได protected ใชนdยามตวแปร เมธอด เพ?อใหคลาสทอย+ใ! น Package เดยวกนและคลาสท Inherit ไป(Subclass)แต!อย+ต! !าง Package กนสามารถเรยกใชงานเมธอด หร? อตวแปรเหล!านนได private ใชนdยามตวแปร เมธอด เพ?อใหสามารถเรยกใชงานตวแปร หร? อเมธอดเหล!านนภายในคลาส เดยวกนเท!านน(ตาม Concept ของ Encapsulation และ Information hiding) Default ค?อการไม!ระบV keyword ทง 3 ค&าดงกล!าวขางตนไวหนาคลาส ตวแปร หร? อเมธอดเลย ท&า ใหคลาสภายใน Package เดยวกนสามารถเรยกใชงานคลาส ตวแปร หร? อเมธอดเหล!านนได
Suradet Petcharanon
Java Programming
7
การสรางออบเจกต/
เม?อตองการใชงานเมธอด ตวแปร หร? อค!าคงทใดๆของคลาสกตาม จะตอง กระท&าผ!านออบเจกต/ทสรางขนมาใหม! มขนตอนดงน
ก&าหนดออบเจกต/วา! อย+ใ! นคลาสใด เช!น String str;
สรางออบเจกต/ขนมาพรอมกบใส! ขอม+ล เช!น str = new String(“Hello”);
หร? อรวมสองขนตอนมาไวเพยงขนตอนเดยว เช!น String str = new String(“Hello”);
* เรยกการสราง ออบเจกต/ใหม!วา! “Object Instantiation” * เรยกการสราง ออบเจกต/พรอมกบการใส! ขอม+ลนว!า “Object Initialization” Suradet Petcharanon
Java Programming
8
การแสดงผลทางจอภาพ (Console Output) การแสดงผลออกทางจอภาพจะใชเมธอดทช?อว!า “println()” ซงอย+ใ! นคลาส“System.out”
ตวอย!างการใชงาน : System.out.println() System.out.println(“Hello World”); การขนบรรทดใหม! เราจะใชเมธอด “println()” หร? อ “\n”มาช!วย เช!น System.out.print(“\n\nHello World\n\n”); ถาตองการพdมพ/ขอความทมเคร? องหมาย “ อย+ด! วยใหใช \ ช!วย เช!น ตองการแสดงว!า Hello “World” ตองพdมพ/วา! System.out.print(“Hello \”World\” “);
Suradet Petcharanon
Java Programming
9
ตวแปรและชนdดของขอม+ล
ตวแปร(Variable) แบ!งเปน 4 ชนdดหลกๆ ไดแก! Integer,Floating,Character,Boolean นอกจากนยงสามารถใชคลาส String มาเปนตวแปร ไดอกดวย ร+ ปแบบในการสรางตวแปรในภาษาจาวาเปนดงน data_type variablename; เช!น int myInt;
การก&าหนดค!าเรd มตนใหกบตวแปร(Assignment) วdธท 1 สรางตวแปรแลวจงมาใส!ขอม+ล int x; x= 12; วdธท 2 ใส!ขอม+ลพรอมกบการสรางตวแปร int x = 12;
Suradet Petcharanon
Java Programming
10
ตวแปรทใชกบตวเลข(Number Type) แบ!งเปน 2 ชนdด
Integer ใชเกบตวเลขจ&านวนเตมแบ!งเปน “int”, “short”, “long”, “byte” Floating ใชเกบตวเลขทมจVดทศนdยม แบ!งเปน “float”, “double”
เช!น
int num1,num2; long l = 300*30 int i = 20; int i1 = 34+1; float f = 34.0-0.1 Double d = 1.0/2.0; Byte i3 = 20%3;
Suradet Petcharanon
// l มค!าเท!ากบ 90000 // i มค!าเท!ากบ 20 // i1 มค!าเท!ากบ 35 // f มค!าเท!ากบ 33.9 // d มค!าเท!ากบ 0.5 // i3 มค!าเท!ากบ 2
Java Programming
11
ล&าดบของ Operator ทใชในการค&านวณ
กรณทมการใช Operator มากกว!า 1 ตวในค&าสงเดยวจะเรยงล&าดบดงน
วงเลบ () ++,-*,/,% +,+=,-=,*=,/=,%=
การค&านวณแบบย!อ (Shortcut Operator)
เคร? องหมาย += เช!น i+=8 มค!าเท!ากบ i = i+8 เคร? องหมาย -= เช!น i-=8 มค!าเท!ากบ i = i-8 เคร? องหมาย *= เช!น i*=8 มค!าเท!ากบ i = i*8 เคร? องหมาย /= เช!น i/=8 มค!าเท!ากบ i = i/8 เคร? องหมาย %= เช!น i%=8 มค!าเท!ากบ i = i%8
Suradet Petcharanon
Java Programming
12
ล&าดบของ Operator ทใชในการค&านวณ
การค&านวณแบบย!อ (Shortcut Operator)
x++ ++x X- --x
Suradet Petcharanon
มค!าเท!ากบ x = x + 1 มค!าเท!ากบ x=x+1 มค!าเท!ากบ x=x–1 มค!าเท!ากบ x=x-1
Java Programming
13
ตวแปรทใชกบตวอกษร
การนdยามตวแปรและการก&าหนดค!าเรd มตน
char chData = ‘s’ //เกบตวอกษร ‘s’ char chrNumber = ‘4’ //เกบตวอกษร ‘4’ char numChar = 88 //เกบค!าตวอกษร ‘X’
Suradet Petcharanon
Java Programming
14
การแปลงชนdดของตวแปร(Type Conversion)
การแปลงชนdดของขอม+ลทเปนตวเลข
แปลงอตโนมตd float float1 = 100; long long1 = logn1*3+4; double dou = dou*3.1+dou/2; การแปลงโดยใช casting int myInt = 6; long myLong; myLong = (logn)myInt;
Suradet Petcharanon
Java Programming
15
String
การสราง String
Length
int n = strName.length();
Substring
String strName = “Suradet”;
Stirng sub = strName.substring(0,4);
Concatenation การเช?อมขอความ
String lastName = “Petcharanon”; String name = strName + lastName;
Suradet Petcharanon
Java Programming
16
String
การแปลงค!าระหว!าง Number และ String
แปลงจากตวเลขไปเปนตวอกษร ท&าได 2 วdธ
ใช เคร? องหมาย “+” โดยการเช?อมกบค!าว!าง (Null)
ใชเมธอด toString()
String message = “” + order;
String message = order.toString();
การแปลงจากตวอกษรไปเปนตวเลข
ใช parseInt() ของคลาส Integer
String password = “931”; int numPassword = Integer.parseInt(password);
ใช parseDouble() จากคลาส Double การใชงานจะเปนแบบเดยวกบ parseInt()
Suradet Petcharanon
Java Programming
17
Boolean เกบค!าเพยง 2 ค!าเท!านน ค?อ true และ false
เคร? องหมายทใชในการเปรยบเทยบ
< <= > >= == !=
Suradet Petcharanon
นอยกว!า นอยกว!าหร? อเท!ากบ มากกว!า มากกว!าหร? อเท!ากบ เท!ากบ มาเท!ากบ
1<2 1<=2 1>2 1>=2 1==2 1 != 2
Java Programming
เปน จรd ง เปน จรd ง เปน เทจ เปน เทจ เปน เทจ เปน จรd ง
18
Boolean
เคร? องหมายทใชในการเปรยบเทยบทางตรรก
! && || ^
Suradet Petcharanon
Not And Or Exclusive Or
ตรงขาม ตองเปนทงค+! อย!างใดอย!างหนง ตองไม!เหม?อนกน
Java Programming
19
การรบขอม+ลทางจอภาพ
การใช System.in.read
import java.io.*; public class Read1{ public static void main(String args[]){ char ch; System.out.print(“Input one character Or press Q for Quit:”); do{ ch = (char)System.in.read(); System.out.println(“You Input :”+ch); }while(ch != ‘Q’) } }
Suradet Petcharanon
Java Programming
20
การรบขอม+ลทางจอภาพ
การใช BufferedReader ร! วมกบ InputStreamReader BufferReader stdin = new BufferReader(new InputStreamReader(System.in)); Input = stdin.readLine(); import java.io.*; public class Read2{ public static void main(String args[]){ BufferReader stdin = new BufferReader(new InputStreamReader(System.in)); String input = “”; System.out.print(“Please Input Any Character :”); input = stdin.readLine(); System.out.println(“You Input :”+input); } }
Suradet Petcharanon
Java Programming
21
การรบและการแสดงค!าในโหมดกราฟd กดวย Swing
การแสดงผลดวย Swing
import javax.swing.*; class TestSwing{ JOptionPane.showMessageDialog(null, “Welcome\nto\java\nProgramming!”); System.exit(0); }
Suradet Petcharanon
Java Programming
22
คลาส JOptionPane
มเมธอดอย+! 2 ตวค?อ
showInputDialog() showMessageDialog() ร+ ปแบบของ Message Dialog Type
JOptionPane.ERROR_MESSAGE JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE JOptionPane.QUESTION_MESSAGE JOptionPane.PLAN_MESSAGE
Suradet Petcharanon
Java Programming
23
ตวอย!างการใช swing รบและแสดงผล import javax.swing.JOptionPane; class Addition{ public static void main(String args[]){ String firstNumber; String secondNumber; int num1,num2,sum; firstNumber = JOptionPane.showInputDialog(“Enter first Integer”); secondNumber = JOptionPane.showInputDialog(“Enter second Integer”); try{
num1 = Integer.parseInt(firstNumber); Suradet Petcharanon
} }
num2 = Integer.parseInt(secondNumber); sum = num1+num2; JOptionPane.showMessageDialog(null, “the sum is ”+sum, “Results”,JOptionPane.INFORMATION_M ESSAGE); System.exti(0); }catch(NumberFormatException e){ JOptionPane.showMessageDialog(null, “Please input number “ERROR”, JOptionPane.ERROR_MESSAGE); System.exit(0); }
Java Programming
24
ตวอย!างโจทย/
จงเขยนโปรแกรมค&านวณหาเสนรอบวงของวงกลมจากรศม ซงใชส+ตร 2*PI*r ซงให PI เปนค!าคงท รศมรบเขามาโดยใช Swing จงเขยนโปรแกรมแปลงค!าเงdนบาทโดยรบเงdนเขามาเปน ดอลลาร/ และรบ อตราแลกเปลยนดวย
Suradet Petcharanon
Java Programming
25