Transcript javaslide
WELCOME
To
Java Programming
ความรู้ เบือ้ งต้ นเกีย่ วกับ Java
เป็ นภาษาการเขียนโปรแกรมเชิ งวัตถุ (OOP)
(Object Oriented Programming)
โปรแกรม SDK (Software Development Kit)
เขียนโปรแกรมแสดงบน Internet หรื อ บน
Command Line
นามสกุลไฟล์ .java
Class
Class คือ ต้ นแบบของการกาหนดตัวแปร
และ Method
ประโยชน์ ของ Class
1. การแบ่ งออกเป็ น Class ทาให้ โปรแกรมทีส่ ร้ าง
ขึน้ มาง่ ายต่ อการแก้ ไข
2. แต่ ละ Class ไม่ มผี ลอย่ างใดกับ Class อืน่
เมือ่ มีการแก้ ไข
ประเภทของ Java
Java
Script เขียนโปรแกรมฝังตัวไว้ ใน Web
Page
Java
Java Applet
Java Application
ไฟล์ โปรแกรมของ SDK
ใช้ Compile Source
Code นามสกุล .java เป็ นนามสกุล .class
javac.exe
ใช้ Run ไฟล์ จุด class ของ
Java Application
appletviewer.exe ใช้ Run ไฟล์ จุด
HTML ของ Java Applet
java.exe
โปรแกรมที่ใช้ เขียนภาษา Java
Notepad
WordPad
Edit
DOS
Edit plus
ฯลฯ
โครงสร้ างภาษา Java Application
class name
{
public static void main(String[] arg)
{
// add Code Java
}
}
โครงสร้ างภาษา Java Applet
import Package;
เรียกใช้ คาสั่ งสาเร็จรู ปต่ าง
public class name extends Applet
{
//add Code Java
ชื่อไฟล์ เอกสาร Java
}
ตัวอย่ างการสร้ างไฟล์ Java Application
ชื่อไฟล์ java1.java
class java1
{
public static void main(String arg[])
{
System.out.println(“Welcome To Java”);
}
}
การ Compile Java Application
C:\jdk>พิมพ์ .\bin\javac
ชื่อไฟล์ .java
การ Run Java Application
C:\jdk>พิมพ์ .\bin\java ชื่อไฟล์ (ไม่มีนามสกุล)
การสร้ างไฟล์ Java Applet
1. สร้ างไฟล์ java
2. Compile
3. สร้ างเอกสาร HTML
4. Run แสดงผล
ตัวอย่ างการสร้ างไฟล์ Java Applet
ชื่อไฟล์ java2.java
import java.awt.*;
import java.applet.*;
public class java2 extends Applet
{
public void paint(Graphics g)
{
g.drawString(“Welcome To Java”,50,100);
}
}
สร้ างไฟล์ เอกสาร HTML
<html>
ชื่อไฟล์ java2.html
<head><title>ชื่อหน้ าต่ าง</title></head>
<body>
<applet code=“ชื่อไฟล์ .class” width=กว้ าง height=สู ง>
</applet>
</body>
</html>
Package (Java Class Library)
Standard Package
java.applet -> ใช้ สร้ าง Applet
java.awt -> สร้ าง GUI (Graphical user interface)
java.io -> ทางานด้ าน I/O
java.lang -> ทางานด้ านการคานวณตัวเลข
java.net -> สร้ างการติดต่ อระบบเครื อข่ าย
java.util -> การเข้ ารหัส/ถอดรหัส, วัน/เวลา
java.awt.image -> สร้ างและทางานกับรู ปภาพ
javax.swing -> สร้ าง Swing GUI
การเรียกใช้ งาน Package
รู ปแบบ
import ชื่อแพ็กเกจ.*;
เช่ น
import java.util.*;
import java.util.Calendar;
คาสั่ งแสดงผล
System.out.println(“ข้ อความ”);
System.out.println(ตัวแปร);
System.out.println(“ข้ อความ”+ตัวแปร);
System.out.println();
System.out.print(“ข้ อความ”+ตัวแปร); ไม่ ขนึ้ บรรทัดใหม่ ให้
ชนิดของตัวแปร
ประเภทตัวเลข (Numeric)
•ตัวเลขจานวนเต็ม (Integer)
byte 8 bit,
short 16 bit
*int 32 bit,
long 64 bit
•ตัวเลขทศนิยม (Real)
float 32 bit,
*double 64 bit
ชนิดของตัวแปร
ประเภทตัวอักษร (Character)
char 16 bit
ประเภทตรรกศาสตร์ (Boolean)
boolean 1 bit == > true / false
ประเภท Class ข้ อความ
String
การตั้งชื่อ (Identifier)
•
•
•
•
ต้ องขึน้ ต้ นด้ วยตัวอักษร
ความยาวไม่ จากัด
ห้ ามเว้ นวรรค ยกเว้ น ใช้ _(underscore), $
ตัวอักษรพิมพ์เล็ก พิมพ์ใหญ่ ถือว่ าต่ างกัน
การประกาศตัวแปร
ชนิดข้ อมูล ชื่อตัวแปร;
เช่ น
String name,Name;
int num1,num2;
การกาหนดค่ าคงที่
ค่ าคงที่จานวนเต็ม กาหนดค่ าคงที่
เลขจานวนเต็ม
เลขฐาน 10
0(ศูนย์ ) นาหน้ าเลขจานวนเต็ม
เลขฐาน 8
0x นาหน้ าเลขจานวนเต็ม
เลขฐาน 16
เช่ น 20 ฐาน 8 เป็ น 024 ฐาน 16 เป็ น 0x14
การกาหนดค่ าคงที่
ตัวเลขทศนิยม กาหนดค่ าคงที่
จะใช้ f หรือ F ต่ อท้ ายเลขทศนิยม
float
D หรือ d (ไม่ใส่ กไ็ ด้)
double
เช่ น 100.0f หรือ 100.65d
การกาหนดค่ าคงที่
ค่ าคงที่ตวั อักษร กาหนดค่ าคงที่
ใช้ เครื่องหมาย ‘ ’ ครอบตัวอักษร
char
ค่ าคงที่ตวั อักขระ
ใช้ เครื่องหมาย “ ” ครอบ
String
ตัวดาเนินการ (Operator)
ทางด้ านการคานวณ
Operator ทางการเปรี ยบเทียบ
Operator ทางการกาหนดค่ า
Operator ทางตรรกะ
Operator
Operator ทางการคานวณ
ตัวดาเนินการ
ตัวอย่าง
ลาดับการกระทา
+
ความหมาย
ยูนรี(Unary)
+x
1
-
ยูนรี(Unary)
-x
1
+
บวก
x+y
3
-
ลบ
x-y
3
*
คูณ
x*y
2
/
หาร
x/y
2
%
หารเอาเฉพาะเศษ
x%y
2
Operator ทางการคานวณ
Increment (การเพิม่ ค่ า) (++)
เช่น a++ a=a+1
Decrement (การลดค่ า) (--)
เช่น a-- a=a-1
Ex a=5
x=a++;
x=++a;
x=5 a=6
x=6 a=6
ตัวอย่ าง <op1.java>
class op1
{
public static void main(String arg[])
{
int x=5, y=4, sum;
sum=y*x++; //sum=y*++x;
System.out.println("x=5 y=4");
System.out.println("sum=y*x++ ="+sum);
}}
Operator ทางการกาหนดค่ า
= เท่ ากับ
+= เช่ น A+=3 A=A+3
-=
*=
/=
%=
ตัวอย่ าง Operator ทางการกาหนดค่ า
<op2.java>
Operator ทางการเปรียบเทียบ
ตัวดาเนินการ
นิพจน์
<
>
==
!=
<=
>=
A<B
A>B
A==B
A!=B
A<=B
A>=B
ความหมาย
A น้ อยกว่ า B
A มากกว่ า B
A เท่ ากับ B
A ไม่ เท่ ากับ B
A น้ อยกว่ าหรือเท่ ากับ B
A มากกว่ าหรือเท่ ากับ B
ตัวอย่ าง Operator ทางการเปรียบเทียบ
<op3.java>
Operator ทางตรรกะ
ตัวดาเนินการ ความหมาย
ตัวอย่ าง
ลาดับการทางาน
และ(And)
(a<20)&&(b<50)
2
&&
||
!
หรือ(Or)
(a<20)||(b<50)
3
ไม่ เป็ นจริง
(Not)
!(a<20)
1
การใช้ ตัวดาเนินการทางเชิงตรรกะ
A
B
A&&B
A||B
!B
T
T
T
T
F
T
F
F
T
T
F
T
F
T
F
F
F
F
F
T
ตัวอย่ าง Operator เชิงตรรกะ
<op4.java>
ตัวอย่ าง การประกาศตัวแปรตัวอักษร
<op5.java>
การกาหนดคาอธิบาย (Comment)
Comments แสดงคาอธิบายภายใน
บรรทัด ใช้ เครื่องหมาย // เป็ นจุดเริ่มต้ น และสิ้นสุ ดเมือ่
จบบรรทัด //Start Program //Stop Program
Block Comments แสดงคาอธิบายเป็ น
กลุ่ม หลาย บรรทัด ใช้ เครื่องหมาย /* เป็ นจุดเริ่มต้ น
คาอธิบาย และ */ เป็ นจุดสิ้นสุ ดคาอธิบาย
In-line
การจัดการกับ String
String ตัวแปร=“ค่ า”;
“ ”ห้ ามอยู่คนละบรรทัด
“ ” = null ค่ าว่ าง
การหาความยาว String
String.length();
เช่ น
String fname=“Viyada”;
int n=fname.length();
ภาษาไทยนับสระ วรรณยุกต์ บนล่างด้ วย
<ตัวอย่ าง length1.java>
การดึงข้ อความบางส่ วน (Sub String)
ตัวแปรString.substring(ค่ าเริ่มต้ น,ค่ าสิ้นสุ ด);
ตัวแปรString.substring(ค่ าเริ่มต้ น);
ค่ าเริ่มต้ น เริ่มนับจาก 0,1,2…
ค่ าสิ้นสุ ดเริ่มนับจาก 1,2,3…
<ตัวอย่ าง substring1.java>
การดึงตัวอักษร 1 ตัว
String.charAt(ตาแหน่ งตัวอักษร)
เริ่มนับจาก 0,1,2…
<ตัวอย่ าง charAt1.java>
การแทนที่ข้อความ
String.replace(ตัวอักษรเดิม,ตัวอักษรใหม่ );
เช่ น
String S=“Java”.replace(‘a’,‘o’);
คานึงการค้ นหา+แทนที่แบบตัวพิมพ์เล็ก-ใหญ่
<ตัวอย่ าง replace1.java>
การเปลีย่ นตัวอักษรใน String
String.toUpperCase();//ตัวพิมพ์ใหญ่
String.toLowerCase();//ตัวพิมพ์เล็ก
เช่ น
String st=“Java Programming”;
String upper=st.toUpperCase();
String lower=st.toLowerCase();
<ตัวอย่ าง UpperLower.java>
การกลับด้ านข้ อความ (Reverse)
String.reverse();
StringBuffer ตัวแปร=new StringBuffer(“ข้ อความ");
System.out.println(ตัวแปร .reverse());
<ตัวอย่ าง reverse1.java>
การชี้ตาแหน่ ง Index
รูปแบบ
indexOf(‘ตัวอักษร’)
เริ่มนับจาก 0,1,2…
<ตัวอย่ าง indexOfDemo.java>
Work สร้ างรหัสลับ
<password.java>
เขียนโปรแกรมค้ นหาตัวอักษรพร้ อมจัดรู ปแบบ
คาต่ อไปนี้ “Siam Computer.”
ผลลัพธ์ Mr.Siam
การแปลงค่ าข้ อมูล
ประเภทรูปแบบการแปลงค่ าข้ อมูล
Casting
toString
Integer.parseInt()
Double.parseDouble()
การแปลงค่ าในรูปแบบ Casting
รู ปแบบคาสั่ ง
(ประเภทข้ อมูล)ตัวแปร
เช่ น int
x; float y=45.5f;
x=(int)y;
<ตัวอย่ าง casting1.java>
การแปลงค่ าในรูปแบบ toString()
แปลงจากตัวเลขเป็ นตัวอักษร
String ตัวแปร=“”+ตัวเลข;
หรือ
String ตัวแปร=Integer.toString(ตัวเลข);
String ตัวแปร=Double.toString(ตัวเลข);
String ตัวแปร=Float.toString(ตัวเลข);
<ตัวอย่ าง ToString.java>
Work นับตาแหน่ งตัวเลข
<ToStringDemo.java>
เขียนโปรแกรมนับตาแหน่ งตัวเลขทั้งหน้ าและ
หลังจุดทศนิยม
เปลีย่ นค่ าตัวอักษรเป็ นตัวเลข
int ตัวแปร=Integer.parseInt(String);
double ตัวแปร=Double.parseDouble(String);
float ตัวแปร=Float.parseFloat(String);
<ตัวอย่ าง change1.java>
การจัดรูปแบบตัวเลขทศนิยม
ต้ องประกาศ import java.text.*; ก่ อน
NumberFormat ตัวแปร=NumberFormat.getNumberInstance();
ตัวแปร.setMaximumFractionDigits(2);
ตัวอย่ าง
//แสดงทศนิยม 2 ตาแหน่ งพร้ อมปัดค่ าขึน้
<formatnum.java>
ตัวแปร.setMinimumFractionDigits(2);
//เติมเลข 0 ต่ อท้ าย ถ้ ามีทศนิยมเพียงตาแหน่ งเดียว
จัดรู ปแบบ ตัวแปร.format(ตัวเลขทศนิยม);
การรับข้ อมูลทางคีย์บอร์ ด
1. การใช้ System.in.read รับค่า character
2. การใช้ BufferedReader รับค่า String
ร่ วมกับ InputStreamReader
ทิศทางในการรับค่ าและนามาเก็บในตัวแปรใด
และ ต้ องใช้ คาสั่ ง “throws IOException”
ต่ อท้ าย public static ...
และ Package ชื่อ “java.io” ร่ วมกันเสมอ
ประกาศ Import ไว้ ก่อน class
การใช้ System.in.read
ใช้ รับค่ าตัวอักษร 1 ตัว
รู ปแบบ
char ตัวแปร;
ตัวแปร=(char)System.in.read();
<ตัวอย่ าง Read1.java>
การใช้ BufferedReader
แบบ 1
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader stdin=new BufferedReader(reader);
แบบ 2
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
Method ทีใ่ ช้ รับข้ อความ
ตัวแปร=stdin.readLine();
<ตัวอย่ าง Read2.java>
Work รับค่ าข้ อมูล
<Age.java>
เขียนโปรแกรมรับค่ าดังต่ อไปนี้
Control Statement
1. ทางานเรี ยงลาดับคาสั่ งลงมาตั้งแต่ ต้น
โปรแกรมจนจบโปรแกรม
2. กระทาซ้า เป็ นการทางานตัวเดิมซ้า กัน
3. เลือกกระทาเฉพาะคาสั่ งที่ตรงกับเงื่อนไขที่
กาหนด
คาสั่ งควบคุม (Control Statement)
คาสั่ งควบคุมให้ โปรแกรมทางานซ้า เช่ น for,
while, do..while
คาสั่ งควบคุมแบบมีเงือ
่ นไข เช่ น if, switch
คาสั่ งควบคุมอืน
่ เช่ น break,
continue
For Statement
for (start_value ;condition ;step)
{
start_value = ค่ าเริ่มต้ น
statement ; condition = เงือ่ นไข
step = เพิม่ ค่ าจานวนรอบ, วนรอบ
}
Flow-Chart For Statement
Start_value
Condition
true
Step
Statement
False
ออกจากFor
ตัวอย่ าง
for(int x=1;x<=5;x++)
System.out.println("Hello World!");
for(int y=1;y<=5;y+=2)
System.out.println(y);
ตัวอย่ าง forloop.java
for(int x=10;x>=1;x--)
System.out.print(x+“ ”);
10 9 8 7 6 5 4 3 2 1
ตัวอย่ างแสดงตัวอักษร A-Z
for(char x='A';x<='Z';x++)
System.out.print(x+" ");
ABCD…Z
Work แสดงรหัส ASCII
<forASCII.java>
เขียนโปรแกรมแสดงรหัส ASCII โดยใช้ For
Work รับค่ าเริ่มต้ น-สิ้นสุ ด
<fortest.java>
เขียนโปรแกรมรับค่ าเริ่มต้ น-สิ้นสุ ด พร้ อมหาผลรวมและจานวนรอบ
Work รับค่ าตัวเลข 2 ค่ า
<forwork.java>
เขียนโปรแกรมรับค่ า x,y คานวณหาค่ าตัวเลข
x ยกกาลัง y (xy)
การใช้ For ซ้ อนกัน
for(Start_value;condition;step)
{
for(Start_value;condition;step)
{
Statement;
}
}
ตัวอย่ าง (for1.java)
int x,y;
for(x=1; x<=3; x++)
{ System.out.print(x+" => ");
System.out.println();
for(y=1; y<=5; y++)
{System.out.print(y+". Siam
Computer\n");}
}
Work แสดงค่ าข้ อมูล
<printstar.java>
เขียนโปรแกรมแสดงค่ าดังนี้
Work แสดงค่ าตัวเลข
<printnumber.java>
เขียนโปรแกรมแสดงตัวเลขค่ าดังนี้
Work แสดงค่ าข้ อมูล
<printOX.java>
เขียนโปรแกรมแสดงค่ าดังนี้
Work แสดงค่ าตัวเลข
<forfor.java>
เขียนโปรแกรมแสดงค่ าตัวเลขดังนี้
Work ตารางสู ตรคูณ
<fordouble.java>
เขียนโปรแกรมสร้ างตารางสู ตรคูณ
Work ตารางสู ตรคูณ
<formulti.java>
เขียนโปรแกรมรับค่ าขนาดของตารางสู ตรคูณ
While Statement
while (condition)
{
statement ;
}
Flow-Chart
False
condition
Statement นอก Loop
.
.
end
True
Statement ใน Loop
.
.
ตัวอย่ าง
int x=1;
while(x<=10)
{
System.out.println(x);
x++;
}
ตัวอย่ าง
int x=0;
while(++x<=10)
{
System.out.println(x);
}
Work แสดงอุณหภูมิ
<formattemp.java>
เขียนโปรแกรมแสดงอุณหภูมิองศาเซลเซียส และฟาเรนไฮต์
จาก 90 องศา ถึง 100 องศา ด้ วยสมการ f=c/5*9+32
Work รับค่ าตัวอักษร
<whilechar.java>
เขียนโปรแกรมแสดงการรับค่ าตัวอักษรใด
จนกว่ าจะป้ อน * จึงหยุดการรับค่ า
char c;
System.out.print("ป้อนข้ อมูลใด 1 ตัวอักษร : ");
c=(char)System.in.read();
while(c !='*')
{ c=(char)System.in.read(); }
Work รับค่ าตัวอักษร
<whileXx.java>
เขียนโปรแกรมรับค่ าตัวอักษรใด
จนกว่ าจะป้ อนตัวอักษร X หรือ x จึงหยุดรับค่ า
Work รับค่ าตัวเลข
<whiletest.java>
เขียนโปรแกรมรับค่ าตัวเลข และหาผลรวมตัวเลข
และจานวนรอบ ถ้ าป้อน 0 หยุดการรับค่ า
Work รับค่ าตัวเลข
<whilefac.java>
เขียนโปรแกรมรับค่ าตัวเลข แล้ วนาไปหาค่ า
factorial
Do-While Statement
do
{
statement ;
} while (condition) ;
Flow-Chart
Statement ;
.
.
False
condition
True
ตัวอย่ าง <do1.java>
int data=0,sum=0;
do
{
data++;
System.out.println(data);
sum+=data;
} while(data<10);
ตัวอย่ าง <do2.java>
char c;
do{
System.out.print("ต้ องการทางานต่ อหรือไม่ ? y/n :
");
do{
c=(char)System.in.read();
}while((c!='n')&&(c!='y'));
}while(c=='y');
Work รับค่ าตัวเลข
<dowhiletest.java>
เขียนโปรแกรมรับค่ าตัวเลข และหาผลรวมตัวเลข
และจานวนรอบ ถ้ าป้อน 0 หยุดการรับค่ า
Work รับค่ าตัวเลข
<dowhilefac.java>
เขียนโปรแกรมรับค่ าตัวเลข แล้ วนาไปหาค่ า
factorial
การใช้ คาสั่ งตรวจสอบเงื่อนไข
เป็ นการตรวจสอบค่ าของตัวแปร ที่รับเข้ ามา
โดยใช้ Operator การเปรียบเทียบ
เป็ นตัวควบคุมเงือ่ นไข
คาสั่ งที่ใช้ มี if, switch
If Statement
if (condition)
{ statement ; }
Flow-Chart
False
condition
True
Statement ;
ตัวอย่ าง
int x=6;
if (x>5)
{
System.out.println("more than 5 =
"+x);
}
ตัวอย่ าง
int a=5;
if(a<=10)
{
System.out.println("Hello World!");
}
System.out.println("Bye...");
Work แสดงตัวเลข
<iftest.java>
เขียนโปรแกรมแสดงตัวเลขตั้งแต่ 1 - 20
และถ้ าตัวเลขที่ 3 หารลงตัวให้ แสดง * กากับด้ วย
และให้ แสดงตัวเลขเฉพาะที่ 3 หารลงตัว
1 2 *3 4 5 *6 7 8 *9 ... 20
3 6 9 12 15 18
Work รับค่ าตัวเลข
<ifwork.java>
เขียนโปรแกรมรับค่ าตัวเลขหาค่ าตา่ สุ ดและสู งสุ ด
หยุดรับค่ าเมื่อป้ อนค่ าตัวเลขติดลบ
Work รับค่ าตัวเลข
<valuenum.java>
เขียนโปรแกรมรับค่ าตัวเลขหา จานวนรอบ, ผลรวม,
ค่ าเฉลีย่ , ค่ าสู งสุ ดและตา่ สุ ด หยุดรับค่ าเมื่อป้อนค่ าตัวเลข 0
Work ย่ อยธนบัตรและเหรียญ
<money.java>
เขียนโปรแกรมย่ อยธนบัตรและเหรียญ
1000, 500, 100, 50, 20, 10, 5, 1
If…Else Statement
if (condition)
{ statement ; }
else
{ statement ; }
Flow-Chart
False
Statement ;
condition
True
Statement ;
ตัวอย่ าง
int a=10;
if(a<5)
System.out.println("ผลลัพธ์ "+a+"< 5");
else
System.out.println("ผลลัพธ์ "+a+">=
5");
Work รับค่ าตัวเลข
<ifelsetest.java>
เขียนโปรแกรมรับค่ าตัวเลขตั้งแต่ 1 - 31 เท่ านั้น
ถ้ าป้อนนอกจากนีใ้ ห้ ทาการป้อนใหม่
Work ทายตัวเลข
<ifelsework.java>
เขียนโปรแกรมทายตัวเลขที่คนที่ 1 ป้ อนเข้ ามา
โดยให้ คนที่ 2 เป็ นคนทาย (ทายได้ 5 ครั้ง)
ถ้ าป้ อนมากกว่ าแสดง “Larger…try again”
ถ้ าป้อนน้ อยกว่ าแสดง “Smaller…try again”
ถ้ าทายถูกแสดง “Your Win!!!”
ถ้ าทายไม่ ถูกแสดง “Your Lose!!!”
If…Else ซ้ อนกัน
if(condition)
{statement;}
else if(condition) {statement;}
else if(condition) {statement;}
else {statement;}
Flow-Chart
condition false
true
Statement;
condition
true
Statement;
false
condition
true
Statement;
false
Statement;
ตัวอย่ าง
int sc;
System.out.print("Enter score :");
sc=Integer.parseInt(stdin.readLine());
if(sc<50)
System.out.println("Score : "+sc+" Grade : F");
else if(sc>=50 && sc<=69)
System.out.println("Score : "+sc+" Grade : P");
else System.out.println("Score : "+sc+" Grade : G");
Work คิดเกรด
<ifelsegrade.java>
เขียนโปรแกรมรับค่ าคะแนน และคิดเกรดตามเงือ่ นไข
Work รับค่ าตัวเลข
<ifcal.java>
เขียนโปรแกรมรับค่ าตัวเลขคานวณตาม Operator + - * /
Switch Statement
switch (variable)
{ case value1: statement ;
break;
case value2 : statement ;
break;
default: statement ; break;
}
Flow-Chart
ค่ าคงที่
false
ค่ าคงที่
true
Statement;
true
false true
ค่ าคงที่
false
Statement;
Statement;
Statement;
ตัวอย่ าง
int x;
System.out.print("Enter number : ");
x=Integer.parseInt(stdin.readLine());
switch(x) {
case 1:
System.out.println("ONE"); break;
case 2:
System.out.println("TWO"); break;
default:
System.out.println("Not Found"); break; }
ตัวอย่ าง
<switchmenu.java>
Work ตรวจสอบวันหยุด
<switchtest.java>
เขียนโปรแกรมตรวจสอบวันหยุด
วันที่ 1 - 3
ลาพักร้ อน
วันที่ 14 - 20
ลากิจ
นอกเหนือจากนี้ ทางานปกติ
Break statement
คาสั่ ง break
ใช้ ควบคุมให้ โปรแกรมออกจาก Loop คาสั่ งทีก่ าหนด
จะใช้ ร่วมกับคาสั่ ง switch, while, for,
do..while
ตัวอย่ าง
int x;
for(x=1;x<=10;x++)
{
System.out.println(x);
if(x==5)
break;
}
Work รับค่ าตัวอักษร
<breakwork.java>
เขียนโปรแกรมรับค่ าตัวอักษรใด จนกว่ าจะป้อน a จึงหยุด
char x;
System.out.println(“ป้อนตัวอักษรใด 1 ตัว (ป้อน a
หยุด) :");
for(;;) { x=(char)System.in.read();
if(x=='a')
break;
}
Continue Statement
คาสั่ ง continue
เป็ นคาสั่ งทีต่ ้ องการให้ ข้ามบางคาสั่ งซึ่งอยู่ใน Loop
เพือ่ เริ่มต้ นการวนซ้าในรอบต่ อไป
ตัวอย่ าง
int x;
for(x=1;x<=10;x++)
{
if(x==5)
continue;
System.out.println(x);
}
Work แสดงตัวเลขจานวนคู่
<even.java>
เขียนโปรแกรมแสดงตัวเลขจานวนคู่
ตั้งแต่ 1 - 50
2 4 6 8 10 ... 50
ตัวอย่ าง <even.java>
int x;
for(x=0;x<=50;x++)
{
if(x%2!=0)
continue;
System.out.print(x+“ ”);
}
Work แสดงตัวเลขจานวนคู่
<odd.java>
เขียนโปรแกรมแสดงตัวเลขจานวนคี่
ตั้งแต่ 1 - 100
1 3 5 7 9 ... 99
ตัวอย่ าง <odd.java>
int x;
for(x=0;x<=100;x++)
{
if(x%2==0)
continue;
System.out.println(x+“ ”);
}
Array (ตัวแปรชุด )
Array หมายถึง ชุดของข้ อมูลทีม่ จี านวนแน่ นอน
และเป็ นข้ อมูลชนิดเดียวกัน ข้ อมูลแต่ ละ
รายการเรียกว่ า สมาชิกของอาร์ เรย์
(element of array)
แต่ ละสมาชิกของอาร์ เรย์ มี อินเด็กซ์
(index) สาหรับใช้ เพือ่ การอ้ างถึง
การสร้ าง Array
แบบที่ 1 นิยามตัวแปรแล้ วสร้ างตัวแปร
การนิยามตัวแปร
dataType[] arrayName;
หรือ
dataType arrayName[];
การสร้ างตัวแปร
arrayName=new dataType[n]
ตัวอย่ าง
double[] myList;//double myList[];
myList=new double[10];
แบบที่ 2 รวมเป็ นขั้นตอนเดียว
dataType[] arrayName=new dataType[size];
หรือ
dataType arrayName[]=new dataType[size];
ตัวอย่ าง
double[] myList=new double[10];
One-dimension array
การใส่ ค่าตัวแปร array 1 มิติ
อ้างถึงตัวแปร arrayName[Index];
index
0
1
2
3
4
3
4
5
mark
1
2
member
การกาหนดค่ าตัวแปร Array
1. กาหนดค่ าคงทีใ่ ห้ กบั สมาชิก Array ทีละคน
ตัวแปรarray[index]= ค่ า;
เช่ น
mark[0]=50;
mark[1]=35;
การกาหนดค่ าตัวแปร Array
2. กาหนดค่ าคงทีใ่ ห้ กบั สมาชิก Array ทุกสมาชิก
for(x=เริ่มต้ น;x<=ค่ าสิ้นสุ ด;x++)
ตัวแปรarray[x]= ค่ า;
เช่ น
for(x=0;x<=4;x++)
mark[x]=100;
การกาหนดค่ าตัวแปร Array
3. กาหนดค่ าเริ่มต้ นให้ กบั สมาชิก Array ทุกสมาชิก
ชนิดข้ อมูล ตัวแปรarray[]= {ค่ าสมาชิก};
index
1
2
เช่ น
0
3 4
int mark[]={50,40,15,30,10};
ใส่ ข้อมูลทีเ่ ป็ น String ลงใน Array
String S1=“The Lion King”;
String S2=“Final Fantasy”;
String S3=“Tarzan”;
String[] movie={S1,S2,S3};
การแสดงค่ าตัวแปรใน Array
1. แสดงค่ าตัวแปรทีละสมาชิก
System.out.println(ตัวแปรarray[index]);
2. แสดงค่ าตัวแปรสมาชิกทุกสมาชิก
for(x=ค่ าเริ่มต้ น;x<=ค่ าสิ้นสุ ด;x++)
System.out.println(ตัวแปรarray[x]);
<ตัวอย่ าง arraytest.java>
การรับค่ า Array ทางคีย์บอร์ ด
ตัวแปร[Index]=Integer.parseInt(stdin.readLine());
for(int x=0;x<Input;x++)
{
System.out.print("รับสมาชิก Array num["+x+"] :");
ตัวแปร[x]=Integer.parseInt(stdin.readLine());
}
<ตัวอย่ าง onearray.java>
ตัวอย่ าง
ประกาศ Array 1 มิติ และแสดงข้ อมูลใน
Array ทั้งหมด
<ตัวอย่ าง array1.java>
Work รับค่ าจานวนสมาชิก
<arraywork.java>
เขียนโปรแกรมรับค่ าจานวนสมาชิก Array
Work รับคะแนน
<arraywork2.java>
เขียนโปรแกรมรับคะแนนนักเรียนพร้ อมแสดงคะแนน
และเกรดของแต่ ละคน
Work รับค่ า GPA
<arraywork3.java>
เขียนโปรแกรมรับค่ าจานวนนศ. ทีไ่ ด้ GPA ตั้งแต่ 0-4
และนับจานวนคนทีไ่ ด้ แต่ ละ GPA
Work จัดเรียงข้ อมูล
<SortArray.java>
เขียนโปรแกรมจัดเรียงข้ อมูลทีร่ ับจากน้ อยไปมากแสดงดังนี้
Work นับจานวน
<PriceArray.java>
เขียนโปรแกรมนับจานวนราคาสิ นค้ าที่
ต่ากว่ า 500 และตั้งแต่ 500
Work รับราคาสิ นค้ า
<CountArray.java>
เขียนโปรแกรมรับราคาสิ นค้ าสิ้นสุ ดเมื่อป้อน 0 และนับจานวน
Two-dimension array
การประกาศตัวแปร array 2 มิติ
ชนิดข้ อมูล ตัวแปร[จานวนแถว][จานวนคอลัมน์ ];
เช่ น int data[2][3];
0,0
data
0,1
0,2
1,0
1,1
0
1,2
or
0
1
1
2
การแสดงค่ าตัวแปรใน Array
1. แสดงค่ าตัวแปรทีละสมาชิก
System.out.println
(ตัวแปรarray[index][index]);
2. แสดงค่ าตัวแปรสมาชิกทุกสมาชิก
for(x=ค่ าเริ่มต้ น;x<=ค่ าสิ้นสุ ด;x++)
for(y=ค่ าเริ่มต้ น;y<=ค่ าสิ้นสุ ด;y++)
System.out.println(ตัวแปรarray[x][y]);
การกาหนดค่ าตัวแปร Array
1. กาหนดค่ าคงทีใ่ ห้ กบั สมาชิก Array ทีละคน
ตัวแปรarray[index][index]= ค่ า;
เช่ น
mark[0][0]=50;
mark[0][1]=35;
การกาหนดค่ าตัวแปร Array
2. กาหนดค่ าคงทีใ่ ห้ กบั สมาชิก Array ทุกสมาชิก
for(x=เริ่มต้ น;x<=ค่ าสิ้นสุ ด;x++)
for(y=เริ่มต้ น;y<=ค่ าสิ้นสุ ด;y++)
ตัวแปรarray[x][y]= ค่ า;
เช่ น for(x=0;x<=4;x++)
for(y=0;y<=4;y++)
mark[x][y]=100;
กาหนดค่ าตัวแปร Array 2 มิติ เริ่มต้ น
ชนิดข้ อมูล ตัวแปร[][]={{ค่ าเริ่มต้ น}};
เช่ น
int x[][]={{40,10,20},{90,30,50}};
ตัวอย่ าง
ประกาศ Array 2 มิติ และแสดงข้ อมูลใน
Array ทั้งหมด และเลือกมิติทตี่ ้ องการไป
แสดงผล
<ตัวอย่ าง array2.java>
ตัวอย่ าง Array 2 มิติ
การรับและแสดงผลการรับ Array 2 มิติ
<ตัวอย่ าง array2test.java>
Work แสดงค่ า Index ของ Array
<TwoDArray.java>
เขียนโปรแกรมแสดงค่ า Index ของ
Array 2 มิติ ขนาด 3x4
Work รับค่ าอาร์ เรย์
<array2work.java>
เขียนโปรแกรมรับค่ าและหาผลรวม
Work รับค่ าคะแนน
<array2work2.java>
เขียนโปรแกรมรับค่ าคะแนนของนักเรียน 5 คน
ในแต่ ละรายวิชา 7 วิชา ใช้ Array 2 มิติ
การสร้ าง Method
Method คืออะไร ?
เป็ นการแบ่ งโปรแกรมออกเป็ นส่ วนย่ อย
แต่ ละ Method จะมีหน้ าทีเ่ ฉพาะใน
ตัวเอง
Method ต่ าง ของ Class Math
Math.abs(x) :absolute value
y
Math.pow(x,y) : x
Math.floor(x) : ตัดเศษทศนิยม
Math.round(x) : ปัดเศษทศนิยม
Math.max(x,y) : the greater of x and y
Math.min(x,y) : the smaller of x and y
ตัวอย่ างการใช้ Method
{
double r=10;
System.out.println(“Area = ”
+Math.PI*Math.pow(r,2));
}
<AreaCircle.java>
Work รับค่ ารัศมี
<TestCircle.java>
เขียนโปรแกรมรับค่ ารัศมี และหาขนาดพืน้ ที่วงกลม
จากสมการ ¶r² ซึ่ง ¶=3.14159
Math.PI 3.14159
องค์ ประกอบของ Method
•หัว Method
-บอกลักษณะการใช้ งานของ Method
-ระบุชื่อ ประเภทของข้ อมูลทีร่ ับ
และประเภทของผลลัพธ์ ทไี่ ด้
•ตัว Method
-ประกาศตัวแปรทีใ่ ช้ ภายใน
-บรรยายการทางานของ Method
-คืนการทางานสู่ ผ้ ูเรียก
ตัวอย่ าง
ประเภทข้ อมูชืล่อของผลลั
พ
ธ์
ท
ไ
่
ี
ด้
ตัวบอกลักษณะของMethod
method
รายการของ parameters
public static double length(double x, double y)
{
double len;
len=Math.sqrt(x*x+y*y);
return len;
}
คืนการทางานกลับสู่ ผู้เรียก
หัว Method : ประเภทข้ อมูลของผลลัพธ์
•ประเภทข้ อมูลพืน้ ฐาน (int,double,boolean,..)
•ประเภทข้ อมูลแบบคลาส (String,Point,…)
•ถ้ าเป็ น method ทีไ่ ม่ คนื ค่ าผลลัพธ์ ให้ ใส่ void
หัว Method : รายการของพารามิเตอร์
รายการของพารามิเตอร์
-Parameter เป็ นตัวแปรสาหรับรับข้ อมูลเข้ ามาประมวลผล
-แต่ ละ Parameter เขียนเหมือนการประกาศตัวแปร
(แต่ ไม่ ต้องปิ ดท้ ายด้ วย ;)
-แต่ ละ Parameter คัน่ ด้ วย comma
-รายการของ Parameter อยู่ภายในวงเล็บ
ตัว Method : Local Variable
•Local variable คือตัวแปรทีใ่ ช้ ภายใน Method
•ประกาศภายใน block ใด ใช้ ได้ เฉพาะใน block นั้น
•หรือ block ทีซ่ ้ อนอยู่ช้ันใน ของ block นั้น
•ประกาศทีจ่ ุดใด ใช้ ได้ หลังจุดนั้นภายใน block
•ถูกสร้ างใหม่ ทุกครั้งทีท่ างานถึงจุดทีป่ ระกาศ
การเรียกใช้ Method : การส่ งข้ อมูล
จานวนข้ อมูลทีส
่ ่ งต้ องตรงกับทีป่ ระกาศไว้ ทหี่ ัว Method
สิ่ งทีส
่ ่ งไปต้ องเป็ นประเภทที่ตัวแปรที่หัว
Method รับได้
เช่ น
public static float max(float x,float y)
{…}
X=max((float)(a/3.0) ,1f);
Y=max(Float.parseFloat(str),1.0f);
การเรียกใช้ Method : ผลที่คนื กลับ
ในกรณีที่
Method มีการคืนค่ า ก็ต้องมีตัวแปร
ซึ่งมีประเภททีร่ ับค่ าของข้ อมูลทีค่ นื มาได้
เช่ น
public static float max(float x,float y)
{…}
double X=max(1.0f,(int)(x/3));
float Y=max(max(x,y),-10.5f);
ตัวอย่ าง <TestMax.java>
{
int max=maxMethod(5,2);
System.out.println("Maximum = "+max);
}
public static int maxMethod(int x, int y)
{
if(x>y) return x;
else return y;
}
Work รับค่ าข้ อมูล
<MaxMethod.java>
เขียนโปรแกรมรับข้ อมูล หาค่ าสู งสุ ดของตัวเลข
2 ตัว โดยใช้ หลักการแบบ Method
Work ค่ าตา่ สุ ด-ค่ าสู งสุ ด
<MethodWork.java>
เขียนโปรแกรมหาค่ าสู งสุ ดและตา่ สุ ดของตัวเลข 3 ตัว
โดยใช้ หลักการแบบ Method
Classes & Objects
Classes & Objects
•Classes คือ โครงสร้ างของ Object โดย
Class จะเป็ นตัวกาหนดว่ า Object นั้น
จะมี data อะไรบ้ างและมี Method อะไรบ้ าง
•Objects คือสิ่ งต่ าง ที่มีตัวตน และนาไปใช้ ในการ
ประมวลผลข้ อมูลได้
องค์ ประกอบของ Classes
class ClassName
{ data members
(ข้ อมูลต่ าง )
constructor methods
(method ทีเ่ กีย่ วกับการสร้ าง)
}
class & object methods
การสร้ าง Classes
รูปแบบ
class ClassName
{…
}
•ClassName
เป็ นชื่อไฟล์ ของข้ อมูลทีต่ ้ องการสร้ าง
การสร้ าง Objects
รูปแบบ
ClassName ObjectName=new ClassName();
เช่ น
Circle MyCircle=new Circle();
การเรียกใช้ Data
รูปแบบ
ObjectName.data
เช่ น
MyCircle.raius
การเรียกใช้ Method
รูปแบบ
ObjectName.method
เช่ น
MyCircle.findArea()
ตัวอย่ าง
การหาพืน้ ทีว่ งกลม
<ตัวอย่ าง TestCircle.java>
Work รับค่ าของรัศมี
<ClassWork.java>
เขียนโปรแกรมรับค่ ารัศมี และหาพืน้ ที่วงกลม
โดยใช้ หลักการแบบ Class
Java Swing
การสร้ าง GUI ด้ วย Swing
Component คือส่ วนประกอบ
หลักทีอ่ ยู่ใน JFC ซึ่งใช้ สาหรับสร้ าง GUI
โดยชื่ อจะขึน
้ ต้ นด้ วย J และอยู่ใน
javax.swing package
Swing
JFC(Java Foundation Classes)
การใช้ JOptionPane
ใช้ แสดงกรอบรับค่ า (Prompt) และ
แสดงข้ อความในกรอบ Dialog Box
ส่ วนประกอบ Dialog box
icon
message
input value
option buttons
ประเภท Dialog Box
showConfirmDialog แสดงกรอบคาถาม
showInputDialog แสดงกรอบรับค่ า
showMessageDialog แสดงกรอบข้ อความ
showOptionDialog แสดงกรอบทางเลือกอืน่
ประเภทสั ญลักษณ์ Message
· ERROR_MESSAGE
· INFORMATION_MESSAGE
· WARNING_MESSAGE
· QUESTION_MESSAGE
· PLAIN_MESSAGE ไม่ มีสัญลักษณ์
question information warning error
ประเภทป่ ุมกด (Option Type)
• DEFAULT_OPTION
• YES_NO_OPTION
• YES_NO_CANCEL_OPTION
• OK_CANCEL_OPTION
การแสดงข้ อความใน Dialog Box
แสดง package java
import javax.swing.JOptionPane;
แสดงข้ อความและตัวแปร
JOptionPane.showMessageDialog
(null,“ข้ อความ”หรือตัวแปร,“ชื่อหน้ าต่ าง”,
แสดงสั ญลักษณ์ );
<Message1.java>
การสร้ างกรอบรับค่ าใน Dialog Box
String name;
name=JOptionPane.showInputDialog
(“ข้ อความอธิบาย”);
<InputDL.java>
การแสดงข้ อความใน JTextArea
1. เรียกใช้ Packages
import javax.swing.JTextArea;
การแสดงข้ อความใน JTextArea
2. สร้ างพืน้ ที่ JTextArea
JTextArea ตัวแปร = new JTextArea();
หรือระบุขนาด Row,Column
JTextArea ตัวแปร = new JTextArea(row,column);
การแสดงข้ อความใน JTextArea
3. แสดงข้ อความเริ่มต้ น
ตัวแปร.setText( “ข้ อความ”);
4. แสดงข้ อความเพิม่ ต่ อ
ตัวแปร.append(“ข้ อความ”หรือตัวแปร );
<TextArea1.java>
การสร้ าง Scroll bar กับ Text Area
JScrollPane ตัวแปร = new
JScrollPane( ตัวแปรTextArea );
<Scrollbar1.java>