SlideShare a Scribd company logo
1 of 38
Download to read offline
976-140 Object-Oriented Programming
344-202 Introduction to Object-Oriented Programming

             การโปรแกรมเชิงวัตถุ

    3. Arithmetic Expression, String class,
          Wrapper class, Math Class


                       Faculty of Technology and Environment
                  Prince of Songkla University, Phuket Campus
                                                      2/2551
Contents
  Java operators
  String Class
  Wrapper Class
  Sending argument to a program
  Math Class
  Formating Number




Object-Oriented Programming 2/2551   2
Arithmetic Expressions
  Arithmetic expression คือ นิพจน์ที่เกี่ยวกับการดาเนินการทาง
   คณิตศาสตร์
  Arithmetic expression ประกอบด้วย arithmetic operator และ operand
  arithmetic operator คือ ตัวดาเนินการทางคณิตศาสตร์ เช่น +, -, *, /
  Operand คือ ตัวถูกดาเนินการ อาจเป็น ค่าคงที่ ตัวแปร นิพจน์ทาง
   คณิตศาสตร์อื่น ๆ หรือเมธอดที่มีการคืนค่ากลับ
            a+b*4                   Operator : +, *   Operand : a, b, 4
            a + (b*c)               Operator : +      Operand : a, b*c


Object-Oriented Programming 2/2551                                         3
Java operators




                                     น้อย Precedence มาก
Object-Oriented Programming 2/2551                         4
Implicit Type Conversion
  ถ้า operand ที่มีชนิดข้อมูลเดียวกัน ผลลัพธ์ที่ได้ก็จะได้ชนิดข้อมูลนั้น
  ถ้า operand ต่างชนิดข้อมูลกัน จะมีการแปลงให้ operand มีชนิดเดียวกัน
   ก่อนดาเนินการ
         double > float > long > int > short > byte
          Operation                           result
           23 / 5                            4
           23 + 5.0                          28.0
           23 / 5.0                          4.6
           25.0 / 25.0                       1.0
           23 % 5                            3
           23 % 25                           23
Object-Oriented Programming 2/2551                                    5
How java compute these expression?
    การคานวณค่าทางคณิตศาสตร์ จะเริ่มจาก operator ที่มีลาดับ
     ความสาคัญสูงสุดไปต่าสุด ถ้าความสาคัญเท่ากันจะทาจากซ้ายไปขวา
         -3 * 7 + (20 / 2 – 6 ) / 2



         2 * (17 % 3 / 2 + 26 ) * 2 + 4




Object-Oriented Programming 2/2551                             6
Increment & Decrement
  ++ และ -– สามารถอยู่หน้าและหลังตัวแปรก็ได้
  ในคาสั่งที่มีตวแปรตัวเดียว ถือว่าเหมือนกัน
                 ั
           x++; หรือ ++x; หมายถึง x = x + 1;
           y--; หรือ --y; หมายถึง y = y - 1;
    หากมีการดาเนินการอื่นด้วย ตาแหน่งของเครื่องหมายจะมีผลต่างกัน
       Prefix คือ เครื่องหมายอยู่หน้าตัวแปร
         • หมายถึง เพิ่มหรือลดค่าตัวแปรก่อนแล้วนาไปดาเนินการ
       Postfix คือ เครื่องหมายอยู่หลังตัวแปร

         • หมายถึง ดาเนินการเสร็จแล้วค่อยเพิ่มหรือลดค่าตัวแปรนั้น

Object-Oriented Programming 2/2551                                  7
Assignment Operator
      +=              x += y;        x = x + y;
      -=              x -= y;        x = x - y;
      *=              x *= y;        x = x * y;
      /=              x /= y;        x = x / y;
      %=              x %= y;        x = x % y;




Object-Oriented Programming 2/2551                8
Shift Operators
  left-shift operator (<<)             ตรึง signed bit
    -4 << 1: 1 1 1 1 1 1 0 0             1 1 1 1 1 0 0 0 (= -8)
  Right-shift (>>) – signed            แทนที่ signed bit เดิม
    -4 >> 1: 1 1 1 1 1 1 0 0              1 1 1 1 1 1 1 0 (= -2)
     4 >> 1: 0 0 0 0 0 1 0 0              0 0 0 0 0 0 1 0 (= 2)
  Right-shift (>>>) - unsigned
   -4 >>> 1: 1 1 1 1 1 1 0 0               0 1 1 1 1 1 1 0 (X)
   4 >>> 1: 0 0 0 0 0 1 0 0                0 0 0 0 0 0 1 0 (= 2)
                                     แทนที่ signed bit ด้วย 0

Object-Oriented Programming 2/2551                                 9
Shift Operators




Object-Oriented Programming 2/2551   10
Ternary Operators
  เป็น operator ที่ประกอบด้วย 3 operands
  Short-cut สาหรับ if/else
  รูปแบบ               (boolean expression) ? X : Y;
  เช่น


    มีความหมายเหมือนกับ




