java intro by 4IZ6a2

VIEWS: 45 PAGES: 29

									                    ้
การโปรแกรมเชิงวัตถุดวยภาษา JAVA

                                             Introduction




     มหาวิทยาลัยโยนก จังหวัดลาปาง
                                                      อ.บุรินทร์ รุ จจนพันธุ์ .
      ศูนย์กลางความรู ้และภูมิปัญญาแผ่นดิน
http://www.yonok.ac.th                          ปรับปรุ ง 3 มิถุนายน 2550
http://www.thaiall.com/class
                    อะไรต่อมิอะไรในจาวา




            ข้อมูลจาก http://www.thaiall.com/class/indexr.htm
http://www.thaiall.com/class
                         ตัวแปลภาษาจาวา
                                   http://java.sun.com
บริษัท 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://www.thaiall.com/class
                               ความหมาย
      ภาษาจาวา (Java Language) คือ
                                       ั
ภาษาคอมพิวเตอร์ที่ถูกพัฒนาขึ้นโดยบริ ษท ซันไมโค
รซิสเต็มส์ เป็ นภาษาสาหรับเขียนโปรแกรม ที่สนับสนุน
การเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented
Programming) โปรแกรมที่เขียนขึ้นถูกสร้างภายใน
คลาส ดังนั้น คลาส คือที่เก็บเมทอด (Method) หรื อ
พฤติกรรม (Behavior) ซึ่งมีสถานะ (State) และ
รู ปพรรณ (Identity) ประจาพฤติกรรม (Behavior)
http://www.thaiall.com/class
                               Language
         ภาษาคอมพิวเตอร์ (Computer Language) คือ ภาษาที่ใช้
หรื อเกี่ยวข้องกับคอมพิวเตอร์ ซึ่ งมักใช้ร่วมกับภาษาโปรแกรม แต่
                    ั
ภาษาคอมพิวเตอร์น้ นมีความหมายที่กว้างกว่า โดยไม่จาเป็ นที่
                                         ั
จะต้องเป็ นภาษาโปรแกรม ซึ่ งเป็ นที่รู้กนว่าภาษาอย่าง HTML หรื อ
SQL ไม่ใช่ภาษาโปรแกรม แต่ถือว่าเป็ นภาษาคอมพิวเตอร์
         ภาษาโปรแกรม (Program Language) คือ วิธีการ
มาตรฐานในการสื่ อสารสาหรับแสดงคาสังไปยังคอมพิวเตอร์ ภาษา
                                            ่
โปรแกรมกาหนดไวยากรณ์และการตีความหมายจากโปรแกรม
คอมพิวเตอร์ที่เขียนขึ้น ภาษาโปรแกรมทาให้โปรแกรมเมอร์
สามารถระบุอย่างชัดเจนถึงข้อมูลที่คอมพิวเตอร์จะทางาน และ
วิธีการที่คอมพิวเตอร์จะประมวลผลข้อมูลเหล่านั้น
http://www.thaiall.com/class
           เริ่มต้ นเขียนโปรแกรมทาอย่ างไร
•เลือกภาษา สาหรับนักเรี ยน นักศึกษานั้นง่ายที่จะเลือก เพราะอาจารย์คอยชี้แนะ
                                                        ่
•หาแหล่งข้อมูลอ้างอิงจากห้องสมุด ถ้าท่านไม่มีอะไรอยูในมือ คงนึ กโครงสร้างภาษาไม่ออก
                                  ั                        ู
•หาตัวแปลภาษา ทุกภาษาต้องมีตวแปลภาษา มีหลายภาษาที่ถกสร้างเป็ น Free compiler
•เขียนโปรแกรมตัวแรกที่ง่าย เช่น พิมพ์เลข 5 เป็ นต้น
•ศึกษาการทาซ้ า และการเลือกตามเงื่อนไข เช่นพิมพ์สูตรคูณ หรื อพิมพ์ 1 ถึง 10 เป็ นต้น
•ติดต่อแฟ้ มข้อมูล เพื่ออ่านมาแสดงผล หรื อปรับปรุ งข้อมูลได้
•เขียนเมนู เพื่อเลือกกระทาโปรแกรมตามตัวเลือก
•ทารายงานจากการเชื่อมแฟ้ มหลายแฟ้ ม โดยกาหนดได้หลายตัวเลือก
•เขียนโปรแกรมเพิ่มข้อมูล เช่น ซื้ อ ขาย ยืม คืน หรื อโปรแกรมลงทะเบียนนักศึกษา
•สร้างโปรแกรมขึ้นมาระบบหนึ่ งให้สมบูรณ์ (สมบูรณ์คือ การสนองความต้องการของผูใช้) ้

http://www.thaiall.com/class
              การเขียนโปรแกรมโครงสร้าง
 1. การทางานแบบตามลาดับ (Sequence)
    รู ปแบบการเขียนโปรแกรมที่ง่ายที่สุดคือ เขียนให้
ทางานจากบนลงล่าง เขียนคาสังเป็ นบรรทัด และทาที
                           ่
ละบรรทัดจากบรรทัดบนสุ ดลงไปจนถึงบรรทัดล่างสุ ด
สมมติให้มีการทางาน 3 กระบวนการคือ อ่านข้อมูล
คานวณ และพิมพ์ จะเขียนเป็ นผังงาน(Flowchart) ใน
แบบตามลาดับได้ตามภาพ
http://www.thaiall.com/class
              การเขียนโปรแกรมโครงสร้าง
 2. การเลือกกระทาตามเงื่อนไข (Decision)
       การตัดสิ นใจ หรื อเลือกเงื่อนไขคือ เขียนโปรแกรมเพื่อ
