Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore ภาษา Java เบื้องต้น

ภาษา Java เบื้องต้น

Published by นายประจักษ์ ปะทะดี, 2020-03-29 00:00:55

Description: ภาษา Java เบื้องต้น

Search

Read the Text Version

ภาษา Java เบ้อื งตน้

Java  Java เปน็ ภาษาทส่ี ามารถแบบเชิงวตั ถใุ ช้หลกั การเชงิ ออปเจ็ค  แบง่ งานเปน็ ส่วนย่อยๆ และเป็นอสิ ระตอ่ กัน แต่สามารถมีการทางานทรี่ ว่ มกนั  การเขียนเชงิ วตั ถุ ไม่จาเป็นตอ้ งเปน็ วตั ถทุ จี่ บั ต้องได้จรงิ ๆ เช่น เวลา  นยิ ามทสี่ าคัญคอื  ออปเจ็ต  คลาส

Object  Object คือสง่ื ทมี่ อี ยใู่ นชวี ิตประจาวนั  ออปเจค็ ทเ่ี ป็นรูปธรรม เช่น นกั เรียน ใบลงทะเบียน ปากกา และรถ  ออปเจค็ ท่ีเปน็ นามธรรมเช่น คะแนน รายชื่อวชิ า บัญชีเงินฝาก ตารางเท่ยี วบนิ  Object ประกอบด้วย  คณุ ลกั ษณะ (Attribute) หรือ ขอ้ มูล (Data)  พฤติกรรม (behavior) หรือเมธอด (Method)

Object  คุณลกั ษณะ  ขอ้ มลู ของออปเจค็  แต่ละออปเจค็ อาจมคี า่ ของคณุ ลกั ษณะทต่ี ่างกนั  เมธอด  สงิ่ ทอ่ี อปเจค็ สามารถกระทาได้  คาสงั่ ในการทางานของโปรแกรมเชงิ ออปเจค็  โปรแกรมจะจดั การกบั ขอ้ มลู โดยเรยี กใชเ้ มธอด

 นกั ศกึ ษา  อาจจะมีคุณลักษณะเชน่ รหสั ชอ่ื และเกรดเฉลีย่  อาจจะมเี มธอดเชน่ ลงทะเบยี น สอบ และเดิน  รถยนต์  อาจจะมคี ณุ ลักษณะเชน่ ยหี่ ้อ รนุ่ และสี  อาจจะมเี มธอดเช่น เคลอ่ื นท่ี หยุด และเลี้ยว  สุนัข  อาจจะมีคุณลักษณะเช่น ชื่อ พนั ธ์ และสี  อาจจะมเี มธอดเชน่ เห่า คลาน และกระดกิ หาง

ตวั อยา่ งของโปรแกรมเชงิ ออปเจค็  โปรแกรมระบบจดั การบญั ชเี งนิ ฝากของธนาคาร  ตวั อยา่ งของออปเจค็  Account  Customer  Transaction  ATM  Account  อาจมคี ุณลกั ษณะเชน่ เลขทบ่ี ญั ชี ช่อื เจา้ ของบญั ชี วนั ทเ่ี ปิดบญั ชี และยอดเงนิ คงเหลอื  อาจมเี มธอดเชน่ ฝาก ถอน และโอนเงนิ

คลาส  เปรยี บเสมอื นพมิ พเ์ ขยี วของออปเจค็  ออปเจค็ จะถกู สรา้ งมาจากคลาส บางครง้ั เรียกวา่ เปน็ instance ของคลาส  คลาสหนงึ่ คลาสสามารถสรา้ งออปเจ็คไดห้ ลายออปเจ็ค อาทิเชน่ คลาสชื่อ Student อาจสรา้ งออปเจ็คชอ่ื s1,s2 หรอื s3 ซงึ่ เป็นออปเจ็คชนดิ Student

ตวั อย่าง Object VS class Class Object จักระ 50 จักระ 30 จักระ 100 จักระ 20 จักระ 40

คณุ ลกั ษณะของออปเจค็ (attribute)  ขอ้ มลู ทเ่ี กบ็ อยใู่ นออปเจค็  แบง่ เป็นตวั แปร (variable) และคา่ คงท่ี (constant)  ตวั แปรคอื คณุ ลกั ษณะทส่ี ามารถเปลย่ี นคา่ ได้  คา่ คงทค่ี อื คณุ ลกั ษณะทไ่ี มส่ ามารถเปลย่ี นคา่ ได้

