งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Object-Oriented Programming with Java Burapha University, 2001 Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Object-Oriented Programming with Java Burapha University, 2001 Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai."— ใบสำเนางานนำเสนอ:

1 Object-Oriented Programming with Java Burapha University, 2001 Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai

2 Object-Oriented Programming with Java Burapha University, 2001 Modularity  Modularity ก่อให้เกิดพื้นฐานของการที่ โปรแกรมถูกพัฒนา และผลลัพธ์ของการ บำรุงรักษา software  high cohesion : ความสัมพันธ์กันอย่าง ใกล้ชิดระหว่าง หน่วย (unit) ภายใน software module  low coupling : ความขึ้นตรงต่อกันและ กัน แบบไม่ใกล้ชิดระหว่า software modules ที่แตกต่างกัน

3 Object-Oriented Programming with Java Burapha University, 2001 Modularity  หน่วย (Unit) ของ software module  method จัดเป็น programming unit ที่ เล็กที่สุด  class เป็น unit ที่ใหญ่ขึ้นถัดมา methods ที่เกี่ยวเนื่องสัมพันธ์กัน จะถูก จัดไว้ใน class definition เดียวกัน  package ใน Java ก่อให้เกิดที่บรรจุ software สำหรับคลาสต่างๆ ที่มีหน้าที่ การทำงานที่เกี่ยวข้องกัน

4 Object-Oriented Programming with Java Burapha University, 2001 Packages in Java  package ถูกประกาศโดยใช้คำเฉพาะ “package” คลาสที่เกี่ยวเนื่องสัมพันธ์ ถูกจัดไว้ใน package เดียวกัน  คลาส Point ถูกกำหนดไว้ใน “ Point.java ”  คลาส Circle ถูกกำหนดไว้ใน Circle.java  ถ้าไม่มีคำเฉพาะ “ package ” คลาส ภายใต้ directory เดียวกันจะจัดไว้ใน package เดียวกันที่ไม่มีการตั้งชื่อ package geometry; public class Point { … … } package geometry; public class Circle { … … } same package geometry.Point geometry.Circle

5 Object-Oriented Programming with Java Burapha University, 2001  การประกาศ “package” ในภาษาจาวา สามารถทำได้ดังนี้ package package_name1[.package_name2];  โดยมีเงื่อนไขดังนี้  ประกาศไว้ที่ตำแหน่งเริ่มต้นของไฟล์ เท่านั้น  ประกาศได้เพียง 1 package ต่อ 1 source file  ตัวอย่าง “Bank.java” และ “Customer.java” package banking; public class Bank { : } The “package” Statement package banking; public class Customer { : }

6 Object-Oriented Programming with Java Burapha University, 2001 Software Package  ช่วยในการจัดการ Software ขนาดใหญ่ โดยรวมกลุ่มของคลาส ไว้ใน “Package”

7 Object-Oriented Programming with Java Burapha University, 2001  คลาสภายใน package ที่ถูกตั้งชื่อไว้ สามารถอ้างอิงได้ 2 แบบ :  ใช้ชื่อเต็มของ คลาส package-name.ClassName; เช่น geometry.Point; หรือ banking.Bank;  import คลาส และใช้เฉพาะชื่อคลาส  import คลาสเดียวภายในคลาสที่ ระบุ import package-name.ClassName; เช่น import geometry.Point;  import ทุกคลาสที่อยู่ภายใน package import package-name.*; เช่น import geometry.*; คลาส geometry.Circle จะถูก import เข้ามาด้วย คลาส geometry.Po int จะถูก อ้างอิงด้วย Point Class Reference in Package

8 Object-Oriented Programming with Java Burapha University, 2001  นอก Package มองเห็นเฉพาะคลาสที่ ประกาศเป็น public  by default มองเห็นคลาสที่ไม่ได้ ประกาศ modifier เฉพาะภายใน package เช่น  คลาส Point และ Line ถูกกำหนดไว้ใน “Point.java”  คลาส DemoClient ถูกกำหนดไว้ใน “DemoClient.java” package geometry; public class Point { … … } class Line { … … } import geometry.*; public class DemoClient { … … } มองเห็นเฉพาะภายใน package “geometry” Visibility in Package Import ทุกคลาสภายใต้ package “geometry” แต่ใช้ งานเฉพาะคลาส Point

9 Object-Oriented Programming with Java Burapha University, 2001  packages จัดเป็นเครื่องมือที่ใช้ในการแบ่ง ส่วน name space และป้องกัน preventing name collisions  คลาสใน packages ต่างกันสามารถมีชื่อ เดียวกันได้  คลาสเหล่านั้นสามารถรวมไว้ในไฟล์ เดียวกันโดยไม่ก่อให้เกิด name collision  หรือ package space; public class Point { … … } geometry.Point gPoint = new geometry.Point( … … ) space.Point sPoint = new space.Point( … … ) import geometry.Point; gPoint = new Point( … … ) space.Point sPoint = new space.Point( … … ) อ้างอิงคลาส Point ที่ถูกประกาศ ไว้ภายใต้ package geometry Preventing Name Collision คลาสชื่อเดียวกัน แต่อยู่ต่างคลาส