นาค่าไปเลือกกระทา โดยปกติจะมีเหตุการณ์ให้ทา 2
กระบวนการ คือเงื่อนไขเป็ นจริ งจะกระทากระบวนการหนึ่ง
                                                ้
และเป็ นเท็จจะกระทาอีกกระบวนการหนึ่ง แต่ถาซับซ้อนมาก
ขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็ น
ต้น ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่างง่าย เพือ่
กระทากระบวนการเพียงกระบวนการเดียว
http://www.thaiall.com/class
              การเขียนโปรแกรมโครงสร้าง
 3. การทาซ้า (Repeation or Loop)
      การทากระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการ
ควบคุม หมายถึงการทาซ้ าเป็ นหลักการที่ทาความเข้าใจได้ยากกว่า
2 รู ปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดง
ภาพอย่างชัดเจนเหมือนการเขียนผังงาน(Flowchart) ผูเ้ ขียน
โปรแกรมต้องจินตนาการ ถึงรู ปแบบการทางาน และใช้คาสัง         ่
ควบคุมด้วยตนเอง ตัวอย่างผังงานที่นามาแสดงนี้เป็ นการแสดง
คาสังทาซ้ า(do while) ซึ่ งหมายถึงการทาซ้ าในขณะที่เป็ นจริ ง และ
    ่
เลิกการทาซ้ าเมื่อเงื่อนไขเป็ นเท็จ
http://www.thaiall.com/class
      แนวคิดของการโปรแกรมเชิงวัตถุ (OOP Concepts)
1. การปกปอง (Encapsulation)
         ้
                                              ่
- การรวมกลุ่มของข้ อมูล และกลุ่มของโปรแกรม เพือการปกป้ อง และเลือกตอบสนอง
2. การสื บทอด (Inheritance)
                            ้
- ยอมให้ นาไปใช้ หรือเขียนขึนมาทดแทนของเดิม
3. การพ้องรูป (Polymorphism)
มาจากภาษากรีก หมายถึง Many Shapes (Overriding)
- Overloading มีชื่อโปรแกรมเดียวกัน แต่ รายการตัวแปร (Parameter List) ต่ างกัน
                                                 ่                 ้
- Overriding มีชื่อโปรแกรม และตัวแปรเหมือนกัน เพือเขียน behavior ขึนมาใหม่
http://www.thaiall.com/class
 Java 2 Platform, Standard Edition (J2SE)
http://java.sun.com/j2se/1.4/download.html
           ั               ั               ั
        มีตวแปรที่หลายบริ ษทสร้างขึ้น แต่ตวที่เป็ นมาตรฐานคือ
                               ่
ของ sun และ java กาลังอยูในระหว่างการพัฒนาอย่างต่อเนื่อง
ผมขอเลือก J2SE ของ sun เพราะใช้งานใน text mode
                                               ้
นาไปใช้ใน linux ก็มีหลักการเหมือนกัน แต่ถาเป็ นของบริ ษท    ั
                   ้
อื่น ส่ วนใหญ่ตองใช้ใน Windows ไม่อย่างยึดติดกับ OS จึง
เลือกที่จะใช้          J2S           E            สอนนักศึกษา
                ั
        แต่บริ ษทต่าง ๆ พัฒนาตัวแปลเป็ นระบบ I D E
(Integrated development environment) ซึ่ งใช้ง่ายกว่า ส่ วน
J2SE แม้ไม่มี IDE ในตัว แต่มีโปรแกรมหลายตัวที่นามาใช้
เป็ น editor แล้วเรี ยก J2SE มาแปล และใช้งานได้สะดวก
http://www.thaiall.com/class
                         รู ปแบบของ Class
  class declaration {
     variable
     constructor
     method
     nested class or inner class
  }
  class a {
     int a = 0;
     a() { }
     void b () {   }
     class c { }
  }
http://www.thaiall.com/class
                  ชื่อเรี ยก ที่เกี่ยวกับ 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.



http://www.thaiall.com/class
                       เขียนโปรแกรมแรก
  start, run, cmd
  cd\
  dir
  cd c:\j2sdk1.4.2_03\bin
  c:\j2sdk1.4.2_03\bin>edit x.java

  class x {
      public static void main(String args[]){
        System.out.println("hello");
    }
  }




http://www.thaiall.com/class
            แปลโปรแกรม และประมวลผล
  c:\j2sdk1.4.2_03\bin>javac x.java
  c:\j2sdk1.4.2_03\bin>java x
  hello

  c:\j2sdk1.4.2_03\bin>




http://www.thaiall.com/class
       คาที่ขีดเส้นใต้ เปลี่ยนได้ตามต้องการ
  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");
    }
  }
http://www.thaiall.com/class
                               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("test",10,20);
      }
  }

http://www.thaiall.com/class
                          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("header");
   Button bexit = new Button("exit");
   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);
   }
   }

http://www.thaiall.com/class
                          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

http://www.thaiall.com/class
                          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
http://www.thaiall.com/class
                          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.

http://www.thaiall.com/class
                          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.
http://www.thaiall.com/class
                          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.




http://www.thaiall.com/class
                          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.
http://www.thaiall.com/class
                          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.

http://www.thaiall.com/class
                          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 "is a" and "has a".
•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.
http://www.thaiall.com/class
                          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.
http://www.thaiall.com/class
                          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

http://www.thaiall.com/class
                          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.




http://www.thaiall.com/class

								
To top