Object-Oriented Programming 2/2551                      11
Try this!




Object-Oriented Programming 2/2551   12
Boolean operator
    คือ operator ที่ใช้คานวณทางตรรกศาสตร์ของค่าคงที่ ตัวแปร นิพจน์ทาง
     คณิตศาสตร์ที่อยู่ติดกับ operator ทั้งสองข้าง
           &          AND ให้ค่า false ถ้าตัวใดตัวหนึ่งเป็น false
           |          OR         ให้ค่า true ถ้าตัวใดตัวหนึ่งเป็น true
           ^          XOR ให้ค่า true ถ้า operand ทั้งสองข้างมีค่าความจริงไม่ตรงกัน
           !          NOT เปลี่ยนค่าความจริงเป็นตรงข้าม
           &&         Short-circuit AND เหมือน & แต่ถ้า operator ตัวแรกเป็น false จะ
                      ให้ค่า false และหยุดตรวจสอบ
           ||         Short-circuit OR เหมือน | แต่ถ้า operator ตัวแรกเป็น true จะให้
                      ค่า true และหยุดตรวจสอบ
Object-Oriented Programming 2/2551                                                13
Boolean operator




Object-Oriented Programming 2/2551   14
Reference Data Type - ชนิดข้อมูลแบบอ้างอิง
  ชนิดข้อมูลในจาวามี 2 แบบคือ
     Primitive data type – byte, short, int, long ,char, boolean, double,
      float
     Reference data type – String, array, class อื่น ๆ

  2 แบบนี้มีวิธการเก็บข้อมูลในหน่วยความจาต่างกัน เช่น
                ี




    Reference คือ address ในหน่วยความจา
Object-Oriented Programming 2/2551                                     15
String Class
  String เป็นคลาสหนึ่งใน Java API ใช้เป็นชนิดข้อมูลได้
  Literal ของตัวแปรที่มีชนิดข้อมูลแบบ String คือ ข้อความที่อยู่ใน
   เครื่องหมายคาพูด “…..”
  การกาหนดค่าให้ตัวแปร String ทาได้ 2 แบบ
         String s = “Thana”;
         String s = new String(“Thana”);


    new เป็น keyword ในจาวาสาหรับประกาศตัวแปรที่เป็น reference data
     type
Object-Oriented Programming 2/2551                                   16
String Class
  การใช้คาสั่ง new จะมีการสร้าง String ใหม่และจองพื้นทีในหน่วยความจา
                                                        ่
   เสมอ
  ถ้าไม่ใช้คาสั่ง new จะตรวจสอบจาก pool หากมีข้อความเดิมก็จะกาหนด
   reference ให้ชี้ไปทีข้อความนั้น
                       ่




Object-Oriented Programming 2/2551                                17
String Class
    การกาหนดค่าใหม่ให้ String เป็นการจองพื้นที่ให้ข้อความใหม่ และ
     กาหนด reference ไปยังข้อความใหม่




Object-Oriented Programming 2/2551                                   18
String Class
  ในจาวานั้น ชนิดข้อมูลที่เป็น primitive data type จะถูกแปลงเป็น String
   อัตโนมัติเมื่อทาการต่อกับ String อื่น
  ถ้าโปรแกรมเป็นดังนี้
                 int x = 10;
                 System.out.println(“x = ” + x);
  + เป็น operator สาหรับการต่อสตริงเข้าด้วยกัน
  ตัวแปร x จะถูกแปลงจากตัวเลขเป็นข้อความคือ “10”
  ดังนั้นจึงได้ผลลัพธ์เป็นข้อความว่า “x = 10” ส่งให้แก่คาสั่ง println()


Object-Oriented Programming 2/2551                                   19
String Class
    String ที่เป็นตัวเลขไม่สามารถนามาใช้ในการคานวณได้



  การนาตัวเลขต่อกับ String จะได้ผลลัพธ์เป็น String เท่านั้น
  การแปลงจาก primitive data type เป็น String อาจใช้เมธอด
   String.valueOf(x)




Object-Oriented Programming 2/2551                             20
Sending argument to our program
  argument คือ ค่าที่เราต้องการส่งเป็น input ให้แก่โปรแกรม เพื่อนาไปใช้
   งานในโปรแกรม
  การส่ง argument จะส่งผ่าน method โดยระบุชื่อและชนิดของ argument
   ไว้ภายในวงเล็บ (………………) หลังชื่อ method
  การเขียนเมธอดให้สามารถรับ argument ได้ โดยระบุ argument ภายใน
   วงเล็บหลังชื่อเมธอดในรูปแบบ
                 method_name(data_type argument_name) {}



