ปฏิบตัการทิี่ 1 - ttime.in.thgetarea(): float height base การส...

Post on 23-Mar-2021

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

ดร.ธระยทธ ทองเครอภาควชาวทยาการคอมพวเตอร คณะวทยาศาสตร

มหาวทยาลยขอนแกน

ปฏบตการท 1พนฐาน Java และ JSP

ชนดขอมลพนฐานของตวแปรชนดขอมลพนฐานของตวแปรint 4 bytesshort 2 byteslong 8 bytesbyte 1 bytefloat 4 bytesdouble 8 byteschar 2 bytesboolean true, false

2

หมายเหต ชนดขอมลพนฐานของตวแปรจะขนตนดวยตวพมพเลก

Hello WorldHello World

3

class Hello {public static void main(String[] args) {

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

}

ชอคลาส ฟงกชน main บอกจดเรมตนโปรแกรม

ฟงกชนแสดงขอความออกทางหนาจอ

โครงสรางควบคมโครงสรางควบคม

4

if/else

do/while

for

switch

if(x==4) {// act1

} else {// act2

}

int i=5;while(i!=0) {

// act1i--;

}

for(int i=0;i<=9;i++){// act1

}

char c=IN.getChar();switch(c) {

case ‘a’:case ‘b’:

// act1break;

default: // act2

}

while

int i=5;do {

// act1i--;

} while(i!=0);

ClassClassโครงสรางของวตถ ทตองการใชในการสราง Object

5

ชอ Classattribute-1attribute-2attribute-nmethod-1method-2method-n

Fruitgrams: intcals_per_gram: int

setGrams(int): voidsetCalsPerGram(int): voidtotal_calories(): int

รายการตวแปรทใชในคลาส

ฟงกชนททางานภายในคลาส

ตวอยาง Classตวอยาง Class

6

class Fruit {int grams;int cals_per_gram;void setGrams(int g) { grams = g; }void setCalsPerGram(int cal) {

cals_per_gram = cal;}int total_calories() {

return grams*cals_per_gram;}

}

Fruitgrams: intcals_per_gram: int

setGrams(int): voidsetCalsPerGram(int): voidtotal_calories(): int

ObjectObject

7

class Fruit {int grams;int cals_per_gram;void setGrams(int g) { grams = g; }void setCalsPerGram(int cal) {

cals_per_gram = cal;}int total_calories() {

return grams*cals_per_gram;}public static void main(String[] a) {

Fruit mango = new Fruit();mango.setGrams(11);mango.setCalsPerGram(100);System.out.println("Mango has " + mango.total_calories() );

}}

Fruitgrams: intcals_per_gram: int

setGrams(int): voidsetCalsPerGram(int): voidtotal_calories(): int

mango: Fruitgrams = 11cals_per_gram = 100

C l a s

sO b

j e c t

สราง object

เรยกใชฟงกชน

คลาสทถกสรางขนจะไมสามารถใชงานได นอกจากสรางเปน Object กอนกจกรรมกจกรรม

จงเขยนคลาส Triangle ซงมโครงสรางดงแผนภาพ หลงจากนน สรางเปน Object เพอทดสอบการทางานของฟงกชนทสรางขนในคลาส เพอแสดงพนทสามเหลยมออกทางหนาจอ

8

Trianglebase: intheight: int

setBase(int): voidsetHeight(int): voidgetArea(): float

height

base

การสบทอดคลาสการสบทอดคลาสคลาสทสรางขนบางครงอาจจาเปนตองเพมสวน attribute และ method เพอใหทางาน

เฉพาะเจาะจงกวาคลาสเดมทมอย

คลาส Fruit เมอตองการขยายใหเปนคลาส BerryFruit จะสบทอดคณสมบตทวไปของผลไมจากคลาส Fruit และจะเพมคณสมบตของ BerryFruit เขาไป และอาจปรบปรงการทางานของฟงกชนเดม

9

ตวอยาง Classตวอยาง Class

10

class Fruit {int grams;int cals_per_gram;...

int total_calories() {return grams*cals_per_gram;

}}class BerryFruit extends Fruit {

String color;int total_calories() {

return grams*cals_per_gram - 5;}

}public class FruitApp {public static void main(String[] a) {

BerryFruit strawberry = new BerryFruit();strawberry.setGrams(11);strawberry.setCalsPerGram(100);System.out.println("Strawberry has " +

strawberry.total_calories() );}

}

Fruitgrams: intcals_per_gram: int

setGrams(int): voidsetCalsPerGram(int): voidtotal_calories(): int

BerryFruit

color: String

total_calories(): int

InterfaceInterface Interface คอ คลาสทมเพยงตนแบบของฟงกชน ไมมสวนการทางานจรง

Interface ใชในการกาหนดวาคลาสนนทาอะไรไดบาง ทาใหมหลายคลาสททางานแตกตางกนไป แตมตนแบบฟงกชนเหมอนกน

11

ตวอยางการใช Interfaceตวอยางการใช Interface

12

interface Human { public void talk();}

class Thai implements Human { public void talk(){ System.out.println("I'm Thai."); }}

class Japanese implements Human { public void talk() { System.out.println("I'm Japanese."); }}

class Chinese implements Human { public void talk() { System.out.println("I'm Chinese."); }}

public class Test { public static void main(String[] s) { Thai thai = new Thai(); Japanese jap = new Japanese(); Chinese chinese = new Chinese(); talk(thai); talk(jap); talk(chinese); }

private static void talk(IHuman h){ h.talk(); }}

Human

talk(): void

Thai

talk(): void

Japanese

talk(): void

Chinese

talk(): void

AnnotationsAnnotationsAnnotation คอ การกาหนด Configuration ใหกบโปรแกรมทสรางขน

การนา Annotation ไปไวหนาอะไรจะเปนขอมลของสงนน เชน ไวหนา ฟงกชนจะเปนของฟงกชน

รปแบบการเขยน Annotation จะใช @ นาหนา เชน

13

@WebServicepublic class onews {

@WebMethodpublic int add(int a, int b) {

return a + b; }}

PackagesPackagesPackage ใชในการจดหมวดหม Class เพอใหงายตอการพฒนาระบบทมขนาดใหญPackage เปรยบเสมอนโฟลเดอรในการจดเกบโคดโปรแกรม เมอมการเกบ Class ตางๆใน Package แลวจะตองระบชอ package ทสวนหวของ

โคดดวย เชนpackage kku.cs;

เมอตองการใชคลาสใน package ตองระบชอ package ในสวนหวของโคดดวย เชนimport kku.cs.Student; // กรณใช Class เดยวimport kku.cs.*; // กรณใชทกคลาส

14

การตรวจจบขอผดพลาด (Exception)การตรวจจบขอผดพลาด (Exception)ภาษา Java มประโยค try-catch สาหรบจดการกบขอผดพลาด ซงมรปแบบดงน

try {<statements>;

} catch(Exception e) {<statements>;

} เมอตองการดกจบขอผดพลาดคาสงบรรทดใดจะนาคาสงไวในสวน try { } เมอตองการใหทางานใดๆ เมอเกดขอผดพลาดจะเขยนคาสงไวในสวน catch { }

15

ตวอยางตวอยาง

16

class Test {public static void main(String[] args) {

try {int x = 0;System.out.println(1 / x);

} catch (Exception ex) {System.out.println(ex);

}}

}

ตรวจจบวาตวหารจะมคาเปน 0 หรอไม

ถามคาเปน 0 ใหแสดงขอความเตอน

JSPJSPJSP หรอ JavaServer Pages คอ ภาษาโปรแกรมททางานบน server (server-side

programming) เชนเดยวกบภาษา PHPJSP ใชในการสราง Web Application ทอยบนพนฐานของภาษา Java

17

การแทรกโคด Java ใน JSPการแทรกโคด Java ใน JSPใชเครองหมาย <% %> เพอแทรกโคด Java ในคาสง HTML

18

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>

<html><body>

<%for(int i=0; i<5; i++) {

out.println("Hello สวสด<br>"); }%>

</body></html>

สวนหว ใชระบการ encodeคลาสทจะ import มาใช

สวน Scriptlet ใชในการแทรกโคด Java

การตดตง Tomcat Serverการตดตง Tomcat ServerTomcat หรอ Apache Tomcat คอ โปรแกรม Web Server ทใชในการประมวลผล

ไฟล JSP ดาวนโหลดโปรแกรมท (เลอกไฟลชนด .zip) http://tomcat.apache.org/

Extract ไฟลไวทใดกไดในเครองไปทโปรแกรม Eclipse เลอกเมน File > New > Other… เลอกท Server

19

สราง Server ในการทดสอบ JSPสราง Server ในการทดสอบ JSP

20

สราง Server ในการทดสอบ JSPสราง Server ในการทดสอบ JSP

21

เลอกโฟลเดอรทเกบโปรแกรม Tomcat

การสราง Project ใหมการสราง Project ใหม เลอกเมน File > New > Dynamic Web Project แลวใสชอ Project

สรางไฟล JSP ในโฟลเดอร WebContent คลกขวาทโฟลเดอร WebContent เลอก New > JSP File

พมพโคด และทาการบนทก

22

การเพม Project บน Tomcat Serverการเพม Project บน Tomcat Server

23

การ Start Serverการ Start Server

24

การรนหนา JSP ผาน Browserการรนหนา JSP ผาน Browser

25

ชอ Project ชอไฟล jsp

การรบคาจาก URLการรบคาจาก URL

26

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>

<html><body><%

String num = request.getParameter("num");if (num!=null) {

int n = Integer.parseInt(num);for(int i=0; i<n; i++) {

out.println("Hello สวสด<br>"); }

}%></body></html>

ตวแปร request ใชในการดงคาจาก URL

คาจาก URL จะเปน String เสมอ จงตองแปลงเปนตวเลขกอนนาไปใช

การรบคาจาก HTML ฟอรมการรบคาจาก HTML ฟอรม

27

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>

<html><body><%

String num = request.getParameter("num");if (num!=null) {

int n = Integer.parseInt(num);for(int i=0; i<n; i++) {

out.println("Hello สวสด<br>"); }

}%>

<form action=""><input type="text" name="num"><input type="submit" value="สง">

</form></body></html>

กจกรรมกจกรรมจงเขยนเวบสาหรบคานวณคาพนทสามเหลยม โดยสรางฟอรม HTML รบคาฐาน

และสง แลวแทรกโคดในการรบคาและคานวณพนทสามเหลยม

28

top related