เมธอด  วธิ กี ารหรอื การกระทาทน่ี ิยามอยใู่ นคลาสหรอื ออปเจค็ เพอ่ื ใชใ้ นการจดั การกบั คณุ ลกั ษณะของออปเจค็  เปรยี บเทยี บไดก้ บั function, procedure หรอื subroutine ของโปรแกรมเชงิ กระบวนการ  ตวั อยา่ งเชน่ เมธอด deposit()เพอ่ื เป็นเมธอดสาหรบั ฝากเงนิ

การสือ่ สารระหว่างออปเจค็  การสอ่ื สารระหว่างกนั ของออปเจค็ ทาไดโ้ ดยการผ่านขา่ วสาร (message) objB คอื ชอ่ื ออปเจค็ method4 คอื ชอ่ื เมธอด (1,2) คอื argument

การสือ่ สารระหว่างออปเจค็  ข่าวสารจะส่งผา่ นจากออปเจ็ค objA ทเ่ี ปน็ ผสู้ ง่ (sender) เพอ่ื เรยี กการทางานของ เมธอดท่ชี อ่ื method4 จากออปเจค็ objB ทีเ่ ปน็ ผูร้ บั (receiver)  objB อาจสง่ คา่ (return value) บางค่ากลับมายงั objA

การเขยี นโปรแกรมเชงิ ออปเจค็ โดยใชภ้ าษาจาวา  การประกาศคลาส  การประกาศคณุ ลกั ษณะ  การประกาศเมธอด  การประกาศและสรา้ งออปเจค็  การเรยี กใชส้ มาชกิ ของออปเจค็

การประกาศคลาส  โปรแกรมภาษาจาวาแต่ละโปรแกรมจะประกอบไปดว้ ยคลาสอยา่ งนอ้ ยหนึ่งคลาส โดยมี รูปแบบการประกาศดงั น้ี [modifier] class Classname { [class member] }  modifier คอื คยี เ์ วริ ด์ (keyword) ของภาษาจาวาท่ีใช้ในการอธบิ ายระดับการเข้าถงึ (access modifier)  class คอื คียเ์ วริ ์ดของภาษาจาวาเพื่อระบุว่าเปน็ การประกาศคลาส  Classname คือช่อื คลาส  class member คือเมธอดหรอื คณุ ลกั ษณะ  ตวั อยา่ ง public class Student { }

การประกาศคุณลกั ษณะ  คณุ ลกั ษณะของออปเจค็ คอื ตวั แปรหรอื คา่ คงทซ่ี ง่ึ ประกาศภายในออปเจค็ โดยมรี ปู แบบ การประกาศดงั น้ี [modifier] dataType attributeName;  modifier คอื คยี เ์ วริ ด์ ของภาษาจาวาทอ่ี ธบิ ายคุณสมบตั ติ ่างๆของตวั แปรหรอื คา่ คงท่ี  dataType คอื ชนิดขอ้ มลู ซง่ึ อาจเป็นชนิดขอ้ มลู พน้ื ฐานหรอื ชนิดคลาส  attributeName คอื ช่อื ของคุณลกั ษณะ  ตวั อยา่ ง public class Student { public String id; public String name; public double gpa; }

การประกาศเมธอด  ภาษาจาวากาหนดรปู แบบของการประกาศเมธอดทอ่ี ยใู่ นคลาสไวด้ งั น้ี [modifier] return_type methodName([arguments]) { [method_body] }  modifier คอื คยี เ์ วริ ด์ ของภาษาจาวาทใ่ี ชอ้ ธบิ ายระดบั การเขา้ ถงึ  return_type คอื ชนดิ ขอ้ มลู ของคา่ ทจ่ี ะมกี ารสง่ กลบั  methodName คอื ชอ่ื ของเมธอด  arguments คอื ตวั แปรทใ่ี ชใ้ นการรบั ขอ้ มลู ทอ่ี อปเจค็ สง่ มาให้  method_body คอื คาสงั ่ ตา่ งๆของภาษาจาวาทอ่ี ยใู่ นเมธอด

