Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-222158-6 1 Java Programming Language.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
C# เบื้องต้น ก่อนการเขียนเกมด้วย XNA
วิธีการตั้งค่าและทดสอบ เครื่องคอมพิวเตอร์ก่อนใช้งาน
1 C Programming An Introduction. 2 Preprocessing Directives เขียนได้ 2 รูปแบบ #include คอมไพเลอร์จะทำ การค้นหาเฮดเดอร์ไฟล์ที่ระบุ จากไดเร็คทอรีที่ใช้
พระบาทสมเด็จพระเจ้าอยู่หัวทรงพระราชทาน
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
การซ้อนทับกัน และคลื่นนิ่ง
Basic programming (JAVA)
แนวทางการรายงานผลการปฏิบัติราชการโดยผ่านระบบเครือข่ายอินเตอร์เน็ต
VARIABLES, EXPRESSION and STATEMENTS. Values and Data Types Value เป็นสิ่งพื้นฐาน มีลักษณะเป็น ตัวอักษร หรือ ตัวเลข อาทิ 2+2 หรือ “Hello world” Value.
AVL Tree.
บทที่ 12 Virtual Private Networks
การสืบค้นข้อมูลจาก Web OPAC
05_3_Constructor.
Object Oriented Programing
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
Chapter 12 Riveted, Bolted & Welded Connections
Database to Ontology Mapping & Semantic Search System Tutorial
กลุ่มสาระการเรียนรู้ คณิตศาสตร์ โรงเรียนบ้านหนองกุง อำเภอนาเชือก
Stored Procedure.
กระบวนการคิดทางคณิตศาสตร์
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
การสืบค้นข้อมูลจาก Web OPAC
WEEK#16: Method เมธอดคือกลุ่มคําสั่งที่ถูกกําหนดขึ้นเพื่อทำงาน อย่างใดอย่างหนึ่งเพื่อให้ได้ผลลัพธ์ตาม ต้องการ การประกาศเมธอด มีรูปแบบดังนี้ [modifier]
บทที่ 2 งบการเงินพื้นฐาน BASIC FINANCIAL STATEMENTS 2.
By Dr Nongyao Premkamolnetr Policy Innovation Center, KMUTT 17 January 2009.
Dynamic Link Library (DLL)
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
Inheritance การสืบทอดคลาส
รายงานในระบบบัญชีแยกประเภททั่วไป (GL – General Ledger)
ทำการตั้งเบิกเพิ่ม แบบฟอร์ม GFMIS.ขบ.02 เพื่อชดใช้ใบสำคัญ
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved JTextArea Constructors 
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Swing GUI Components.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Java Programming Language สาขาวิชาระบบสารสนเทศ คณะบริหารธุรกิจ มหาวิทยาลัยเทคโนโลยีราชมงคลกรุงเทพ.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Thread
Thread Thread ส่วนของ process ที่ให้ CPU ประมวลผล.
The ServerSocket Class ใช้ในการจัดทำเครื่องที่เป็นการบริการ ใช้ในการจัดทำเครื่องที่เป็นการบริการ โดยจะมี ช่วงชีวิตดังนี้ โดยจะมี ช่วงชีวิตดังนี้
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
การดำเนินการทดสอบทางการศึกษาแห่งชาติ (O-NET)
Method of Class อ.สุพจน์ สิงหัษฐิต
Nattapong Songneam BankAccount – Example Nattapong Songneam
21 August ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list.
Java Array and String Jarungjit Parnjai
Object-Oriented Programming with Java Burapha University, 2001 Java Array and String Week #3 Jarungjit Parnjai.
Object-Oriented Programming with Java Burapha University, 2001 Java Exceptions Week #9 Jarungjit Parnjai.
Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Iterator Week #11 Jarungjit Parnjai.
Lecture 7 Java Exceptions. Errors  Compile-time Errors  เกิดขึ้นระหว่าง compile ตรวจสอบได้ด้วย Compiler  เช่น ผิดหลักไวยากรณ์  Run-time Error  เกิดขึ้นระหว่างประมวลผล.
Introduction of DREAM สุวรรณา ประณีตวตกุล คณะเศรษฐศาสตร์ มหาวิทยาลัยเกษตรศาสตร์
บทที่ 4 คำสั่งควบคุมแบบมีทางเลือก
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
ภาษาอังกฤษเพื่อการสื่อสาร อ32204
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
TECH30201 Object-Oriented Programming
Inheritance and Method Overriding
Inheritance Chapter 07.
Class Inheritance and Interfaces.
ใบสำเนางานนำเสนอ:

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language Chapter 8 Objects,Classes,inheritance and Exception

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved OO Programming Concepts Object-oriented programming (OOP) จะเป็นการ เขียนโปรแกรมที่มีความเกี่ยวข้องกับการใช้งาน Object. การสร้าง object(instance) โดยใช้คำสั่ง new โดยจะ ทำการเรียก Constructor ของคลาสนั้นๆขึ้นมา ทำงานเป็นอันดับแรก สามารถสร้าง object และสามารถเรียกใช้ตัวแปรหรือ method ในคลาสนั้นๆได้โดยเรียกผ่านชื่อ Object ที่ สร้าง Object จะเป็นตัวแทนของ Class ประกอบด้วย data fields (Attribute) และ methods. (Behavior)

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Objects สามารถสร้าง object ได้จาก class ที่สร้างไว้โดย object จะเป็นตัวแทนของ class นั้น และสามารถ เข้าถึงตัวแปรและเมธอดของคลาสนั้นได้ผ่านชื่อของ object.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Classes

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved UML Class Diagram

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Constructors Circle() { } Circle(double newRadius) { radius = newRadius; } Constructors เป็น methods ชนิดพิเศษ และจะถูกเรียกใช้ ทันทีที่มีการสร้าง objects. Constructors เป็นเมธอดที่มีชื่อเดียวกับชื่อ คลาส. Constructors เป็นเมธอดที่ไม่มีการ return ค่า และไม่ต้องใส่ type เป็น void.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Declaring Object Reference Variables รูปแบบการประกาศตัวแปร object : ClassName objectRefVar; Example: Circle myCircle;

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Declaring/Creating Objects in a Single Step ClassName objectRefVar = new ClassName(); Example: Circle myCircle = new Circle(); Create an object Assign object reference รูปแบบการสร้าง object.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Accessing Objects F การอ้างอิง Variable ของ object’s : objectRefVar.data e.g., myCircle.radius F การเรียกใช้ method ของ object’s : objectRefVar.methodName(arguments) e.g., myCircle.getArea()

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved The Date Class Java provides a system-independent encapsulation of date and time in the java.util.Date class. You can use the Date class to create an instance for the current date and time and use its toString method to return the date and time as a string.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved The Date Class Example For example, the following code java.util.Date date = new java.util.Date(); System.out.println(date.toString()); displays a string like Sun Mar 09 13:50:19 EST 2003.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved The this Keyword F ใช้ในการอ้างอิงถึง data field ในคลาส เดียวกัน. F ใช้ในการเรียก overloaded constructor ใน คลาสเดียวกัน.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Serving as Proxy to the Calling Object

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Calling Overloaded Constructor

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Example: The Course Class Course ให้นักศึกษาสร้าง Class และเมธอดจาก UML ที่กำหนดให้

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved inheritance F เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่ อีกคลาสหนึ่ง F คลาสที่ถ่ายทอดเรียกว่าคลาสแม่ (superclass) F คลาสที่ได้รับการถ่ายทอดเรียกว่าคลาสลูก (subclass) F ภาษาจาวาสนับสนุนกลไกนี้โดยมีคำสั่งการ ถ่ายทอดคุณสมบัติโดยใช้ keyword “extends” ดัง รูปแบบดังนี้ class subclass extends superclass F subclass จะได้รับการถ่ายทอดคุณสมบัติของตัวแปรและ method จาก superclass ทุกประการยกเว้น ตัวแปร private และ constructor

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved inheritance F รูปแบบการเขียนโปรแกรม class Subclass extends SuperClass { Data Member; Method Member; }  Subclass : คือชื่อคลาสที่ถูกตั้งขึ้นเพื่อเป็นคลาสสืบ ทอด  SuperClass : คือชื่อคลาสที่ต้องการนำมาเป็นคลาส สืบทอด  extends : เป็นคีย์เวิรด์ที่บอกว่าเป็นการสร้างซับ คลาส

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved super F ใช้อ้างชื่อสมาชิกของคลาสกรณีที่ subclass กับ superclass ใช้สมาชิกชื่อเดียวกัน F subclass สามารถเรียกใช้ constructor ของ superclass ได้เลยโดยที่ subclass ไม่ต้องสร้าง constructor ขึ้นมาใหม่ F รูปแบบ super.member; super(parameter);

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Final F Keyword “final” ใช้นำหน้าคลาส, ตัวแปร, เมธอด ซึ่งมีประโยชน์ดังนี้  ถ้านำหน้าตัวแปรทำให้ตัวแปรนั้นเป็นค่าคงที่ ( เปลี่ยนแปลงไม่ได้ )  ถ้านำหน้าเมธอดทำให้เมธอดนั้นไม่สามารถถูก override ได้  ถ้านำหน้าคลาสทำให้คลาสนั้นไม่สามารถ inheritance ได้

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Abstract Class F เป็นคลาสที่มี keyword “abstract” อยู่หน้า class F สมาชิกภายในคลาสเป็น abstract method F ไม่สามารถนำไปสร้าง object ได้จนกว่าจะทำการ override method นั้นๆให้ครบก่อน F รูปแบบ abstract class classname{.... }

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Abstract Class F รูปแบบการเขียนโปรแกรม abstract class classname{ abstract Data Member; abstract Method Member; } F abstract : เป็นคีย์เวิรด์สำหรับกำหนดให้คลาส มีคุณสมบัติ abstract

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Abstract Class F การใช้งาน abstract class เมื่อมีการ extends จากคลาสที่ เป็น abstract ต้องทำการ Override Abstract method ทุกตัว ใน Abstract Class ให้ครบทุกตัวจึงจะสามารถสร้าง Object จากคลาสนั้นได้ F รูปแบบการทำการ Override Method class classname extends AbstractClass { AbstractMethodMember(){ Statement; } ตัวอย่างการเขียนโปรแกรม Test3.javaTest3.java

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Interface Class F คือคลาสที่ใช้ keyword “interface” แทน keyword “class” F สมาชิกภายในจะมีเฉพาะตัวแปรที่เป็นค่าคงที่ (final) และ abstract method เท่านั้น F ต้องทำการ override method ภายใน interface class ให้ครบจึงสามารถจะทำงานได้ F มีประโยชน์ในการทำ multiple inheritance โดยใช้ keyword “implements” เช่น class ActionEvent1 extends JFrame implements ActionListener

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Interface Class F รูปแบบการเขียนโปรแกรม public interface interfaceName{ Data Member; public void Methodname(); } –interace : เป็นคีย์เวิรด์สำหรับกำหนดให้เป็น interace class –interaceName : คือชื่อคลาสอินเตอร์เฟส – ตัวอย่างการสร้าง TestInterface.java TestInterface.java

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Interface Class F การใช้งานอินเตอร์เฟส เมื่อมีการถ่ายทอด คุณสมบัติจาก interface class F รูปแบบ class ClassName extends superclass implements InterfaceName{ Data Member; AbstractMethodName{ statement; } F implements : คือคีย์เวิรด์สำหรับการนำ interface class มาใช้

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Exception Handler  เป็นกลไกของภาษาเมื่อมีความผิดพลาด เกิดขึ้นในขณะที่โปรแกรมทำงานจะมีการโยน (throw) ออกมาที่ตำแหน่งนั้น  ถ้าไม่มีการดักจับ throw ตัวนี้จะถูกโยนไป ตามลำดับจนถึง Java Interpreter  ภาษาจาวามีกลไกในการดักจับ throw เรียกว่า Exception Handing มีรูปแบบดังนี้

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Exception Handler F รูปแบบ try { Statement; // ที่สงสัยว่าจะเกิด Exception } catch (ExceptionClass e) { Statement; // ที่จะให้กระทำเมื่อเกิด Exception }

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved The finally Clause try { statements; } catch(TheException ex) { handling ex; } finally { finalStatements; }

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace a Program Execution animation try { statements; } catch(TheException ex) { handling ex; } finally { finalStatements; } Next statement; Suppose no exceptions in the statements

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace a Program Execution animation try { statements; } catch(TheException ex) { handling ex; } finally { finalStatements; } Next statement; The final block is always executed

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace a Program Execution animation try { statements; } catch(TheException ex) { handling ex; } finally { finalStatements; } Next statement; Next statement in the method is executed

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace a Program Execution animation try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } finally { finalStatements; } Next statement; Suppose an exception of type Exception1 is thrown in statement2

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace a Program Execution animation try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } finally { finalStatements; } Next statement; The exception is handled.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace a Program Execution animation try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } finally { finalStatements; } Next statement; The final block is always executed.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace a Program Execution animation try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } finally { finalStatements; } Next statement; The next statement in the method is now executed.

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Exception Handler  ประโยคใน Try Block คือประโยคที่ส่ง exception ออกมาเมื่อเกิดความผิดปกติตอน โปรแกรมทำงาน  ประโยคใน catch block คือประโยดที่จัดการ กับ exception ที่เกิดขึ้นในประโยค try block  การดักจับ exception สามารถใช้ class Exception ที่เป็นคลาสแม่ตั้งรับได้ซึ่ง สามารถรับ exception ของคลาสใดๆ