เขียนโปรแกรม Java เบื้องต้น คลาส 01/12/61 เขียนโปรแกรม Java เบื้องต้น เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น หัวข้อ ประวัติศาสตร์โดยย่อของการเขียนโปรแกรม คลาสและวัตถุ ข้อความและเมธอด คำประกอบ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
ประวัติศาสตร์โดยย่อของการเขียนโปรแกรม 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ภาษาแอสเซมบลี ภาษาเครื่อง เลขฐานสอง เช่น 0101 ซีพียูรู้จัก ภาษาแอสเซมบลี แอสเซมเบลอร์ (assembler) 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น โฟลวชาร์ต 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การโปรแกรมเชิงโครงสร้าง โครงสร้างการทำงานของโปรแกรมควรมีอย่างจำกัด แต่ในขณะเดียวกันก็ต้องเพียงพอที่จะใช้แก้ปัญหาต่างๆได้ โครงสร้างที่จำเป็นต่อการเขียนโปรแกรมมีอยู่ 3 แบบ การทำงานเรียงลำดับ การทำงานตามเงื่อนไข การทำซ้ำ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การทำงานเรียงลำดับ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การทำงานตามเงื่อนไข 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การทำซ้ำ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ซับรูทีนและฟังก์ชัน จัดระเบียบคำสั่งในโปรแกรม แบ่งโปรแกรมออกเป็นส่วนย่อยๆ ทำความเข้าใจได้ง่าย 01/12/61 เขียนโปรแกรม Java เบื้องต้น
จุดอ่อนของภาษาโปรแกรมเชิงโครงสร้าง โปรแกรมประกอบด้วยคำสั่งและข้อมูล การจัดระเบียบคำสั่งเพียงอย่างเดียวนั้นจึงไม่สมบูรณ์ แยกส่วนที่เป็นข้อมูลออกจากคำสั่ง ด้วยเหตุนี้ฟังก์ชันที่จัดการกับข้อมูลจึงอาจจะถูกวางไว้อย่างกระจัดกระจาย สร้างความลำบากในการติดตามสืบหาว่าข้อมูลนี้ถูกเปลี่ยนแปลงโดยฟังก์ชันใด 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น คลาสและวัตถุ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การโปรแกรมเชิงวัตถุ การห่อหุ้ม (encapsulation) รวมข้อมูลกับคำสั่งที่เกี่ยวข้องกับข้อมูลนั้นเข้าด้วยกัน ซ่อนวิธีการทำงาน (information hiding) ซ่อนวิธีการทำงานของวัตถุ ทำให้เกิดความยืดหยุ่น ผู้สร้างวัตถุสามารถเปลี่ยนแปลงวิธีการทำงานของวัตถุได้โดยไม่กระทบต่อผู้ใช้วัตถุ การมองที่เป็นธรรมชาติ เห็นภาพแล้วแยกเป็นวัตถุโดยอัตโนมัติ ในขณะเดียวกันก็นึกถึงประโยชน์ของวัตถุได้ทันที 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การโปรแกรมเชิงวัตถุ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น วัตถุ (object) โปรแกรมพจนานุกรมฉบับราชบัณฑิตยสถาน พ.ศ. ๒๕๒๕ นิยามคำว่า “วัตถุ” ว่าหมายถึงสิ่งของ และนิยามคำว่า “สิ่งของ” ว่าหมายถึงวัตถุต่างๆ ในโปรแกรมจะจำลองลักษณะและความสามารถของวัตถุต่างๆ ที่อยู่ในโลกจริง สิ่งไม่มีชีวิต เช่น รูปสี่เหลี่ยม โทรทัศน์ หรือบ้าน สิ่งมีชีวิต เช่น พนักงาน นก หรือต้นไม้ สิ่งที่เป็นนามธรรม เช่น แนวความคิด หลักการ หรือวิธีการ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น คลาส (class) สิ่งที่เราใช้อธิบายลักษณะและความสามารถของวัตถุ คลาสอาจจะเปรียบได้กับพิมพ์เขียวหรือแบบแปลนของวัตถุ วัตถุก็เป็นที่สร้างขึ้นมาจากแบบแปลนนั้น 01/12/61 เขียนโปรแกรม Java เบื้องต้น
แบบแปลนและวัตถุที่สร้างจากแบบ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การกำหนดสาระสำคัญ (abstraction) เลือกจำลองลักษณะที่สำคัญ จำลองเฉพาะความสามารถของวัตถุที่เราสนใจหรือเกี่ยวข้องกับปัญหาที่เราต้องการจะแก้ไข เช่น ถ้าเราต้องการคำนวณหาน้ำหนักเฉลี่ยของแมว เราก็อาจจะให้แมวจำลองมี "น้ำหนัก" เป็นลักษณะที่สำคัญ ไม่จำลองลักษณะทั้งหมดของวัตถุ การจำลองแมวจะไม่จำลองหนวดทุกเส้นของแมว 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น คลาสในภาษาจาวา คลาสหรือแบบแปลนของวัตถุ จะถูกเขียนอยู่ในไฟล์ที่มีนามสกุล java เช่น คลาสสี่เหลี่ยมอาจจะถูกเขียนอยู่ในไฟล์ชื่อ Rectangle.java 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ส่วนประกอบของคลาส 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การสร้างวัตถุ รูปแบบ คลาส เรฟเฟอร์เรนซ์ = new คลาส(); ตัวอย่าง สี่เหลี่ยม ก = new สี่เหลี่ยม(); สี่เหลี่ยม ข = new สี่เหลี่ยม(); 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ข้อความและเมธอด 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ข้อความและเมธอด สั่งให้วัตถุทำงานโดยการส่งข้อความ (message) หรือคำสั่งไปหาวัตถุ เมื่อวัตถุได้รับข้อความแล้ว วัตถุนั้นก็จะทำงานตามวิธีการหรือคำสั่งต่างๆที่เขียนไว้ใน เมธอด (method) 01/12/61 เขียนโปรแกรม Java เบื้องต้น เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ส่วนประกอบของคลาส เมธอด เป็นสิ่งที่ใช้อธิบายการทำงานของวัตถุในคลาส แอททริบิวท์ เป็นสิ่งที่ใช้บอกถึงลักษณะต่างๆของวัตถุในคลาส 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ตัวอย่างเมธอด คลาส เมธอด นก กิน(), บิน(), ร้องเพลง() โทรทัศน์ เปิด(), ปิด(), เปลี่ยนช่อง(), ปรับเสียง() สี่เหลี่ยม คำนวณพื้นที่() 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ตัวอย่างแอททริบิวท์ คลาส แอททริบิวท์ นก สี, เพศ, น้ำหนัก โทรทัศน์ ยี่ห้อ, รุ่น, หมายเลข, ขนาดจอภาพ สี่เหลี่ยม ความกว้าง, ความสูง 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น เมธอด วิธีการทำงานเมื่อได้รับข้อความ ชื่อของเมธอดควรเป็นคำกริยา 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การเรียกเมธอด (การส่งข้อความ) รูปแบบ เรฟเฟอร์เรนซ์.เมธอด(); ตัวอย่าง สี่เหลี่ยม ส = new สี่เหลี่ยม(); System.out.println( ส.คำนวณพื้นที่() ); 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การประกาศเมธอด class สี่เหลี่ยม { double คำนวณพื้นที่() { // คำนวณหาพื้นที่ของสี่เหลี่ยม … } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เมธอดที่คืนค่าเป็นชนิดข้อมูลพื้นฐาน class สี่เหลี่ยม { double คำนวณพื้นที่() { // คำนวณหาพื้นที่ของสี่เหลี่ยม … // ส่งคืนค่าพื้นที่ให้กับผู้เรียก return พื้นที่ของสี่เหลี่ยม; } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เมธอดที่คืนค่าเป็นเรฟเฟอร์เรนซ์ class สี่เหลี่ยม { String ขอข้อมูล() { … return สตริงที่แสดงข้อมูลสี่เหลี่ยม; } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น เมธอดที่ไม่คืนค่า class สี่เหลี่ยม { void เพิ่มขนาดสองเท่า() { … return; } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น แอททริบิวท์ ข้อมูลที่ใช้อธิบายความแตกต่างของวัตถุ เช่น วัตถุแมว มีชื่อ สี พันธุ์ น้ำหนัก แตกต่างกัน ตัวแปรวัตถุ (instance variable) 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น แอททริบิวท์ class สี่เหลี่ยม { double ความกว้าง; double ความสูง; } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การใช้งานแอททริบิวท์ รูปแบบ เรฟเฟอร์เรนซ์.แอททริบิวท์ ตัวอย่าง สี่เหลี่ยม ส = new สี่เหลี่ยม(); ส.ความกว้าง = 10; ส.ความสูง = 5; 01/12/61 เขียนโปรแกรม Java เบื้องต้น
คอนสตรัคเตอร์ (constructor) เมธอดที่มีชื่อเหมือนกับคลาส ใช้กำหนดค่าเริ่มต้นให้กับแอททริบิวต์ ถูกเรียกใช้เมื่อเราสร้างวัตถุด้วยคำสั่ง new 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การประกาศคอนสตรัคเตอร์ class สี่เหลี่ยม { สี่เหลี่ยม(double ก, double ส) { ความกว้าง = ก; ความสูง = ส; } double ความกว้าง; double ความสูง; 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การเรียกคอนสตรัคเตอร์ สี่เหลี่ยม ก = new สี่เหลี่ยม(10, 5); สี่เหลี่ยม ข = new สี่เหลี่ยม(20, 4); System.out.println(ก.กว้าง); System.out.println(ข.กว้าง); 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การโอเวอร์โหลดเมธอด class สี่เหลี่ยม { { สี่เหลี่ยม() { ... } สี่เหลี่ยม(double ก, double ส) { ... } } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การโอเวอร์โหลดเมธอด class สี่เหลี่ยม { { double getArea() { ... } int getArea(int n) { ... } } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น Class Diagram 01/12/61 เขียนโปรแกรม Java เบื้องต้น
Class Diagram ของ Rectangle - width : double - height : double + Rectangle() + getArea() : double + setHeight(double h) + setWidth(double w) 01/12/61 เขียนโปรแกรม Java เบื้องต้น
คลาส Rectangle ในภาษาจาวา 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ประกาศคลาส class Rectangle { } class สี่เหลี่ยม { } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น เพิ่มเมธอด class Rectangle { double getArea() { .... } class สี่เหลี่ยม { double คำนวณพื้นที่() { .... } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น เพิ่มแอททริบิวท์ class Rectangle { double getArea() { .... } double width; double height; class สี่เหลี่ยม { double คำนวณพื้นที่() { .... } double ความกว้าง; double ความสูง; 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนวิธีการทำงานของเมธอด คำนวณพื้นที่() class สี่เหลี่ยม { double คำนวณพื้นที่() { return ความกว้าง * ความสูง; } double ความกว้าง; double ความสูง; class Rectangle { double getArea() { return width * height; } double width; double height; 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น เขียนคอนสตรัคเตอร์ class Rectangle { Rectangle(double w,double h) { width = w; height = h; } ... class สี่เหลี่ยม { สี่เหลี่ยม(double ก, double ส) { ความกว้าง = ก; ความสูง = ส; } ... 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ทดสอบคลาส Rectangle class TestRectangle { public static void main(String[] args) { Rectangle r = new Rectangle(2, 3); System.out.println(r.getArea()); Rectangle p = new Rectangle(5, 7); System.out.println(p.getArea()); } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น คอมไพล์และรัน 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น เมธอด toString() พิมพ์ข้อมูลเกี่ยวกับวัตถุ class Rectangle { public String toString() { String result = "Width = " + width; result += " Height = " + height; return result; } ... 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การเรียกเมธอด toString() System.out.println( rect.toString() ); System.out.println( rect ); 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น เมธอด equals() เปรียบเทียบแอททริบิวท์ ไม่ใช้เครื่องหมาย == เพื่อเปรียบเทียบวัตถุ class Rectangle { public boolean equals(Rectangle other) { return (width == other.width) && (height == other.height); } ... 01/12/61 เขียนโปรแกรม Java เบื้องต้น
คำประกอบการเข้าใช้ (Access Modifiers) 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น คำประกอบการเข้าใช้ ประกอบกับการประกาศแอททริบิวต์หรือเมธอด private วัตถุต่างคลาสไม่สามารถเข้าใช้ได้ การปกป้องข้อมูลทำได้ มักจะให้แอททริบิวท์มีการเข้าใช้แบบ private public อนุญาตให้คลาสอื่นใช้ได้ มักจะให้เมธอดมีการเข้าใช้แบบ public 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น คำประกอบการเข้าใช้ class Rectangle { public double getArea() { return width * height; } private double width; private double height; 01/12/61 เขียนโปรแกรม Java เบื้องต้น
ทดลองเข้าใช้แอททริบิวท์ที่ถูกปกป้อง public class TestPrivate { public static void main( String[] args) { Rectangle rect = new Rectangle(); rect.width = 10; } 01/12/61 เขียนโปรแกรม Java เบื้องต้น
ทดลองเข้าใช้แอททริบิวท์ที่ถูกปกป้อง 01/12/61 เขียนโปรแกรม Java เบื้องต้น
ทำไมเราควรกำหนดการปกป้องแอททริบิวท์ ความเป็นส่วนตัวสามารถป้องกันวัตถุอื่นๆเข้ามาทำลายคุณสมบัติบางอย่าง เลขบัญชีธนาคารติดลบแทนที่จะเป็นเลขศูนย์หรือเลขบวก ความกว้างและความสูงของสี่เหลี่ยมน้อยกว่าหรือเท่ากับศูนย์ ทำให้เราสามารถเปลี่ยนแปลงชนิดของตัวแปรเหล่านั้นได้ โดยไม่กระทบกระเทือนคลาสอื่นที่ใช้คลาสของเรา 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การซ่อนวิธีการทำงาน สามารถเปลี่ยนแปลงวิธีการทำงานของวัตถุได้โดยไม่กระทบต่อผู้ใช้วัตถุ เกิดความยืดหยุ่น เช่น ถ้าเปรียบวัตถุเหมือนกับรถ และผู้ใช้วัตถุคือคนขับรถ บริษัทผู้ผลิตรถสามารถเปลี่ยนเครื่องยนต์รุ่นใหม่ เปลี่ยนระบบเบรค ฯลฯ โดยที่คนขับยังสามารถขับรถได้เหมือนเดิม 01/12/61 เขียนโปรแกรม Java เบื้องต้น
สี่เหลี่ยมที่ผิดปรกติ Rectangle rect = new Rectangle( -10, 10); IllegalArgumentException 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การแจ้งว่ามีความผิดปกติ class Rectangle { public Rectangle(double w, double h) { if (w <= 0 || h <= 0) throw new IllegalArgumentException(); width = w; height = h; } ... 01/12/61 เขียนโปรแกรม Java เบื้องต้น
การแจ้งว่ามีความผิดปกติ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น การเข้าใช้แบบอื่นๆ protected เกี่ยวข้องกับการสืบทอด กล่าวถึงในบทที่ 11 การเข้าใช้แบบแพ็คเกจ (package) แพ็คเกจเป็นที่เก็บรวมรวมคลาสที่เกี่ยวข้องกัน แพ็คเกจเปรียบได้กับโฟลเดอร์ การเข้าใช้แบบแพ็คเกจไม่ต้องใช้คำประกอบใดๆ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
สแตติกเมธอด (static method) เมธอดของคลาส รูปแบบการประกาศ public static ชนิดข้อมูลที่ส่งกลับ เมธอด(พารามิเตอร์) { … } รูปแบบการเรียกใช้ คลาส.สแตติกเมธอด(พารามิเตอร์ ) ตัวอย่างการเรียกใช้ int m = Math.round(12.5); int n = String.valueOf(1234); 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ตัวแปรของคลาส รูปแบบ private static ชนิดข้อมูล ตัวแปร; ตัวอย่าง private static int count; 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น ค่าคงที่ของคลาส รูปแบบ public static final ชนิดข้อมูล ตัวแปร=ค่า; ตัวอย่าง public static final int TOTAL_SIDES = 4; 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น สรุป 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น สรุป การโปรแกรมเชิงโครงสร้างทำให้คำสั่งในโปรแกรมเป็นระเบียบ ตรวจสอบลำดับการทำงานได้ง่าย การโปรแกรมเชิงวัตถุรวมข้อมูลกับคำสั่งให้อยู่ในที่เดียวกัน เรียกว่า encapsulation การโปรแกรมเชิงวัตถุเป็นธรรมชาติสำหรับมนุษย์ เพราะเรามองสิ่งต่างๆเป็นวัตถุ และทราบว่าวัตถุต่างๆสามารถใช้ทำอะไรได้ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น สรุป ชนิดของวัตถุเรียกว่าคลาส วัตถุในโปรแกรมคือสิ่งที่จำลองการทำงานของวัตถุในโลกจริง การเลือกจำลองเฉพาะความสามารถและลักษณะที่สำคัญ เรียกว่า abstraction เรฟเฟอร์เรนซ์คือตัวแปรที่ใช้สำหรับอ้างถึงวัตถุ การประกาศเรฟเฟอร์เรนซ์ไม่ได้สร้างวัตถุ การสร้างวัตถุทำโดยการใช้คำสั่ง new วัตถุถูกเรียกใช้งานผ่านทางเรฟเฟอร์เรนซ์ 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น สรุป ความสามารถของวัตถุถูกเขียนไว้ในเมธอดแบบ public ผู้ใช้สามารถใช้งานวัตถุโดยไม่ทราบว่าวัตถุนั้นมีการทำงานอย่างไร ถ้าโปรแกรมถูกเขียนโดยใช้หลักการ information hiding ลักษณะของวัตถุจะเก็บไว้ในแอททริบิวท์หรือตัวแปรวัตถุ แอททริบิวท์มักจะมีการเข้าใช้แบบ private เพื่อป้องกันไม่ให้คลาสอื่นเข้ามาแก้ไขเปลี่ยนแปลง 01/12/61 เขียนโปรแกรม Java เบื้องต้น
เขียนโปรแกรม Java เบื้องต้น สรุป คลาสอื่นไม่สามารถการเข้าใช้เมธอดหรือแอททริบิวต์ที่เป็น private เมธอดในคลาสนั้นสามารถเปลี่ยนแปลงแอททริบิวต์ที่เป็น private ได้ ทุกคลาสสามารถเข้าใช้เมธอดหรือแอททริบิวท์ที่เป็น public สแตติกเมธอดคือเมธอดของคลาส ตัวแปรของคลาสกำหนดได้โดยใช้คำประกอบ static ค่าคงที่ของคลาสกำหนดได้โดยใช้คำประกอบ static final 01/12/61 เขียนโปรแกรม Java เบื้องต้น