Object-Oriented Programming 2/2551                                   21
Sending argument to our program


  String คือชนิดข้อมูลที่เป็นข้อความ
  String[] เป็นการบอกว่า argument นี้เป็นลาดับของ String ที่เรียงต่อกัน
   เรียกว่า array โดยอ้างถึง argument ได้ดวย ชื่อตัวแปร[ลาดับ]
                                             ้
  args คือ ชื่อตัวแปร ซึ่งเป็นชื่อ argument        args[0] “hello”
  ลาดับ เริ่มจาก 0,1,2,....                        Args[1] “happy”
  ตัวอย่าง รันโปรแกรมด้วยคาสั่ง                    Args[2] “50”
         Java MyProgram hello happy 50 PSU         Args[3]    “PSU”
Object-Oriented Programming 2/2551                                     22
Sending argument to our program Greeting
    แก้ไขให้โปรแกรมแสดงข้อความทักทายโดยระบุชื่อผู้ที่พิมพ์ข้อความด้วย
     สามารถเขียนโปรแกรมใหม่ได้ดังนี้




Object-Oriented Programming 2/2551                                  23
Run program with argument
  method main รับ argument เป็นลาดับของ String ชื่อ
   argument คือ args
  เริ่มต้นลาดับที่ 0 เช่น argument ตัวแรกคือ args[0] , args[1], args[2],….
  เราสามารถเอาค่าที่ส่งมาใช้อางถึงในเมธอด main ได้
                               ้
  การคอมไพล์โปรแกรม ด้วยคาสั่ง javac Greeting.java
  การรันโปรแกรมจาวาใน command prompt นั้น โดยระบุ argument
   ต่อท้ายชื่อคลาส ด้วยคาสั่ง
                     รันโปรแกรม ชื่อโปรแกรม argumentตัวแรก (args[0])


Object-Oriented Programming 2/2551                                       24
Error about argument
    What happen when I try to run this program with this command?
                             java Greeting      index ที่เกิด error

              Exception in thread "main"
              java.lang.ArrayIndexOutOfBoundsException: 0 at
              Greeting.main(Greeting.java:8)


 หากในโปรแกรมมีการเรียกใช้ argument แต่ไม่ทาการส่งค่าในขณะรัน
   โปรแกรม จะเกิดข้อผิดพลาด

Object-Oriented Programming 2/2551                                    25
Try this!
    How to run this program without error and show this result ?




Object-Oriented Programming 2/2551                                  26
Run Java with argument by EditPlus




Object-Oriented Programming 2/2551     27
Get input from console with java.util.Scanner
     การรับข้อมูลจากผู้ใช้ผ่านคีย์บอร์ดทาได้ดังนี้
       เพิ่มคาสั่ง import java.util.Scanner;   ไว้บรรทัดบนสุดของโปรแกรม
       ภายในเมธอด ให้ทาการเพิ่มคาสั่ง

                   Scanner sc = new Scanner(System.in);
       ให้เรียกใช้เมธอดการรับค่าตรงกับชนิดข้อมูลที่ต้องการรับ
       ตัวอย่าง การรับค่าเลขจานวนเต็มจากคีย์บอร์ด เก็บในตัวแปร i

          int i = sc.nextInt();



Object-Oriented Programming 2/2551                                         28
Get input from console with java.util.Scanner




Object-Oriented Programming 2/2551                29
Method in java.util.Scanner
  int nextInt()
  double nextDouble()
  boolean nextBoolean()
  byte nextByte()
  float nextFloat()
  short nextShort()
  long nextLong()
  String next()         //a word
  String nextLine()     //a line

Object-Oriented Programming 2/2551   30
Wrapper Class
  แปลง String เป็น primitive data type ที่เป็นตัวเลข จะต้องใช้ Wrapper
   class ซึ่งเป็นคลาสใน library มาตรฐานของจาวา
  การใช้ Wrapper Class จะใช้คู่กับ Primitive Type แต่ละชนิด
      Primitive       Wrapper        Primitive Wrapper
       float         Float             short Short
       double        Double            int    Integer
       byte          Byte              long Long
  รูปแบบ WrapperClass.Method(String)
  ตัวอย่าง แปลง String “5” ให้เป็น int
           int num = Integer.parseInt(“5”);
Object-Oriented Programming 2/2551                                   31
Wrapper Class
    แปลงจาก String เป็น integer
       String input = “5” ;

           int i = Integer.parseInt(input); ได้ i ที่เป็น int = 5
      // คลาส Integer มีเมธอด parseInt ทาหน้าที่แปลง String เป็นชนิดข้อมูลแบบ int
  แปลงจาก String เป็น double
          String input = 8.43 ;
           double f = Double.parseDouble(input); ได้ f ที่เป็น double = 8.43
      // คลาส Double มีเมธอด parseDouble ทาหน้าที่แปลง string เป็นชนิดข้อมูล
        แบบ double

Object-Oriented Programming 2/2551                                             32
Using the Math Class
    คลาส Math เป็นคลาสใน package java.lang ซึ่งเป็นไลบรารี่มาตรฐานของจาวาที่เรา
     สามารถเรียกใช้ได้ในโปรแกรม
    การใช้งานเมธอดให้อ้างถึงโดยใช้ ชื่อคลาส.เมธอด() เพราะเป็น static method
    static double abs (double)
       Returns the absolute value of the argument
    static float abs (float)
       Returns the absolute value of the argument
    static int abs (int)
       Returns the absolute value of the argument
    static long abs (long)
       Returns the absolute value of the argument

