You are on page 1of 25

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 // l มค!าเท!ากบ 90000
 int i = 20; // i มค!าเท!ากบ 20
 int i1 = 34+1; // i1 มค!าเท!ากบ 35
 float f = 34.0-0.1 // f มค!าเท!ากบ 33.9
 Double d = 1.0/2.0; // d มค!าเท!ากบ 0.5
 Byte i3 = 20%3; // i3 มค!าเท!ากบ 2

Suradet Petcharanon 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 + 1
 ++x มค!าเท!ากบ x=x+1
 X- - มค!าเท!ากบ x=x–1
 --x มค!าเท!ากบ x=x-1

Suradet Petcharanon 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
 String strName = “Suradet”;
 Length
 int n = strName.length();
 Substring
 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)
 String message = “” + order;
 ใชเมธอด toString()
 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
 เคร? องหมายทใชในการเปรยบเทยบ
 < นอยกว!า 1<2 เปน จรd ง
 <= นอยกว!าหร? อเท!ากบ 1<=2 เปน จรd ง
 > มากกว!า 1>2 เปน เทจ
 >= มากกว!าหร? อเท!ากบ 1>=2 เปน เทจ
 == เท!ากบ 1==2 เปน เทจ
 != มาเท!ากบ 1 != 2 เปน จรd ง

Suradet Petcharanon Java Programming 18


Boolean
 เคร? องหมายทใชในการเปรยบเทยบทางตรรก
 ! Not ตรงขาม
 && And ตองเปนทงค+!
 || Or อย!างใดอย!างหนง
 ^ Exclusive Or ตองไม!เหม?อนกน

Suradet Petcharanon 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 รบและแสดงผล
num2 = Integer.parseInt(secondNumber);
import javax.swing.JOptionPane;
sum = num1+num2;
class Addition{
JOptionPane.showMessageDialog(null, “the
public static void main(String args[]){
sum is ”+sum,
String firstNumber; “Results”,JOptionPane.INFORMATION_M
String secondNumber; ESSAGE);
int num1,num2,sum; System.exti(0);
firstNumber = }catch(NumberFormatException e){
JOptionPane.showInputDialog(“Enter first JOptionPane.showMessageDialog(null,
Integer”); “Please input number “ERROR”,
secondNumber = JOptionPane.ERROR_MESSAGE);
JOptionPane.showInputDialog(“Enter second System.exit(0);
Integer”);
}
try{
}
num1 = Integer.parseInt(firstNumber);
}
Suradet Petcharanon Java Programming 24
ตวอย!างโจทย/
 จงเขยนโปรแกรมค&านวณหาเสนรอบวงของวงกลมจากรศม ซงใชส+ตร
2*PI*r ซงให PI เปนค!าคงท รศมรบเขามาโดยใช Swing
 จงเขยนโปรแกรมแปลงค!าเงdนบาทโดยรบเงdนเขามาเปน ดอลลาร/ และรบ
อตราแลกเปลยนดวย

Suradet Petcharanon Java Programming 25

You might also like