Your SlideShare is downloading. ×
Java intro
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Java intro

960
views

Published on

นี่คือการทดสอบใช้ slide share จัดทำเพื่อการเรียนการสอน

นี่คือการทดสอบใช้ slide share จัดทำเพื่อการเรียนการสอน


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
960
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. การโปรแกรมเชิงวัตถุด้วยภาษา JAVA อ . บุรินทร์ รุจจนพันธุ์ . ปรับปรุง 18 ตุลาคม 255 1 Introduction มหาวิทยาลัยโยนก จังหวัดลำปาง ศูนย์กลางความรู้และภูมิปัญญาแผ่นดิน http://www.yonok.ac.th
  • 2. ความหมายของภาษาจาวา ภาษาจาวา ( Java Language ) คือ ภาษาโปรแกรมที่ถูกพัฒนาโดยบริษัท ซันไมโครซิสเต็มส์ เป็นภาษาสำหรับเขียนโปรแกรมที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ ( OOP = Object - Oriented Programming ) โปรแกรมที่เขียนขึ้นถ้าเป็นคลาสก็จะเป็นต้นแบบของวัตถุสามารถมีเมทธอด ( Method ) ที่ประกอบด้วยพฤติกรรม ( Behavior ) รูปพรรณ ( Identity ) และสถานะ ( State )
  • 3. อะไรต่อมิอะไรในจาวา ข้อมูลจาก http://www.thaiall.com/class/indexr.htm
  • 4. ตัวแปลภาษาจาวา บริษัท Sun Microsystems, Inc. - J2SE (Java 2 Platform, Standard Edition :Core/Desktop) - J2EE (Java 2 Platform, Enterprise Edition :Enterprise/Server) - J2ME (Java 2 Platform, Micro Edition :Mobile/Wireless) - JRE (Java Runtime Environment) - JVM (Java Virtual Machine) http://java.sun.com
  • 5. Language ภาษาคอมพิวเตอร์ (Computer Language) คือ ภาษาที่ใช้ หรือเกี่ยวข้องกับคอมพิวเตอร์ ซึ่งมักใช้ร่วมกับภาษาโปรแกรม แต่ภาษาคอมพิวเตอร์นั้นมีความหมายที่กว้างกว่า โดยไม่จำเป็นที่จะต้องเป็นภาษาโปรแกรม ซึ่งเป็นที่รู้กันว่าภาษาอย่าง HTML หรือ SQL ไม่ใช่ภาษาโปรแกรม แต่ถือว่าเป็นภาษาคอมพิวเตอร์ ภาษาโปรแกรม (Program Language) คือ วิธีการมาตรฐานในการสื่อสารสำหรับแสดงคำสั่งไปยังคอมพิวเตอร์ ภาษาโปรแกรมกำหนดไวยากรณ์และการตีความหมายจากโปรแกรมคอมพิวเตอร์ที่เขียนขึ้น ภาษาโปรแกรมทำให้โปรแกรมเมอร์สามารถระบุอย่างชัดเจนถึงข้อมูลที่คอมพิวเตอร์จะทำงาน และวิธีการที่คอมพิวเตอร์จะประมวลผลข้อมูลเหล่านั้น
  • 6. เริ่มต้นเขียนโปรแกรมทำอย่างไร
    • เลือกภาษา สำหรับนักเรียน นักศึกษานั้นง่ายที่จะเลือก เพราะอาจารย์คอยชี้แนะ
    • หาแหล่งข้อมูลอ้างอิงจากห้องสมุด ถ้าท่านไม่มีอะไรอยู่ในมือ คงนึกโครงสร้างภาษาไม่ออก
    • หาตัวแปลภาษา ทุกภาษาต้องมีตัวแปลภาษา มีหลายภาษาที่ถูกสร้างเป็น Free compiler
    • เขียนโปรแกรมตัวแรกที่ง่าย เช่น พิมพ์เลข 5 เป็นต้น
    • ศึกษาการทำซ้ำ และการเลือกตามเงื่อนไข เช่นพิมพ์สูตรคูณ หรือพิมพ์ 1 ถึง 10 เป็นต้น
    • ติดต่อแฟ้มข้อมูล เพื่ออ่านมาแสดงผล หรือปรับปรุงข้อมูลได้
    • เขียนเมนู เพื่อเลือกกระทำโปรแกรมตามตัวเลือก
    • ทำรายงานจากการเชื่อมแฟ้มหลายแฟ้ม โดยกำหนดได้หลายตัวเลือก
    • เขียนโปรแกรมเพิ่มข้อมูล เช่น ซื้อ ขาย ยืม คืน หรือโปรแกรมลงทะเบียนนักศึกษา
    • สร้างโปรแกรมขึ้นมาระบบหนึ่งให้สมบูรณ์ (สมบูรณ์คือ การสนองความต้องการของผู้ใช้)
  • 7. การเขียนโปรแกรมโครงสร้าง 1. การทำงานแบบตามลำดับ (Sequence) รูปแบบการเขียนโปรแกรมที่ง่ายที่สุดคือ เขียนให้ทำงานจากบนลงล่าง เขียนคำสั่งเป็นบรรทัด และทำทีละบรรทัดจากบรรทัดบนสุดลงไปจนถึงบรรทัดล่างสุด สมมติให้มีการทำงาน 3 กระบวนการคือ อ่านข้อมูล คำนวณ และพิมพ์ จะเขียนเป็นผังงาน (Flowchart) ในแบบตามลำดับได้ตามภาพ
  • 8. การเขียนโปรแกรมโครงสร้าง 2. การเลือกกระทำตามเงื่อนไข (Decision) การตัดสินใจ หรือเลือกเงื่อนไขคือ เขียนโปรแกรมเพื่อนำค่าไปเลือกกระทำ โดยปกติจะมีเหตุการณ์ให้ทำ 2 กระบวนการ คือเงื่อนไขเป็นจริงจะกระทำกระบวนการหนึ่ง และเป็นเท็จจะกระทำอีกกระบวนการหนึ่ง แต่ถ้าซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็นต้น ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่างง่าย เพื่อกระทำกระบวนการเพียงกระบวนการเดียว
  • 9. การเขียนโปรแกรมโครงสร้าง 3. การทำซ้ำ (Repeation or Loop) การทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม หมายถึงการทำซ้ำเป็นหลักการที่ทำความเข้าใจได้ยากกว่า 2 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน (Flowchart) ผู้เขียนโปรแกรมต้องจินตนาการ ถึงรูปแบบการทำงาน และใช้คำสั่งควบคุมด้วยตนเอง ตัวอย่างผังงานที่นำมาแสดงนี้เป็นการแสดงคำสั่งทำซ้ำ (do while) ซึ่งหมายถึงการทำซ้ำในขณะที่เป็นจริง และเลิกการทำซ้ำเมื่อเงื่อนไขเป็นเท็จ
  • 10. แนวคิดของการโปรแกรมเชิงวัตถุ (OOP Concepts) 1. การปกป้อง (Encapsulation) - การรวมกลุ่มของข้อมูล และกลุ่มของโปรแกรม เพื่อการปกป้อง และเลือกตอบสนอง 2. การสืบทอด (Inheritance) - ยอมให้นำไปใช้ หรือเขียนขึ้นมาทดแทนของเดิม 3. การพ้องรูป (Polymorphism) มาจากภาษากรีก หมายถึง Many Shapes (Overriding) - Overloading มีชื่อโปรแกรมเดียวกัน แต่รายการตัวแปร (Parameter List) ต่างกัน - Overriding มีชื่อโปรแกรม และตัวแปรเหมือนกัน เพื่อเขียน behavior ขึ้นมาใหม่
  • 11. Java 2 Platform, Standard Edition (J2SE)
    • http://java.sun.com/j2se/1.4/download.html
    • มีตัวแปรที่หลายบริษัทสร้างขึ้น แต่ตัวที่เป็นมาตรฐานคือของ sun และ java กำลังอยู่ในระหว่างการพัฒนาอย่างต่อเนื่อง ผมขอเลือก J2SE ของ sun เพราะใช้งานใน text mode นำไปใช้ใน linux ก็มีหลักการเหมือนกัน แต่ถ้าเป็นของบริษัทอื่น ส่วนใหญ่ต้องใช้ใน Windows ไม่อย่างยึดติดกับ OS จึงเลือกที่จะใช้ J2SE สอนนักศึกษา
    • แต่บริษัทต่าง ๆ พัฒนาตัวแปลเป็นระบบ IDE (Integrated development environment) ซึ่งใช้ง่ายกว่า ส่วน J2SE แม้ไม่มี IDE ในตัว แต่มีโปรแกรมหลายตัวที่นำมาใช้เป็น editor แล้วเรียก J2SE มาแปล และใช้งานได้สะดวกขึ้น เช่น kawa เป็นต้น
  • 12. รูปแบบของ Class class declaration { variable constructor method nested class or inner class } class a { int a = 0; a() { } void b () { } class c { } }
  • 13. ชื่อเรียกเกี่ยวกับ Object Object Model State Behavior Identity General, UML Value of Attribute Behavior/Action Attribute OOP Value of Variable Method Property Coding in Java Value of Attribute Method Variable/Attr.
  • 14. เขียนโปรแกรมแรก start, run, cmd cd dir cd c:j2sdk1.4.2_03bin c:j2sdk1.4.2_03bin>edit x.java class x { public static void main(String args[]){ System.out.println("hello"); } }
  • 15. แปลโปรแกรม และประมวลผล c:j2sdk1.4.2_03bin>javac x.java c:j2sdk1.4.2_03bin>java x hello c:j2sdk1.4.2_03bin>
  • 16. คำที่ขีดเส้นใต้ เปลี่ยนได้ตามต้องการ class xxx { public static void main (String args []){ System.out.println(" hello "); } } class aaa { void bbb (String[] ccc ){ System.out.println(" ddd "); System.out.println( eee (" ddd ")); } int eee (String fff ){ return (" xxx "); } }
  • 17. Java Applet //<applet code=x.class width=200 height=200></applet> //DOS>appletviewer x.java import java.awt.Graphics; public class x extends java.applet.applet { public void paint(Graphics g) { g.drawString(&quot;test&quot;,10,20); } }
  • 18. Java Application // javac y.java // java y import java.lang.*; import java.awt.*; import java.awt.event.*; public class y implements ActionListener{ Frame fs = new Frame(&quot;header&quot;); Button bexit = new Button(&quot;exit&quot;); public static void main(String args[]) { y s = new y(); s.init(); } public void init() { fs.setSize(200,100); fs.setLayout(null); bexit.setBounds(10,50,50,20); fs.add(bexit); bexit.addActionListener(this); fs.show(); } public void actionPerformed(ActionEvent a) { System.exit(0); } }
  • 19. Certified Topics Product ID CX-310-035 Price $200.00 The Sun Certified Programmer for Java 2 Platform 1.4 certification exam is for programmers experienced in using the basic syntax and structure of the Java programming language. Certification is available for the Java 2 Platform. http://www.sun.com/training/catalog/courses/CX-310-035.xml
  • 20. Certified Topics Topics 1. Declaration .. 2. Flow Control 3. Garbage Collection 4. Language Fundamentals 5. Operators & Assignments 6. Overloading, Overriding 7. Threads 8. java.lang... 9. Collections Framework
  • 21. Certified Topics
    • Section 1: Declarations and Access Control
    • Write code that declares, constructs and initializes arrays of any base type using any of the permitted forms both for declaration and for initialization.
    • Declare classes, nested classes, methods, instance variables, static variables and automatic (method local) variables making appropriate use of all permitted modifiers (such as public, final, static, abstract, etc.). State the significance of each of these modifiers both singly and in combination and state the effect of package relationships on declared items qualified by these modifiers.
    • For a given class, determine if a default constructor will be created and if so state the prototype of that constructor.
    • Identify legal return types for any method given the declarations of all related methods in this or parent classes.
  • 22. Certified Topics
    • Section 2: Flow control, Assertions, and Exception Handling
    • Write code using if and switch statements and identify legal argument types for these statements.
    • Write code using all forms of loops including labeled and unlabeled, use of break and continue, and state the values taken by loop counter variables during and after loop execution.
    • Write code that makes proper use of exceptions and exception handling clauses (try, catch, finally) and declares methods and overriding methods that throw exceptions.
    • Recognize the effect of an exception arising at a specified point in a code fragment. Note: The exception may be a runtime exception, a checked exception, or an error (the code may include try, catch, or finally clauses in any legitimate combination).
    • Write code that makes proper use of assertions, and distinguish appropriate from inappropriate uses of assertions.
    • Identify correct statements about the assertion mechanism.
  • 23. Certified Topics
    • Section 3: Garbage Collection
    • State the behavior that is guaranteed by the garbage collection system.
    • Write code that explicitly makes objects eligible for garbage collection.
    • Recognize the point in a piece of source code at which an object becomes eligible for garbage collection.
  • 24. Certified Topics
    • Section 4: Language Fundamentals
    • Identify correctly constructed package declarations, import statements, class declarations (of all forms including inner classes) interface declarations, method declarations (including the main method that is used to start execution of a class), variable declarations, and identifiers.
    • Identify classes that correctly implement an interface where that interface is either java.lang.Runnable or a fully specified interface in the question.
    • State the correspondence between index values in the argument array passed to a main method and command line arguments.
    • Identify all Java programming language keywords. Note: There will not be any questions regarding esoteric distinctions between keywords and manifest constants.
    • State the effect of using a variable or array element of any kind when no explicit assignment has been made to it.
    • State the range of all primitive formats, data types and declare literal values for String and all primitive types using all permitted formats bases and representations.
  • 25. Certified Topics
    • Section 5: Operators and Assignments
    • Determine the result of applying any operator (including assignment operators and instance of) to operands of any type class scope or accessibility or any combination of these.
    • Determine the result of applying the boolean equals (Object) method to objects of any combination of the classes java.lang.String, java.lang.Boolean and java.lang.Object.
    • In an expression involving the operators &, |, &&, || and variables of known values state which operands are evaluated and the value of the expression.
    • Determine the effect upon objects and primitive values of passing variables into methods and performing assignments or other modifying operations in that method.
  • 26. Certified Topics
    • Section 6: Overloading, Overriding, Runtime Type and Object Orientation
    • State the benefits of encapsulation in object oriented design and write code that implements tightly encapsulated classes and the relationships &quot;is a&quot; and &quot;has a&quot;.
    • Write code to invoke overridden or overloaded methods and parental or overloaded constructors; and describe the effect of invoking these methods.
    • Write code to construct instances of any concrete class including normal top level classes and nested classes.
  • 27. Certified Topics
    • Section 7: Threads
    • Write code to define, instantiate and start new threads using both java.lang.Thread and java.lang.Runnable.
    • Recognize conditions that might prevent a thread from executing.
    • Write code using synchronized wait, notify and notifyAll to protect against concurrent access problems and to communicate between threads.
    • Define the interaction among threads and object locks when executing synchronized wait, notify or notifyAll.
  • 28. Certified Topics
    • Section 8: Fundamental Classes in the java.lang Package
    • Write code using the following methods of the java.lang.Math class: abs, ceil, floor, max, min, random, round, sin, cos, tan, sqrt.
    • Describe the significance of the immutability of String objects.
    • Describe the significance of wrapper classes, including making appropriate selections in the wrapper classes to suit specified behavior requirements, stating the result of executing a fragment of code that includes an instance of one of the wrapper classes, and writing code using the following methods of the wrapper classes (e.g., Integer, Double, etc.): doubleValue o floatValue o intValue o longValue o parseXxx o getXxx o toString o toHexString
  • 29. Certified Topics
    • Section 9: The Collections Framework
    • Make appropriate selection of collection classes/interfaces to suit specified behavior requirements.
    • Distinguish between correct and incorrect implementations of hashcode methods.