Object-Oriented Programming 2/2551                                          33
Using the Math Class
    static double exp (double)
       Returns e raised to the power of the argument
    static double log (double)
       Returns the natural logarithm of the argument
    static double pow (double base, double exp)
       Returns the base raised to the exp power
    static double random ()
       Returns a pseudorandom number in the range [0, 1)
    static double sqrt (double)
       Returns the square root of the argument




Object-Oriented Programming 2/2551                          34
Using the Math Class
   Constants of the Math class
     PI        3.141592653589793              ( constant Pi (π) )
     E         2.718281828459045              ( natural logarithms )


public class CircleAreaApp {
   public static void main(String[] args) {
   int r = 5;
   double area = Math.PI * (r * r);
        System.out.println("The area is " + area);
     }
}Object-Oriented Programming 2/2551                                     35
Mathematical Functions
    Try this!




Object-Oriented Programming 2/2551   36
Rounding functions
    Try this!




Object-Oriented Programming 2/2551   37
Formating Number




Object-Oriented Programming 2/2551   38

More Related Content

What's hot

Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Wongyos Keardsri
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นFinian Nian
 
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingJava-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingWongyos Keardsri
 
Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptIMC Institute
 
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1Little Tukta Lita
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาThanachart Numnonda
 
Java Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมJava Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมThanachart Numnonda
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Thanachart Numnonda
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นThanachart Numnonda
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File OperationsWongyos Keardsri
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Thanachart Numnonda
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นPp'dan Phuengkun
 
คลาสและการเขียนโปรแกรมเชิงวัตถุ
คลาสและการเขียนโปรแกรมเชิงวัตถุคลาสและการเขียนโปรแกรมเชิงวัตถุ
คลาสและการเขียนโปรแกรมเชิงวัตถุBoOm mm
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : ThreadIMC Institute
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Thanachart Numnonda
 

What's hot (20)

Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingJava-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java Programming
 
Java-Answer Chapter 12-13
Java-Answer Chapter 12-13Java-Answer Chapter 12-13
Java-Answer Chapter 12-13
 
Java-Answer Chapter 05-06
Java-Answer Chapter 05-06Java-Answer Chapter 05-06
Java-Answer Chapter 05-06
 
Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented Concept
 
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
 
Java Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมJava Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุม
 
Java intro
Java introJava intro
Java intro
 
บทที่ 8 Methods
บทที่ 8 Methodsบทที่ 8 Methods
บทที่ 8 Methods
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
 
METHODS
METHODSMETHODS
METHODS
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่น
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File Operations
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
คลาสและการเขียนโปรแกรมเชิงวัตถุ
คลาสและการเขียนโปรแกรมเชิงวัตถุคลาสและการเขียนโปรแกรมเชิงวัตถุ
คลาสและการเขียนโปรแกรมเชิงวัตถุ
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : Thread
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์
 

Similar to 3.Expression

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นFinian Nian
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1Little Tukta Lita
 
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีNattapon
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1prapassonmook
 
การสร้างแบบสอบถาม
 การสร้างแบบสอบถาม การสร้างแบบสอบถาม
การสร้างแบบสอบถามkruthanyaporn
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาT'tle Tanwarat
 
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6Ploy StopDark
 
การเขียนโปรแกรมเพื่องานอาชีพ 6.
การเขียนโปรแกรมเพื่องานอาชีพ 6.การเขียนโปรแกรมเพื่องานอาชีพ 6.
การเขียนโปรแกรมเพื่องานอาชีพ 6.Ploy StopDark
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานPrapatsorn Keawnoun
 
4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซีmansuang1978
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Mook Prapasson
 

Similar to 3.Expression (20)

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
 
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
 
Presenter1234567
Presenter1234567Presenter1234567
Presenter1234567
 
C lab5 2
C lab5 2C lab5 2
C lab5 2
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
การสร้างแบบสอบถาม
 การสร้างแบบสอบถาม การสร้างแบบสอบถาม
การสร้างแบบสอบถาม
 
งานทำBlog บทที่ 10
งานทำBlog บทที่ 10งานทำBlog บทที่ 10
งานทำBlog บทที่ 10
 
Chapter 02 Flowchart
Chapter 02 FlowchartChapter 02 Flowchart
Chapter 02 Flowchart
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
 
การเขียนโปรแกรมเพื่องานอาชีพ 6.
การเขียนโปรแกรมเพื่องานอาชีพ 6.การเขียนโปรแกรมเพื่องานอาชีพ 6.
การเขียนโปรแกรมเพื่องานอาชีพ 6.
 
ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
 
Chapter3
Chapter3Chapter3
Chapter3
 
66
6666
66
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
 
4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
งานทำBlog บทที่ 4
งานทำBlog บทที่ 4งานทำBlog บทที่ 4
งานทำBlog บทที่ 4
 
Presenter
PresenterPresenter
Presenter
 

More from UsableLabs

Vocabulary for portal
Vocabulary for portalVocabulary for portal
Vocabulary for portalUsableLabs
 
การจัดการความรู้
การจัดการความรู้การจัดการความรู้
การจัดการความรู้UsableLabs
 
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภคการส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภคUsableLabs
 
อาหารและโภชนาการ เรื่อง สารกันบูด
อาหารและโภชนาการ เรื่อง สารกันบูดอาหารและโภชนาการ เรื่อง สารกันบูด
อาหารและโภชนาการ เรื่อง สารกันบูดUsableLabs
 
ส่งยิ้ม ส่งรัก รับปีใหม่
ส่งยิ้ม ส่งรัก รับปีใหม่ส่งยิ้ม ส่งรัก รับปีใหม่
ส่งยิ้ม ส่งรัก รับปีใหม่UsableLabs
 
30 web (blog2book)
30 web (blog2book)30 web (blog2book)
30 web (blog2book)UsableLabs
 
ภาพสวยๆ จากคนรักมวลเมฆ
ภาพสวยๆ จากคนรักมวลเมฆภาพสวยๆ จากคนรักมวลเมฆ
ภาพสวยๆ จากคนรักมวลเมฆUsableLabs
 
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำUsableLabs
 
สร้างเว็บไซต์โดยใช้หลัก Usability
สร้างเว็บไซต์โดยใช้หลัก Usability สร้างเว็บไซต์โดยใช้หลัก Usability
สร้างเว็บไซต์โดยใช้หลัก Usability UsableLabs
 
แนะนำวิธีการจดทะเบียนโดเมน
แนะนำวิธีการจดทะเบียนโดเมนแนะนำวิธีการจดทะเบียนโดเมน
แนะนำวิธีการจดทะเบียนโดเมนUsableLabs
 
correct_Portal manual
correct_Portal manual correct_Portal manual
correct_Portal manual UsableLabs
 
เทคโนโลยีและนวัตกรรมการศึกษา
เทคโนโลยีและนวัตกรรมการศึกษาเทคโนโลยีและนวัตกรรมการศึกษา
เทคโนโลยีและนวัตกรรมการศึกษาUsableLabs
 
Portal profile
Portal profilePortal profile
Portal profileUsableLabs
 
King's birthday
King's birthdayKing's birthday
King's birthdayUsableLabs
 
Portal manual (Original)
Portal manual (Original)Portal manual (Original)
Portal manual (Original)UsableLabs
 

More from UsableLabs (20)

Vocabulary for portal
Vocabulary for portalVocabulary for portal
Vocabulary for portal
 
การจัดการความรู้
การจัดการความรู้การจัดการความรู้
การจัดการความรู้
 
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภคการส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
 
อาหารและโภชนาการ เรื่อง สารกันบูด
อาหารและโภชนาการ เรื่อง สารกันบูดอาหารและโภชนาการ เรื่อง สารกันบูด
อาหารและโภชนาการ เรื่อง สารกันบูด
 
ส่งยิ้ม ส่งรัก รับปีใหม่
ส่งยิ้ม ส่งรัก รับปีใหม่ส่งยิ้ม ส่งรัก รับปีใหม่
ส่งยิ้ม ส่งรัก รับปีใหม่
 
30 web (blog2book)
30 web (blog2book)30 web (blog2book)
30 web (blog2book)
 
ภาพสวยๆ จากคนรักมวลเมฆ
ภาพสวยๆ จากคนรักมวลเมฆภาพสวยๆ จากคนรักมวลเมฆ
ภาพสวยๆ จากคนรักมวลเมฆ
 
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
 
สร้างเว็บไซต์โดยใช้หลัก Usability
สร้างเว็บไซต์โดยใช้หลัก Usability สร้างเว็บไซต์โดยใช้หลัก Usability
สร้างเว็บไซต์โดยใช้หลัก Usability
 
แนะนำวิธีการจดทะเบียนโดเมน
แนะนำวิธีการจดทะเบียนโดเมนแนะนำวิธีการจดทะเบียนโดเมน
แนะนำวิธีการจดทะเบียนโดเมน
 
Health
HealthHealth
Health
 
Money
MoneyMoney
Money
 
correct_Portal manual
correct_Portal manual correct_Portal manual
correct_Portal manual
 
Lit
LitLit
Lit
 
Blog
BlogBlog
Blog
 
เทคโนโลยีและนวัตกรรมการศึกษา
เทคโนโลยีและนวัตกรรมการศึกษาเทคโนโลยีและนวัตกรรมการศึกษา
เทคโนโลยีและนวัตกรรมการศึกษา
 
Portal profile
Portal profilePortal profile
Portal profile
 
Card sorting
Card sortingCard sorting
Card sorting
 
King's birthday
King's birthdayKing's birthday
King's birthday
 
Portal manual (Original)
Portal manual (Original)Portal manual (Original)
Portal manual (Original)
 

3.Expression

  • 1. 976-140 Object-Oriented Programming 344-202 Introduction to Object-Oriented Programming การโปรแกรมเชิงวัตถุ 3. Arithmetic Expression, String class, Wrapper class, Math Class Faculty of Technology and Environment Prince of Songkla University, Phuket Campus 2/2551
  • 2. Contents  Java operators  String Class  Wrapper Class  Sending argument to a program  Math Class  Formating Number Object-Oriented Programming 2/2551 2
  • 3. Arithmetic Expressions  Arithmetic expression คือ นิพจน์ที่เกี่ยวกับการดาเนินการทาง คณิตศาสตร์  Arithmetic expression ประกอบด้วย arithmetic operator และ operand  arithmetic operator คือ ตัวดาเนินการทางคณิตศาสตร์ เช่น +, -, *, /  Operand คือ ตัวถูกดาเนินการ อาจเป็น ค่าคงที่ ตัวแปร นิพจน์ทาง คณิตศาสตร์อื่น ๆ หรือเมธอดที่มีการคืนค่ากลับ  a+b*4 Operator : +, * Operand : a, b, 4  a + (b*c) Operator : + Operand : a, b*c Object-Oriented Programming 2/2551 3
  • 4. Java operators น้อย Precedence มาก Object-Oriented Programming 2/2551 4
  • 5. Implicit Type Conversion  ถ้า operand ที่มีชนิดข้อมูลเดียวกัน ผลลัพธ์ที่ได้ก็จะได้ชนิดข้อมูลนั้น  ถ้า operand ต่างชนิดข้อมูลกัน จะมีการแปลงให้ operand มีชนิดเดียวกัน ก่อนดาเนินการ  double > float > long > int > short > byte Operation result  23 / 5 4  23 + 5.0 28.0  23 / 5.0 4.6  25.0 / 25.0 1.0  23 % 5 3  23 % 25 23 Object-Oriented Programming 2/2551 5
  • 6. How java compute these expression?  การคานวณค่าทางคณิตศาสตร์ จะเริ่มจาก operator ที่มีลาดับ ความสาคัญสูงสุดไปต่าสุด ถ้าความสาคัญเท่ากันจะทาจากซ้ายไปขวา  -3 * 7 + (20 / 2 – 6 ) / 2  2 * (17 % 3 / 2 + 26 ) * 2 + 4 Object-Oriented Programming 2/2551 6
  • 7. Increment & Decrement  ++ และ -– สามารถอยู่หน้าและหลังตัวแปรก็ได้  ในคาสั่งที่มีตวแปรตัวเดียว ถือว่าเหมือนกัน ั  x++; หรือ ++x; หมายถึง x = x + 1;  y--; หรือ --y; หมายถึง y = y - 1;  หากมีการดาเนินการอื่นด้วย ตาแหน่งของเครื่องหมายจะมีผลต่างกัน  Prefix คือ เครื่องหมายอยู่หน้าตัวแปร • หมายถึง เพิ่มหรือลดค่าตัวแปรก่อนแล้วนาไปดาเนินการ  Postfix คือ เครื่องหมายอยู่หลังตัวแปร • หมายถึง ดาเนินการเสร็จแล้วค่อยเพิ่มหรือลดค่าตัวแปรนั้น Object-Oriented Programming 2/2551 7
  • 8. Assignment Operator += x += y; x = x + y; -= x -= y; x = x - y; *= x *= y; x = x * y; /= x /= y; x = x / y; %= x %= y; x = x % y; Object-Oriented Programming 2/2551 8
  • 9. Shift Operators  left-shift operator (<<) ตรึง signed bit -4 << 1: 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 (= -8)  Right-shift (>>) – signed แทนที่ signed bit เดิม -4 >> 1: 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 (= -2) 4 >> 1: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 (= 2)  Right-shift (>>>) - unsigned -4 >>> 1: 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 (X) 4 >>> 1: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 (= 2) แทนที่ signed bit ด้วย 0 Object-Oriented Programming 2/2551 9
  • 11. Ternary Operators  เป็น operator ที่ประกอบด้วย 3 operands  Short-cut สาหรับ if/else  รูปแบบ (boolean expression) ? X : Y;  เช่น  มีความหมายเหมือนกับ Object-Oriented Programming 2/2551 11
  • 13. Boolean operator  คือ operator ที่ใช้คานวณทางตรรกศาสตร์ของค่าคงที่ ตัวแปร นิพจน์ทาง คณิตศาสตร์ที่อยู่ติดกับ operator ทั้งสองข้าง & AND ให้ค่า false ถ้าตัวใดตัวหนึ่งเป็น false | OR ให้ค่า true ถ้าตัวใดตัวหนึ่งเป็น true ^ XOR ให้ค่า true ถ้า operand ทั้งสองข้างมีค่าความจริงไม่ตรงกัน ! NOT เปลี่ยนค่าความจริงเป็นตรงข้าม && Short-circuit AND เหมือน & แต่ถ้า operator ตัวแรกเป็น false จะ ให้ค่า false และหยุดตรวจสอบ || Short-circuit OR เหมือน | แต่ถ้า operator ตัวแรกเป็น true จะให้ ค่า true และหยุดตรวจสอบ Object-Oriented Programming 2/2551 13
  • 15. Reference Data Type - ชนิดข้อมูลแบบอ้างอิง  ชนิดข้อมูลในจาวามี 2 แบบคือ  Primitive data type – byte, short, int, long ,char, boolean, double, float  Reference data type – String, array, class อื่น ๆ  2 แบบนี้มีวิธการเก็บข้อมูลในหน่วยความจาต่างกัน เช่น ี  Reference คือ address ในหน่วยความจา Object-Oriented Programming 2/2551 15
  • 16. String Class  String เป็นคลาสหนึ่งใน Java API ใช้เป็นชนิดข้อมูลได้  Literal ของตัวแปรที่มีชนิดข้อมูลแบบ String คือ ข้อความที่อยู่ใน เครื่องหมายคาพูด “…..”  การกาหนดค่าให้ตัวแปร String ทาได้ 2 แบบ  String s = “Thana”;  String s = new String(“Thana”);  new เป็น keyword ในจาวาสาหรับประกาศตัวแปรที่เป็น reference data type Object-Oriented Programming 2/2551 16
  • 17. String Class  การใช้คาสั่ง new จะมีการสร้าง String ใหม่และจองพื้นทีในหน่วยความจา ่ เสมอ  ถ้าไม่ใช้คาสั่ง new จะตรวจสอบจาก pool หากมีข้อความเดิมก็จะกาหนด reference ให้ชี้ไปทีข้อความนั้น ่ Object-Oriented Programming 2/2551 17
  • 18. String Class  การกาหนดค่าใหม่ให้ String เป็นการจองพื้นที่ให้ข้อความใหม่ และ กาหนด reference ไปยังข้อความใหม่ Object-Oriented Programming 2/2551 18
  • 19. String Class  ในจาวานั้น ชนิดข้อมูลที่เป็น primitive data type จะถูกแปลงเป็น String อัตโนมัติเมื่อทาการต่อกับ String อื่น  ถ้าโปรแกรมเป็นดังนี้ int x = 10; System.out.println(“x = ” + x);  + เป็น operator สาหรับการต่อสตริงเข้าด้วยกัน  ตัวแปร x จะถูกแปลงจากตัวเลขเป็นข้อความคือ “10”  ดังนั้นจึงได้ผลลัพธ์เป็นข้อความว่า “x = 10” ส่งให้แก่คาสั่ง println() Object-Oriented Programming 2/2551 19
  • 20. String Class  String ที่เป็นตัวเลขไม่สามารถนามาใช้ในการคานวณได้  การนาตัวเลขต่อกับ String จะได้ผลลัพธ์เป็น String เท่านั้น  การแปลงจาก primitive data type เป็น String อาจใช้เมธอด String.valueOf(x) Object-Oriented Programming 2/2551 20
  • 21. Sending argument to our program  argument คือ ค่าที่เราต้องการส่งเป็น input ให้แก่โปรแกรม เพื่อนาไปใช้ งานในโปรแกรม  การส่ง argument จะส่งผ่าน method โดยระบุชื่อและชนิดของ argument ไว้ภายในวงเล็บ (………………) หลังชื่อ method  การเขียนเมธอดให้สามารถรับ argument ได้ โดยระบุ argument ภายใน วงเล็บหลังชื่อเมธอดในรูปแบบ method_name(data_type argument_name) {} Object-Oriented Programming 2/2551 21
  • 22. Sending argument to our program  String คือชนิดข้อมูลที่เป็นข้อความ  String[] เป็นการบอกว่า argument นี้เป็นลาดับของ String ที่เรียงต่อกัน เรียกว่า array โดยอ้างถึง argument ได้ดวย ชื่อตัวแปร[ลาดับ] ้  args คือ ชื่อตัวแปร ซึ่งเป็นชื่อ argument args[0] “hello”  ลาดับ เริ่มจาก 0,1,2,.... Args[1] “happy”  ตัวอย่าง รันโปรแกรมด้วยคาสั่ง Args[2] “50”  Java MyProgram hello happy 50 PSU Args[3] “PSU” Object-Oriented Programming 2/2551 22
  • 23. Sending argument to our program Greeting  แก้ไขให้โปรแกรมแสดงข้อความทักทายโดยระบุชื่อผู้ที่พิมพ์ข้อความด้วย สามารถเขียนโปรแกรมใหม่ได้ดังนี้ Object-Oriented Programming 2/2551 23
  • 24. Run program with argument  method main รับ argument เป็นลาดับของ String ชื่อ argument คือ args  เริ่มต้นลาดับที่ 0 เช่น argument ตัวแรกคือ args[0] , args[1], args[2],….  เราสามารถเอาค่าที่ส่งมาใช้อางถึงในเมธอด main ได้ ้  การคอมไพล์โปรแกรม ด้วยคาสั่ง javac Greeting.java  การรันโปรแกรมจาวาใน command prompt นั้น โดยระบุ argument ต่อท้ายชื่อคลาส ด้วยคาสั่ง รันโปรแกรม ชื่อโปรแกรม argumentตัวแรก (args[0]) Object-Oriented Programming 2/2551 24
  • 25. Error about argument  What happen when I try to run this program with this command? java Greeting index ที่เกิด error Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at Greeting.main(Greeting.java:8) หากในโปรแกรมมีการเรียกใช้ argument แต่ไม่ทาการส่งค่าในขณะรัน โปรแกรม จะเกิดข้อผิดพลาด Object-Oriented Programming 2/2551 25
  • 26. Try this!  How to run this program without error and show this result ? Object-Oriented Programming 2/2551 26
  • 27. Run Java with argument by EditPlus Object-Oriented Programming 2/2551 27
  • 28. Get input from console with java.util.Scanner  การรับข้อมูลจากผู้ใช้ผ่านคีย์บอร์ดทาได้ดังนี้  เพิ่มคาสั่ง import java.util.Scanner; ไว้บรรทัดบนสุดของโปรแกรม  ภายในเมธอด ให้ทาการเพิ่มคาสั่ง Scanner sc = new Scanner(System.in);  ให้เรียกใช้เมธอดการรับค่าตรงกับชนิดข้อมูลที่ต้องการรับ  ตัวอย่าง การรับค่าเลขจานวนเต็มจากคีย์บอร์ด เก็บในตัวแปร i int i = sc.nextInt(); Object-Oriented Programming 2/2551 28
  • 29. Get input from console with java.util.Scanner Object-Oriented Programming 2/2551 29
  • 30. Method in java.util.Scanner  int nextInt()  double nextDouble()  boolean nextBoolean()  byte nextByte()  float nextFloat()  short nextShort()  long nextLong()  String next() //a word  String nextLine() //a line Object-Oriented Programming 2/2551 30
  • 31. Wrapper Class  แปลง String เป็น primitive data type ที่เป็นตัวเลข จะต้องใช้ Wrapper class ซึ่งเป็นคลาสใน library มาตรฐานของจาวา  การใช้ Wrapper Class จะใช้คู่กับ Primitive Type แต่ละชนิด Primitive Wrapper Primitive Wrapper  float Float short Short  double Double int Integer  byte Byte long Long  รูปแบบ WrapperClass.Method(String)  ตัวอย่าง แปลง String “5” ให้เป็น int int num = Integer.parseInt(“5”); Object-Oriented Programming 2/2551 31
  • 32. Wrapper Class  แปลงจาก String เป็น integer  String input = “5” ; int i = Integer.parseInt(input); ได้ i ที่เป็น int = 5 // คลาส Integer มีเมธอด parseInt ทาหน้าที่แปลง String เป็นชนิดข้อมูลแบบ int  แปลงจาก String เป็น double  String input = 8.43 ; double f = Double.parseDouble(input); ได้ f ที่เป็น double = 8.43 // คลาส Double มีเมธอด parseDouble ทาหน้าที่แปลง string เป็นชนิดข้อมูล แบบ double Object-Oriented Programming 2/2551 32
  • 33. Using the Math Class  คลาส Math เป็นคลาสใน package java.lang ซึ่งเป็นไลบรารี่มาตรฐานของจาวาที่เรา สามารถเรียกใช้ได้ในโปรแกรม  การใช้งานเมธอดให้อ้างถึงโดยใช้ ชื่อคลาส.เมธอด() เพราะเป็น static method  static double abs (double)  Returns the absolute value of the argument  static float abs (float)  Returns the absolute value of the argument  static int abs (int)  Returns the absolute value of the argument  static long abs (long)  Returns the absolute value of the argument Object-Oriented Programming 2/2551 33
  • 34. Using the Math Class  static double exp (double)  Returns e raised to the power of the argument  static double log (double)  Returns the natural logarithm of the argument  static double pow (double base, double exp)  Returns the base raised to the exp power  static double random ()  Returns a pseudorandom number in the range [0, 1)  static double sqrt (double)  Returns the square root of the argument Object-Oriented Programming 2/2551 34
  • 35. Using the Math Class  Constants of the Math class  PI 3.141592653589793 ( constant Pi (π) )  E 2.718281828459045 ( natural logarithms ) public class CircleAreaApp { public static void main(String[] args) { int r = 5; double area = Math.PI * (r * r); System.out.println("The area is " + area); } }Object-Oriented Programming 2/2551 35
  • 36. Mathematical Functions  Try this! Object-Oriented Programming 2/2551 36
  • 37. Rounding functions  Try this! Object-Oriented Programming 2/2551 37