4. คอมเม2นต
คอมเม2นตคอข%อความทแทรกอย()ในโปรแกรม
คอมเมLนตMเข*ยนไว3เพอ
B
• อธบายโปรแกรม
• ให3ผA3อ9านเข3าใจโปรแกรมง9ายยBงขJKน
• ช9วยท<าให3การแก3ไขและปร.บปร4งโปรแกรมเปIนไปได3ง9ายขJKน
ภาษาจาวาก<าหนดรAปแบบของการเข*ยนคอมเมLนตMไว3สามรAปแบบด.งน*K
• // This is a comment
คอมเม2นตสาหรบข%อความบรรทดเดยว
• /* This is also a comment */
คอมเม2นตส<าหร.บข%อความต.งแต9หน3งบรรทดขJKนไป
K
• /** This is a comment for documentation */
คอมเมLนตMส<าหร.บข3อความท*Bตองการสร3างเปIนไฟลMเอกสารท*BเปIนไฟลMประเภท HTML
3
5. ต.วอย9างโปรแกรม
/* This program is to show
how to write comments */
public class CommentDemo {
// Main method
public static void main(String args[]) {
/** This is a comment for documentation */
System.out.println("Document");
}
}
11. คยเว*รดท*ใช3ในภาษาจาวา
B
abstract continue for new switch
assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
18. ข%อม(ลชน*ดตวอกขระ
ข3อมAลชนดต.วอ.กขระใช3เพBอแสดงต.วอ.กขระหนJงต.ว
B ซJBงถAกเกLบอยA9ในรAปของ
มาตรฐาน Unicode ขนาด 16 บต
โดยจะม*ค9าต.งแต9 ‘u0000’ ถJง ‘uFFFF’
K
ต.วอย9างเช9น ค<าส.ง
B
• char letter = ‘u0041';
เปIนการประกาศต.วแปรท*Bชอว9า letter ให3เปIนข3อมAลชนด char
B
โดยม*ค9าเปIน u0041 ซJBงม*คาเท9าก.บต.วอ.กษร A
9
ต.วอย9างเช9น ค<าส.ง
B
• char letter = ‘A’;
เปIนการประกาศต.วแปรท*Bชอว9า letter ให3เปIนข3อมAลชนด char
B
โดยม*ค9าเปIนต.วอ.กษร A เช9นเด*ยวก.บค<าส.Bงก9อนหน3าน*K
19. อกขระพเศษท*นยมใช3ทวไป
B .B
อ.กขระ Unicode ความหมาย
'b' 'u000B' Backspace
't' 'u0009' Tab
'n' 'u000A' New line
'r' 'u000D' Return
'' 'u005C' Backslash
''' 'u0027' Single quote
'"' 'u0022' Double quote
20. ข%อม(ลชน*ดต.วเลขจานวนเต2ม
มชน*ดข%อม(ลพนฐาน 4 ชน*ดคอ
• byte, short, int, long
โดยท.วไปข%อม(ลชน*ดต.วเลขจ<านวนเตLมจะถAกก<าหนดให3ม*ชนดข3อมAลเปIน
B
int
ข%อม(ลค)าคงทสามารถเข*ยนได3สามแบบด.งน*K
• เลขฐานสบคอการเข*ยนเลขจ<านวนเตLมท.วไป อาทเช9น -121 และ 75362 เปIนต3น
B
• เลขฐานแปดคอการเข*ยนเลขจ<านวนเตLมท*BขJKนต3นด3วยเลข 0 แล3วตามด3วยต.วเลข
ต.งแต9 0 ถJง 7 อาทเช9น 016 (ม*ค9าเท9าก.บ 14 ในเลขฐานสบ)
K
• เลขฐานสบหกคอการเข*ยนเลขจ<านวนเตLมท*ขJKนต3นด3วย 0x หรอ 0X แล3วตามด3วย
B
ต.วเลขต.งแต9 0 ถJง 9 หรอต.วอ.กษร A ถJง F อาทเช9น 0xA2 (ม*ค9าเท9าก.บ 162 ใน
K
เลขฐานสบ)
25. คาสงกาหนดค)า (Assignment Statement)
ค<าส.Bงก<าหนดค9าจะเปIนค<าส.Bงท*Bใช3ในการเปล*Bยนแปลงค9าของต.วแปร
ค<าส.Bงก<าหนดค9า (assignment statement) ซJBงม*รปแบบด.งน*K
A
variableName = expression;
ต.วอย9างเช9น
x = 1;
radius = 3.14;
c = ‘a’;
y = x+4*3;
amount = 121+14;
26. ค<าส.งประกาศและก<าหนดค9าต.วแปร
B
เราสามารถท*Bจะประกาศและก<าหนดค9าเรBมต3นของต.วแปรภายในค<าส.ง
B
เด*ยวก.น โดยม*รAปแบบค<าส.Bงด.งน*K
dataType variableName = expression
[,variableName = expression];
ต.วอย9างเช9น
int amount = 123;
float price = 12.0f;
double x = 4.0, y = 2.5;
27. ตวอย)างโปรแกรม
public class VariableAssignDemo {
public static void main(String args[]) {
int x,y;
boolean b1;
float z = 3.414f; /* The program will not be
compiled successfully if
a character f is missing */
double w;
x = 5;
y = 4;
b1 = (x > y);
w = x * 3.2;
System.out.println("x = " + x + " y = " + y);
System.out.println("b1 = " + b1);
System.out.println("z = " + z + " w = " + w);
}
}
29. ตวอย)างโปรแกรม
public class ConstantDemo {
public static void main(String args[]) {
final int MAXIMUM = 10;
final double MIN_GPA;
System.out.println("Maximum is " + MAXIMUM);
MIN_GPA = 2.00;
System.out.println("Minimum GPA is " + MIN_GPA);
// MIN_GPA = 3.00; //illegal
}
}
32. ตวอย)างโปรแกรม
public class VariableScopeDemo {
public int i; // object variable
public void method1() {
int j = 4; // local variable
int k = 2; // another local variable
}
public void method2() {
int j = 0; // local variable
System.out.println(i);
// calling an object variable i
// System.out.println(k); // illegal
}
}
37. ตวอย)างโปรแกรม
public class IncrementDemo {
public static void main(String args[]) {
int x;
int y;
x = 5;
y = x++;
System.out.println("x = "+x+" y = "+y);
y = ++x;
System.out.println("x = "+x+" y = "+y);
}
}
x = 6 y = 5
ผลล.พธMทได3จากการร.นโปรแกรม
*B x = 7 y = 7
39. ตวอย)างโปรแกรม
public class BooleanDemo {
public static void main(String args[]) {
int x = 5;
int y = 4;
boolean b1;
b1 = (x!=y);
System.out.println("x not equal to y is "+b1);
System.out.println("y less than 0 is "+(y<0));
}
}
52. การแปลงชนดข3อมAล
การแปลงชนดข3อมAลม*สองรAปแบบคอ
• การแปลงข3อมAลท*กว3างขJKน (widening conversion) คอการแปลงจากชนดข3อมAลท*ม*
B B
ขนาดเลLกกว9าไปเปIนชนดข3อมAลท*Bม*ขนาดใหญ9กว9า
• การแปลงข3อมAลท*แคบลง (narrowing conversion) คอการแปลงจากชนดข3อมAลท*ม*
B B
ขนาดใหญ9กว9าไปเปIนชนดข3อมAลท*ม*ขนาดเลLกลง ซJBงอาจม*ผลให3เส*ยความละเอ*ยด
B
ของข3อมAลบางส9วนไป
55. ตวอย)างโปรแกรม
public class PromotionDemo {
public static void main(String args[]) {
int i;
long l;
float fl = 4.2f;
i = 4;
l = i;
fl = i;
double x = fl;
fl = 4.2; //illegal
}
}
61. คลาส String
String เปIนคลาสท*Bก<าหนดไว3ใน Java API ต.วแปรท*ม*ชนดข3อมAลเปIน
B
String กLคอออปเจLคชนดหนJง ซJง String ม*ขอแตกต9างจากออปเจLค
B B 3
ท.วๆไปด.งน*K
B
• String เปIนออปเจLคท*Bม*ค9าคงท*ข3อมAลซJBงกLคอข3อความใดๆ ท*BอยAภายในเครBองหมาย
B 9
double quote (“ ”) ต.วอย9างเช9น
“This is a java course”
• String เปIนออปเจLคท*Bสามารถสร3างหรอก<าหนดค9าได3โดยไม9จ<าเปIนต3องใช3ค<าส.Bง
new ต.วอย9างเช9น เราสามารถใช3ค<าส.ง
B
String s = “Thana”;
• โดยไม9จ<าเปIนท*Bจะต3องใช3ค<าส.ง
B
String s = new String(“Thana”);
62. ต.วอย9างโปรแกรม
public class StringDemo {
public static void main(Stirng args[]){
String s1 = "Thana";
String s2 = "Thana";
String s3 = new String("Thana");
}
}
63. ค<าอธบายโปรแกรม
กรณ*ท*Bไม9ใช3ค<าส.ง new ภาษาจาวาจะพจารณาจาก String Pool ว9าม*ข3อความ
B
เดมอยAหรอไม9
9
กรณ*ท*Bใช3ค<าส.ง new ภาษาจาวาจะสร3างข3อความใหม9และจองเนอท*Bในหน9วย
B K
ความจ<าเสมอ
65. ต.วด<าเนนการท*ใช3กบข3อมAลชนด String
B .
String เปIนออปเจLคท*ม*ตวด<าเนนการท*ใช3ในการเชBอมข3อความสอง
B . B
ข3อความเข3าด3วยก.น โดยใช3เครองหมาย + อาทเช9น
B
String s1 = “Hello” + “ World”;
ต.วด<าเนนการในการเชBอมข3อความสามารถใช3เชBอมข3อมAลชนด String ก.บ
ต.วถAกด<าเนนการท*BเปIนชนดข3อมAลอBนๆ ภาษาจาวาจะแปลงชนดข3อมAลด.ง
กล9าวให3เปIนชนด String โดยอ.ตโนม.ตอาทเช9น ค<าส.Bง
String s1 = “This";
String s2 = s1 + “ is a test ”;
String s3 = s1+4;
66. ค<าส.งอนพ4ตและเอาทMพ4ต
B
ออปเจLค System.in เปIนออปเจLคท*Bม*เมธอดส<าหร.บการอ9านข3อมAลทาง
อ4ปกรณMอนพ4ตมาตรฐาน ซJงโดยท.BวไปกLคอค*ยบอรMด
B M
ออปเจLค System.out เปIนออปเจLคท*Bม*เมธอดส<าหร.บการแสดงข3อมAลออก
ทางอ4ปกรณMเอาทMพ4ตมาตรฐานซJBงโดยท.Bวไปคอจอภาพ
ออปเจLค System.err เปIนออปเจLคท*Bม*เมธอดส<าหร.บการแสดงข3อผด
พลาด (error) ออกทางอ4ปกรณMท*Bใช3ในการแสดงข3อผดพลาด ซJBงโดยท.วไปจะ
B
ก<าหนดเปIนจอภาพ
67. System.out.println
ออปเจLค System.out หมายถJงออปเจLคท*ชBอ out ซJงเปIนค4ณล.กษณะของ
B B
คลาสท*BชBอ System
ออปเจLคท*ชBอ out
B เปIนออปเจLคของคลาส PrintStream ท*Bม*เมธอดท*B
นยมใช3ท.Bวไปคอ
print(String s)
และ println(String s)
68. ต.วอย9างโปรแกรม
public class PrintDemo {
public static void main(String args[]) {
int x = 3, y = 4, z = 5;
System.out.print("x = "+x);
System.out.println(" y = "+y);
System.out.println("z = "+z);
}
}
x = 3 y = 4
ผลล.พธMท*Bได3จากการร.นโปรแกรม z = 5
69. การร.บข3อมAลเข3ามาทาง Command Line
เมธอดท*BชBอ main() จะม* argument เปIน String args[] ซJBงสามารถท
จะรบ argument ทส)งผ)านมาจาก command line ได%
ต.วอย9างเช9น
public class Sample {
public static void main(String args[]) {
System.out.println(“My name is ” + args[0] +
“ and I am a ” + args[1]);
}
}
ถ%าป:อนอนพ4ตตรง command line เป5น java Sample Tommy boy
จะได%ผลล.พธMคอ My name is Tommy and I am a boy
70. สร4ปเนอหาของบท
K
คอมเมLนตM คอข3อความท*BแทรกอยA9ภายในโปรแกรมซJBงคอมไพเลอรMจะไม9แปล
ข3อความน*ให3เปIนส9วนหนJงของโปรแกรม
K B
identifier คอชBอท*ตงขJนในภาษาจาวา ซJงอาจเปIนชBอของคลาส
B .K K B ชBอของ
ต.วแปร ชBอของเมธอด หรอชBอของค9าคงท*B ซJงจะต3องเปIนไปตามกฎการต.ง
B K
ชBอ
การต.KงชBอในภาษาจาวา
• ส<าหร.บคลาส นยมขJKนต3นด3วยต.วอ.กษรพมพMใหญ9
• ส<าหร.บเมธอดและต.วแปร นยมขJKนต3นด3วยต.วอ.กษรพมพMเลLก
• ถ3าชBอท*ตงขJKนม*มากกว9า 1 ค<า นยมขJKนต3นค<าใหม9ด3วยต.วอ.กษรพมพMใหญ9
B .K
• ต3องไม9ตรงก.บค*ยเวรMด
M
71. สร4ปเนอหาของบท
K
ค*ยMเวรMดคอชBอท*Bม*ความหมายพเศษในภาษาจาวา คอมไพเลอรMของภาษา
จาวาจะเข3าใจความหมายและค<าส.งท*Bจะต3องด<าเนนการส<าหร.บค*ยเวรMดแต9ละ
B M
ต.ว
ข3อมAลค9าคงท*คอค<าท*Bใช3แสดงข3อมAลท*BเปIนต.วเลข ต.วอ.กขระ ข3อความ หรอค9า
B
ทางตรรกะ
ชนดข3อมAลในภาษาจาวาแบ9งเปIนสองประเภทคอ ชนดข3อมAลแบบพKนฐาน
และชนดข3อมAลแบบอ3างอง
ชนดข3อมAลแบบพKนฐานท*Bใช3ในภาษาจาวาม*ท.Kงหมด 8 ชนดคอ char,byte,
short,int,long,float,double และ boolean
72. สร4ปเนอหาของบท
K
ข3อมAลท*BเกLบอยA9ในโปรแกรมแบ9งเปIนสองประเภทคอต.วแปรและค9าคงท*B ซJBง
ต.วแปรคอข3อมAลท*Bสามารถเปล*Bยนแปลงค9าได3ในโปรแกรมโดยใช3ค<าส.ง B
ก<าหนดค9า ส9วนค9าคงท*Bคอข3อมAลท*Bก<าหนดค9าได3เพ*ยงคร.งเด*ยวและไม9
K
สามารถเปล*Bยนแปลงค9าได3ในโปรแกรม
ต.วแปรท*Bม*การประกาศชนดข3อมAลแล3วสามารถท*Bจะก<าหนดหรอเปล*Bยนแปลง
ค9าได3โดยใช3ค<าส.งก<าหนดค9า
B
การประกาศค9าคงท*Bในภาษาจาวาท<าได3โดยการใส9ค*ยMเวรMด final หน3าค<าส.ง
B
ประกาศชBอ
ค9าคงท*หรอต.วแปรท*BอยA9ภายในบลLอกของเมธอด จะม*ขอบเขตการใช3งานอยA9
B
ภายในบลLอกเท9าน.น
K