10 Object-Oriented Programming with Java Burapha University, 2001  source และ class จะต้องจัดไว้ใน directory ที่โครงสร้าง directory ตรงกับ โครงสร้างของ package  คลาส Foo ถูกกำหนดไว้ใน source file ที่ชื่อ Foo.java  Foo.java ถูกเก็บไว้ใน  compile  execute โปรแกรม package package1.package2; public class Foo { … … } X:\myjava\oop\package1\package2\Foo.java X:\myjava\oop\package1\package2 > javac Foo.java X:\myjava\oop> java package1.package2.Foo Directory Structure

11 Object-Oriented Programming with Java Burapha University, 2001  compiler และ interpreter จะค้นหา CLASSPATH สำหรับ class files ที่ ต้องการใช้  คลาส Foo ถูกกำหนดไว้ในไฟล์ Foo.java  Foo.class ถูกเก็บไว้ใน  กำหนด class path  execute โปรแกรม X:\anywhere > java package1.package2.Foo package package1.package2; public class Foo { … … } X:\anywhere > set CLASSPATH=.;X:\myjava\oop X:\myjava\oop\package1\package2\Foo.class CLASSPATH

12 Object-Oriented Programming with Java Burapha University, 2001  java.lang ประกอบด้วย Java classes ที่จำเป็นสำหรับการประมวลผล Java programs (import ได้โดยไม่ต้อง ประกาศ )  java.io ประกอบด้วย Java classes ที่ ใช้สำหรับการจัดการ input และ output  java.net ประกอบด้วย Java classes ที่ เกี่ยวกับ networking  java.util ประกอบด้วย Java classes สำหรับหน้าที่การทำงานทั่วไปเช่น list collections หรือ data representation  java.awt ประกอบด้วย Java classes ที่ ใช้เป็น Abstract Windowing Toolkit  java.applet ประกอบด้วย Java classes ที่ใช้ในการสร้าง applet Java API Packages

13 Object-Oriented Programming with Java Burapha University, 2001 Example :TestBanking public class TestBanking { public static void main(String[ ] args) { Banking.Bank bank; bank = new Banking.Bank( ); Banking.Customer customer; bank.addCustomer("Julia", "Roberts"); customer = bank.getCustomer(0); customer.addAccount(new BankAccount(500.00)); customer.addAccount(new BankAccount(200.00)); bank.addCustomer("David", "Beckham"); customer = bank.getCustomer(1); customer.addAccount(new BankAccount(350.00)); }

14 Object-Oriented Programming with Java Burapha University, 2001 Example : TestBanking import Banking.*; public class TestBanking { public static void main(String[ ] args) { Bank bank; bank = new Bank( ); Customer customer; bank.addCustomer("Julia", "Roberts"); customer = bank.getCustomer(0); customer.addAccount(new BankAccount(500.00)); customer.addAccount(new BankAccount(200.00)); bank.addCustomer("David", "Beckham"); customer = bank.getCustomer(1); customer.addAccount(new BankAccount(350.00)); }

15 Object-Oriented Programming with Java Burapha University, 2001 Directory Layout and Package  Source Code ถูกเก็บไว้อยู่ใน directory ที่ตั้งชื่อ ตามชื่อ package  bytecode ที่ได้ จากการ compile Source Code ถูก เก็บไว้ใน directory อื่น

16 Object-Oriented Programming with Java Burapha University, 2001 Package and Sub- Package

17 Object-Oriented Programming with Java Burapha University, 2001 Software Development & Deployment

18 Object-Oriented Programming with Java Burapha University, 2001 Case Study : คลาส Stack1 package stack1; public class Stack { private Item[ ] contents; private int top; public Stack( ) { contents = new Item[10]; top = -1; } // End default constructor public Stack(int aSize) { contents = new Item[aSize]; top = -1; } // End second constructor … … } // End Stack class ประกาศ package Item IntItem FloatItem Example : Stack Stack ถูก implement โดยใช้ array

19 Object-Oriented Programming with Java Burapha University, 2001 public Item pop( ) { if (empty( )) { System.err.println("stack underflow"); return(new intItem(0)); } else { Item x = contents[top--]; return(x); } } // End pop public void push(Item x) { if (full( )) System.err.println("stack overflow"); else { contents[++top] = x; System.out.println("Pushed "+x.getValue( )+" into Stack"); } } // End push Example : Stack

20 Object-Oriented Programming with Java Burapha University, 2001 public int size( ) { return(top+1); } // End size public boolean empty( ) { return(size( ) == 0); } // End empty public boolean full( ) { return(size( ) == contents.length); } // End full Example : Stack

21 Object-Oriented Programming with Java Burapha University, 2001 import stack1.*; public class StackDemoClient1 { public static void main(String[ ] argv) { int i, numberOfItem; numberOfItem = Integer.parseInt(argv[0]); Stack s = new Stack( ); for (i = 0; i < numberOfItem/2; i++) s.push(new IntItem(i)); for (i = numberOfItem/2; i < numberOfItem; i++) s.push(new FloatItem((float) i)); for (i = numberOfItem; i > 0; i--) System.out.println("Item popped = " + (s.pop()).getValue()); } // End main } // End StackDemoClient1 z Example : StackDemoClient กฎ ของ Subtype Return ค่า instance ของ item รับ input จาก Comma nd line argume nt

22 Object-Oriented Programming with Java Burapha University, 2001 Summary Java Packages


ดาวน์โหลด ppt Object-Oriented Programming with Java Burapha University, 2001 Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai.

งานนำเสนอที่คล้ายกัน


Ads by Google