ตัวอยา่ งโปรแกรม public class Student { public String id; public String name; public double gpa; public void setID(String ID) { id = ID; } public void setName(String n) { name = n; } public void setGPA(double GPA) { gpa = GPA; } public void showDetails() { System.out.println(\"ID: \"+id); System.out.println(\"Name: \"+name); System.out.println(\"GPA: \"+gpa); } }

เมธอดทช่ี อ่ื main()  โปรแกรมจาวาประยกุ ต์ (Java Application) จะเรม่ิ ตน้ การทางานในคลาสทม่ี เี มธ อดทช่ี อ่ื main โดยมรี ปู แบบของเมธอดดงั น้ี public static void main(String args[]) { [method_body] }

การประกาศออปเจค็  ออปเจค็ ทกุ ออปเจค็ ในโปรแกรมภาษาจาวาจะตอ้ งมคี าสงั่ ประกาศเพอ่ื ระบวุ า่ ออป เจค็ นนั้ เป็นออปเจค็ ของคลาสใด โดยมรี ปู แบบการประกาศดงั น้ี [modifier] ClassName objectName;  modifier คอื คยี เ์ วริ ด์ ทอ่ี ธบิ ายคณุ สมบตั ติ า่ งๆของออปเจค็  ClassName คอื ชอ่ื ของคลาสสาหรบั ออปเจค็ นนั้  objectName คอื ชอ่ื ของออปเจค็  ตวั อยา่ ง Student s1;

การสรา้ งออปเจค็  คาสงั่ ทใ่ี ชใ้ นการสรา้ งออปเจค็ จะมรี ปู แบบดงั น้ี objectName = new ClassName([arguments]);  objectName คอื ชอ่ื ของออปเจค็  new คอื คยี เ์ วริ ด์ ของภาษาจาวาเพอ่ื ใชใ้ นการสรา้ งออปเจค็  ClassName คอื ชอ่ื ของคลาส  arguments คอื คา่ ทต่ี อ้ งการสง่ ผา่ นในการเรยี ก Constructor  ตวั อยา่ ง s1 = new Student();

การประกาศและสรา้ งออปเจค็  คาสงั่ ในการประกาศและสรา้ งออปเจค็ สามารถทจ่ี ะรวมเป็นคาสงั่ เดยี วกนั โดยมี รปู แบบคาสงั่ ดงั น้ี [modifier] ClassName objectName = new ClassName([arguments]);  ตวั อยา่ ง Student s1 = new Student();

การเรยี กใชส้ มาชกิ ของออปเจค็  การเรยี กใชค้ ณุ ลกั ษณะของออปเจค็ มรี ปู แบบดงั น้ี objectName.attributeName;  การเรยี กใชเ้ มธอดของออปเจค็ มรี ปู แบบดงั น้ี objectName.methodName([arguments]);  objectName คอื ชอ่ื ของออปเจค็ ทส่ี รา้ งขน้ึ  methodName คอื ชอ่ื ของเมธอดของออปเจค็ นนั้  arguments คอื คา่ ทต่ี อ้ งการสง่ ผา่ นไปใหก้ บั เมธอดของออปเจค็ นนั้  ตวั อยา่ ง s1.setName(\"Thana\");

ตวั อย่างโปรแกรม public class Sample { public static void main(String args[]) { Student s1 = new Student(); Student s2 = new Student(); Student s3 = new Student(); s1.setID(\"1234\"); s1.setName(\"Thana\"); s1.setGPA(3.25); s1.showDetails(); s2.setID(\"1122\"); s2.setName(\"Somchai\"); s2.setGPA(2.90); s2.showDetails(); s3.setID(\"2211\"); s3.setName(\"Somsri\"); s3.setGPA(3.00); s3.showDetails(); } }

คณุ ลกั ษณะเดน่ ของโปรแกรมเชงิ ออปเจค็  การหอ่ หมุ้ (Encapsulation)  การสบื ทอด (Inheritance)  การมไี ดห้ ลายรปู แบบ (Polymorphism)

การหอ่ หุม้  หมายถงึ การจะเรยี กใชค้ ณุ ลกั ษณะของออปเจค็ จะทาไดโ้ ดยการเรยี กผา่ นเมธอด เทา่ นนั้  หลกั การของการหอ่ หมุ้ คอื การกาหนดใหค้ ณุ ลกั ษณะของออปเจค็ มคี ณุ สมบตั เิ ป็น private และกาหนดใหเ้ มธอดมคี ณุ สมบตั เิ ป็น public

ขอ้ ดขี องการหอ่ หุม้  การซ่อนเรน้ ขอ้ มลู (Information Hiding)  ทาใหอ้ อปเจค็ สามารถตดิ ตอ่ กบั ออปเจค็ ภายนอกผา่ นเมธอดทเ่ี ป็นสว่ นของ interface เทา่ นนั้  ความเป็นโมดลู (Modularity)  การพฒั นาโปรแกรมเชงิ ออปเจค็ จะสามารถกาหนดใหอ้ อปเจค็ แตล่ ะออปเจค็ มคี วาม เป็นอสิ ระตอ่ กนั

ตวั อยา่ งโปรแกรม public class Student { private String id; private String name; private double gpa; public void setID(String ID) { id = ID; } public void setName(String n) { name = n; } public void setGPA(double GPA) { gpa = GPA; } public void showDetails() { System.out.println(\"ID: \"+id); System.out.println(\"Name: \"+name); System.out.println(\"GPA: \"+gpa); } }

การสบื ทอด  หมายถงึ การนยิ ามคลาสใหมจ่ ากรปู แบบของคลาสทม่ี อี ยแู่ ลว้ โดยคลาสใหม่ สามารถทจ่ี ะนาคณุ ลกั ษณะและเมธอดของคลาสเดมิ มาใชไ้ ด้  โดยในภาษาจาวาจะใชค้ ยี เ์ วริ ด์ extends เพอ่ื ระบกุ ารสบื ทอด  ตวั อยา่ ง

ตวั อย่างโปรแกรม public class PartTimeStudent extends Student { } public class FullTimeStudent extends Student { } public class GradStudent extends Student { private String thesisTitle; private String supervisor; public void setThesisTitle(String t) { thesisTitle = t; } public void setSupervisor(String s) { supervisor = s; } } public class PhDStudent extends GradStudent { public boolean passQualify; public boolean isPassQualify() { return passQualify; } }

การมไี ดห้ ลายรปู แบบ  หมายถงึ การทส่ี ามารถตอบสนองตอ่ ขา่ วสาร (เมธอด) เดยี วกนั ดว้ ยวธิ กี ารท่ี ตา่ งกนั และสามารถกาหนดออปเจค็ ไดห้ ลายรปู แบบ  Overridden method  Dynamic Binding

ตวั อยา่ ง

ตวั อยา่ งโปรแกรม class Ball { public void throw() { } } class SoccerBall extends Ball { public void throw() { System.out.println(\"Throwing soccerball\"); } } class TennisBall extends Ball { public void throw() { System.out.println(\"Throwing tennisball\"); } } public class TestBall { public static void main(String args[]) { Ball b1 = new Ball(); SoccerBall b2 = new SoccerBall(); Ball b3 = new SoccerBall(); } }

Unified Modeling Language (UML)  เป็นภาษาทส่ี ามารถนารปู กราฟฟิกมาจาลองโปรแกรมเชงิ ออปเจค็ ได้  ประกอบดว้ ยสองสว่ นคอื  ไดอะแกรมของคลาส (Class Diagram)  ไดอะแกรมของออปเจค็ (Object Diagram)

ไดอะแกรมของคลาส  เป็นสญั ลกั ษณ์ทใ่ี ชแ้ สดงคลาส  ประกอบดว้ ยสว่ นตา่ งๆสามสว่ นคอื  ชอ่ื ของคลาส  คุณลกั ษณะภายในคลาส  เมธอดภายในคลาส

ไดอะแกรมของออปเจค็  ประกอบไปดว้ ยสว่ นตา่ งๆสองสว่ นคอื  สว่ นทร่ี ะบชุ อ่ื ของออปเจค็  สว่ นทร่ี ะบุคา่ ของคณุ ลกั ษณะภายในออปเจค็

ขน้ั ตอนการพฒั นาโปรแกรม  ขนั้ ตอนการวเิ คราะห์ (Analysis)  ขนั้ ตอนการออกแบบ (Design)  ขนั้ ตอนการเขยี นโปรแกรม (Programming)  ขนั้ ตอนการทดสอบ (Testing)  ขนั้ ตอนการทางาน (Operation)

รปู แสดงข้นั ตอนการพฒั นาโปรแกรม


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook