lab computer programming 1

22
1 พพพพพพพ Java พพพพพพพพพ Edit Plus

Upload: saranyu-srisrontong

Post on 05-Aug-2015

46 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Lab Computer Programming 1

1

พื้��นฐาน Java กั�บกัารใช้ Edit Plus

Page 2: Lab Computer Programming 1

2

รายละเอี�ยดขอีงไดเรกัทอีร�bin เป็�นไดเรกทอร�ท��เก บโป็รแกรมท��ใช้�คอมไพล์� หร�อโป็รแกรม

ท��เก��ยวข้�องก�บการคอมไพล์�แล์ะการทดสอบโป็รแกรมภาษาJava

demo เป็�นตั�วอย&างโป็รแกรมภาษา Java แล์ะ Source Code

include เก บไฟล์� header ในภาษา C ใช้�ในกรณี�ผู้*�เข้�ยน โป็รแกรมตั�องการเพ+�มการใช้�งาน header ภาษา C ใน

โป็รแกรมภาษา Java jre เก บคอมโพเนนตั�ท��ใช้�ส,าหร�บการร�นโป็รแกรม Java ซึ่.�งรวม

ถึ.ง Java Virtual Machine คล์าส แล์ะ package Libraries ตั&าง ๆ ท��จำ,าเป็�นในการท,างานข้องคอมไพเล์อร�

Lib เก บคล์าสแล์ะ package เพ+�มเตั+มอ��น ๆ ข้อง Java

Page 3: Lab Computer Programming 1

3

ตั�วอย&างโป็รแกรมpublic class Hello{

public static void main(String[] args) {

System.out.println("Hello World!");}

}

Page 4: Lab Computer Programming 1

4

กัารเร�ยกัใช้ java compiler

Page 5: Lab Computer Programming 1

5

การ run โป็รแกรม java

Page 6: Lab Computer Programming 1

6

Java Servlet API :- ช้2ดท��รวบรวมกล์2&มคล์าสท��สน�บสน2น การท,างานท��เก+ดข้.3นบนเซึ่+ร�ฟเวอร�เป็�นส&วนใหญ่& โดยให�เซึ่+ร�ฟเวอร�

แล์ะไคล์เอนตั�ส��อสารก�นด�วยโป็รโตัคอล์ HTTP (Hyper Text Transfer Protocol)

Windows, Unix, Linux

Browser

Java Servlet

เว บเซึ่+ร�ฟเวอร�

ค,าร�องข้อ

ข้�อม*ล์ใน ร*ป็แบบ HTML

Page 7: Lab Computer Programming 1

7

Java Server Page : JSP• เป็�นร*ป็แบบการท,างานในฝั่6� งเซึ่+ร�ฟเวอร�เหม�อนก�บจำาวา

เซึ่+ร�ฟเล์ ตั แตั&ผู้*�สร�างสามารถึเข้�ยนค,าส��งเจำเอสพ�ล์งในไฟล์�เว บได� โดยตัรง ผู้+ดก�บจำาวาเซึ่+ร�ฟเล์ ตั ซึ่.�งผู้*�สร�างตั�องเข้�ยนค,าส��งจำาวา

ในแบบเซึ่+ร�ฟเล์ ตั แล์�วคอมไพล์�เป็�นเซึ่+ร�ฟเล์ ตัไว�ใช้�งาน

<HTML><HEAD><TITLE> Heading </TITLE></HEAD><BODY><% out.println("Hello Java Server Page");%></BODY></HTML>

Page 8: Lab Computer Programming 1

8

Java 3D API:- ร*ป็แบบ API หน.�งท��ถึ*กใช้�งานส,าหร�บการใช้�งานเก��ยวข้�อง

ระบบสามม+ตั+ โดยสามารถึช้&วยให�โป็รแกรมเมอร�สร�างภาพหร�อสภาวะแวดล์�อมแบบสามม+ตั+ได�ด�วยภาษาจำาวา

Java RMI API:- ช้2ดส,าหร�บให�โป็รแกรมเมอร�น,ามาใช้�งาน เพ��อว�ตัถึ2ป็ระสงค�ใน

การสร�างโป็รแกรมท��ม�การตั+ดตั&อส��อสารก�น

Page 9: Lab Computer Programming 1

9

JavaBeans:- ส&วนป็ระกอบซึ่อฟตั�แวร�หร�อช้+3นส&วนคอมโพเนนตั� เป็�นร*ป็

แบบข้องความสามารถึในการน,ามาใช้�ใหม& (Reuseable) โดยว+ธี�ใช้�งาน ค�อ การน,าเอาคอมโพเนนตั�ด�งกล์&าวมา

ป็ระกอบก�นข้.3นเป็�นซึ่อฟตั�แวร� (ส,าหร�บจำาวาความหมายรวม ถึ.ง แอพพล์+เคช้��นแล์ะแอป็เพล์ ตั) ท,าให�ซึ่อฟตั�แวร�สามารถึ

สร�างข้.3นได�ง&ายแล์ะรวดเร วกว&าเด+มมากJava Swing:- ช้2ด API เพ��อสน�บสน2นการก,าหนดอ+นเตัอร�เฟส ซึ่.�งป็ระกอบ

ด�วยคอมโพเนนตั�ตั&าง ๆ มากมายให�เล์�อกใช้� เช้&นJTextBox, JButton, JPanel, JRadio เป็�นตั�น

Page 10: Lab Computer Programming 1

10

JDBC Data Access:- ช้2ด API ท��โป็รแกรมเมอร�ภาษาจำาวาสามารถึสร�างแอพพล์+

เคช้��นหร�อแอป็เพล์ ตัเพ��อตั+ดตั&อก�บฐานข้�อม*ล์ด�วย JDBC Driver เพ��อเข้�าไป็ถึ.งระบบฐานข้�อม*ล์เช้+งส�มพ�นธี�จำาก

ผู้ล์+ตัภ�ณีฑ์�ได�หล์ากหล์าย เช้&น Oracle, SQL Server, Informix, DB2, mySQL โดยใช้�ค,าส��ง SQL ซึ่.�งเป็�นค,าส��งท��ท2กระบบฐานข้�อม*ล์สน�บสน2น

Page 11: Lab Computer Programming 1

11

ข อีกั�าหนดเบ��อีงต้ นในกัารเข�ยนโปรแกัรม• แตั&ล์ะป็ระโยคตั�องจำบด�วยเคร��องหมาย ; เสมอ• ส�ญ่ล์�กษณี�อ��นท��ใช้�แยกข้�อความหร�อค,าส��งอ�ก เช้&น

( ) ใช้�ส,าหร�บแยกล์,าด�บในการป็ระมวล์ผู้ล์ { } ใช้�ส,าหร�บแยกช้2ดค,าส��ง หร�อรวมช้2ดค,าส��งเป็�นบล์ อก , ให�ความตั&อเน��องในการท,างาน เช้&น การก,าหนดตั�วแป็รท��ม�ป็ระเภทข้�อม*ล์แบบเด�ยวก�น

. ใช้�ในการแยก package ก�บ class หร�อ object ก�บ method

Page 12: Lab Computer Programming 1

12

• หล์�กเกณีฑ์�การตั�3งช้��อตั&าง ๆ เช้&น ช้��อ class, ช้��อ data, ช้��อ method แล์ะช้��อตั�วแป็ร ป็ระกอบด�วยตั�วอ�กษรภาษาอ�งกฤษ ตั�วเล์ข้ แล์ะส�ญ่ล์�กษณี� _ หร�อ $

เช้&น age, int2float, _name$ เป็�นตั�น ความยาวไม&ควรเก+น 65535 ตั�วอ�กษร ไม&ควรใช้�ตั�วเล์ข้เป็�นตั�วแรก เช้&น 101database, 2name ไม&ควรใช้�ช้&องว&าง (spaces) หร�อ . (periods) ตั�วอ�กษรตั�วพ+มพ�เล์ กแล์ะตั�วพ+มพ�ใหญ่&ถึ�อว&าตั&างก�น เช้&น Count,

count แล์ะ CoUnT ถึ�อว&าเป็�นคนล์ะช้��อ ตั�องไม&ตัรงก�บค,าศั�พท�สงวน (Key Word) ในภาษาจำาวา ช้��อ class ควรข้.3นตั�นด�วยตั�วพ+มพ�ใหญ่& ส&วนท��เหล์�อเป็�นตั�วเล์ ก ช้��อ data หร�อตั�วแป็รควรเป็�นตั�วพ+มพ�เล์ กท�3งหมด ช้��อค&าคงท��ควรเป็�นตั�วพ+มพ�ใหญ่&ท�3งหมด ช้��อ method ค,าแรกควรเป็�นตั�วเล์ กท�3งหมด ค,าถึ�ดไป็ตั�วแรกควร

เป็�นตั�วพ+มพ�ใหญ่& ท��เหล์�อจำ.งเป็�นตั�วเล์ ก เช้&น setCount, testFirst เป็�นตั�น

Page 13: Lab Computer Programming 1

13

ค,าศั�พท�สงวน (Key Word) ในภาษาจำาวาabstract boolean break byte case

catch char class const continuedefault do double else extends

final finally float for goto

if implements

import instanceof int

interface

long native new package

private protected

public return short

static super switch synchronized

this

throw throws transient

try void

volatile while  

Page 14: Lab Computer Programming 1

14

• การเข้�ยนหมายเหตั2 (Comment) สามารถึท,าได� 3 ร*ป็แบบ ค�อ //single line comment

  /* multiple line comments …*/  /** This is a javadoc comment*/

• โป็รแกรมท��สร�างจำากจำาวาตั�องสามารถึสร�างได�อย&างน�อยหน.�งคล์าสโดย ม�ร*ป็แบบโครงสร�างด�งน�3

[<access_specifier>] class <class_name> { //data members

//methods } access_specifier :- ระด�บการเข้�าถึ.งข้�อม*ล์ เช้&น public แล์ะ

private public หมายถึ.ง ระด�บการเข้�าถึ.งข้�อม*ล์ท��ไม&ม�ข้�อจำ,าก�ดใดๆ private หมายถึ.ง ระด�บการเข้�าถึ.งข้�อม*ล์ส,าหร�บการใช้�งานในคล์าส ในหน.�งโป็รแกรมตั�องม�เพ�ยงหน.�งคล์าสท��ม�ช้��อเด�ยวก�บโป็รแกรมแล์ะ

ตั�องเป็�นช้น+ด public เสมอ

Page 15: Lab Computer Programming 1

15

• data members เป็�นส&วนป็ระกอบหน.�งข้องคล์าส ใช้� ส,าหร�บก,าหนดช้��อแล์ะช้น+ดข้องตั�วแป็รท��ใช้�ส,าหร�บเก บข้�อม*ล์

โดยม�ร*ป็แบบด�งน�3[<access_specifier>] [<modifier>] <datatype>

<variable_name>

modifier เป็�นการก,าหนดค2ณีล์�กษณีะพ+เศัษในการใช้�งาน ตั�วแป็รแล์ะ method เช้&น static แล์ะfinal

static หาก Data ใดน,าหน�าด�วยค,าศั�พท�สงวน static แล์�ว Data น�3น จำะถึ*กโหล์ดล์งในหน&วยความจำ,าแล์ะพร�อม

ใช้�งานท�นท� เม��อม�การอ�างถึ.งตัามข้�อก,าหนดข้องระด�บการ เข้�าถึ.ง (Accessibility)

final หาก Data ใดน,าหน�าด�วยค,าศั�พท�สงวน final แล์�ว Data น�3นใช้�ส,าหร�บเก บข้�อม*ล์ค&าคงท��(Constant) ซึ่.�งไม&สามารถึเป็ล์��ยนค&าได�

Page 16: Lab Computer Programming 1

16

• methods ม�ร*ป็แบบด�งน�3[<access_specifier>] [<modifier>] < return_type >

<method_name> ([argument_list]){ //Statements }

return_type :- ช้น+ดข้องข้�อม*ล์ท��ถึ*กส&งค�นหล์�งส+3นส2ดการ ท,างานข้อง method

argument_list :- ช้&องทางในการผู้&านข้�อม*ล์เพ��อส&งให�method ใช้�ในการท,างาน

Statement :- ค,าส��งควบค2มการท,างานข้องน+พจำน� เพ��อ ก,าหนดหล์�กการแล์ะว+ธี�การป็ระมวล์ผู้ล์ภายใน method

ในหน.�งโป็รแกรมจำะตั�องม� Method ท��ช้��อ main เสมอ โดยMethod main จำะเป็�น Method แรกท��โป็รแกรมเร�ยกใช้� ซึ่.�ง

ในหน.�งโป็รแกรมจำะตั�องม�เพ�ยง 1 main Method เท&าน�3น ซึ่.�ง จำะตั�องม�ค&า Accessibility เป็�น static เสมอ แล์ะเน��องจำาก

ไม&ม�การส&งค&ากล์�บ จำ.งใช้� Accessibility void ร&วมด�วยเสมอ

Page 17: Lab Computer Programming 1

17

• ท�ายช้��อข้อง Method ตั�องตัามด�วยเคร��องหมาย ( ) หาก ไม&ม�การส&งค&าพาราม+เตัอร�ใดไป็ด�วย หากม�การส&งค&า จำะตั�อง

อย*&ในร*ป็แบบใดแบบหน.�งเสมอ เช้&น (String args[ ]) หร�อ(String[ ] args)

• การแสดงผู้ล์ทางจำอภาพสามารถึท,าด�วย method ท�� ช้��อว&า println ซึ่.�งอย*&ใน System.out โดยค,าส��งน�3ตั�องการ

ข้�อม*ล์ท��เป็�น String เพ��อน,าไป็แสดงบนจำอภาพ แตั&ท�3งน�3อาจำ ส&งข้�อม*ล์ท��เป็�น Integer ร&วมด�วยได�โดยใช้�เคร��องหมาย +

ข้�อม*ล์ท�3งหมดจำะถึ*กแป็ล์งเป็�น String โดยอ�ตัโนม�ตั+

Page 18: Lab Computer Programming 1

18

ตั�วอย&างการเข้�ยน Java Appletimport java.applet.*;import java.awt.Graphics;public class hello2 extends Applet{

public void paint(Graphics g) {

g.drawString("Hello World!",20,60);}

}

<HTML><HEAD><TITLE>Heading</TITLE></HEAD>

<BODY><applet code="hello2.class" width=200

height=100></applet></BODY></HTML>

Page 19: Lab Computer Programming 1

19

การเร�ยกใช้� java applet

Page 20: Lab Computer Programming 1

20

• โป็รแกรมท��เข้�ยนแบบ Applet ตั�องม�การเพ+�มคล์าสตั&าง ๆ โดยเฉพาะjava.applet.* แล์ะ java.awt.Graphics

• Package หร�อ Java Class Library เป็�นท��เก บรวบรวม Class ตั&าง ๆ แตั&ล์ะ Package จำะถึ*กเก บแยกไว�ในแตั&ล์ะ Directory แล์ะ แตั&ล์ะ Package จำะเก บ Class ตั&าง ๆ แยกไว�ในแตั&ล์ะ Directory

เช้&นเด�ยวก�น ในแตั&ล์ะ Class จำะม� methods ให�เล์�อกน,ามาใช้�ให�เหมาะ ก�บงานท��ตั�องการโดยไม&ตั�องเข้�ยนข้.3นมาเอง

• Class ใน Package หน.�งสามารถึเร�ยกใช้� Class อ��นใน Package เด�ยวก�นได� แตั&จำะเร�ยกใช้� Class ท��อย*&ตั&าง Package ก�นได�หร�อไม&ข้.3น

อย*&ก�บการก,าหนดค&า Accessible

ข้�อก,าหนดเพ+�มเตั+มในการเข้�ยน Java Applet

Page 21: Lab Computer Programming 1

21

• การเร�ยกใช้� Package สามารถึท,าได�ด�วยค,าส��ง import ซึ่.�งตั�องวาง ไว�ตัอนแรกส2ดข้องโป็รแกรมเสมอ เพ��อให� Compiler น,า Package

ตั&าง ๆ ท��อ�างถึ.งมาเช้��อมโยงเข้�าก�บโป็รแกรม ก&อนท��จำะมาเร�ยกใช้�methods ตั&าง ๆ ภายในโป็รแกรม

• โป็รแกรม Applet ตั�องเข้�ยนในร*ป็ public class hello2 extends Applet

ซึ่.�งเป็�นการส�บทอดค2ณีสมบ�ตั+ข้องคล์าส Applet • การแสดงข้�อม*ล์บนจำอภาพ ตั�องใช้�ค,าส��ง drawString ซึ่.�งเป็�น

method ข้องคล์าส Graphics

Page 22: Lab Computer Programming 1

22

ตั�วอย&าง Standard Package ในภาษา Java Package Class ท� เป!นส่#วนประกัอีบ

java.applet Class ท��จำ,าเป็�นตั&อการสร�าง Applet

java.awt Class ท�ใช้�ป็ระโยช้น�ในการสร�าง GUI

java.io Class ส,าหร�บป็ฏิ+บ�ตั+งานด�าน I/O

java.lang Class พ�3นฐานข้อง Java ไม&ตั�อง import

java.net Class ท��ใช้�ตั+ดตั&อก�บเคร�อข้&าย ใช้�ควบค*&ก�บ java.io

java.util Class ท��เป็�น Utility เช้&น การเข้�ารห�ส การถึอดรห�ส

java.awt.images

Class ท��ใช้�ในการสร�างแล์ะท,างานก�บร*ป็ภาพ

java.swing Class ท��ใช้�สร�าง Swing ช้&วยให�ท,างานง&ายกว&า java.awt