K IN TRÚC CH NG TRÌNH XÂY D NG TRÊN JAVA

Một phần của tài liệu Lập trình hướng đối tượng Java PTIT (Trang 33)

D ng c b n c a m t t p tin mã ngu n Java có c u trúc nh sau :

package packageName; // Khai báo tên gói, n u có

import java.awt.*; // Khai báo tên th vi n s n có, n u c n dùng

class className // Khai báo tên l p {

/* ây là dòng ghi chú */

int var; // Khai báo bi n

public void methodName() // Khai báo tên ph ng th c { /* Ph n thân c a ph ng th c */ statement (s); // L nh th c hi n } } M t t p mã ngu n Java có th có ba ph n chính:

• Ph n khai báo tên gói (kh i) b ng t khoá package. • Ph n khai báo th vi n tham kh o b ng t khoá import. • Ph n khai báo n i dung l p b ng t khoá class.

Khai báo Package

Package đ c dùng đ đóng gói các l p trong ch ng trình l i v i nhau thành m t kh i. ây là m t cách h u hi u đ l u tr các l p g n gi ng nhau ho c có cùng m t module thành m t kh i th ng nh t.

Cú pháp khai báo tên gói b ng t khoá package: package <Tên gói>;

đ t tên package trong ch ng trình, ng i ta có th ti n hành nh đ t tên th m c trên đa. Ngh a là b t d u b ng tên có ph m vi l n, cho đ n các tên có ph m vi nh , cu i cùng là tên các gói tr c ti p ch a các l p. Ph m vi đ t tên gói, trên th c t , đ c ti n hành theo th t ph m vi l n đ n nh nh sau:

• Tên t ch c • Tên công ty • Tên d án

• Tên modul trong d án

• Tên các ch c n ng trong modul. Ví d :

• Tên mi n c a công ty là syz.com

• Tên d án là pro

• D án có hai modul là mod1mod2

• Modul mod1 có hai ch c n ng là k t n i c s d li u connection và bi u di n d li u

bean.

• Modul mod2 có hai ch c n ng là giao ti p interface và x lí yêu c u process. Khi đó, c u trúc kh i c a d án đ c mô t nh hình 3.3

Khi đó, trong ch c n ng bean có l p User, thì ph i khai báo tên kh i trong l p này nh sau: package com.syz.pro.mod1.bean;

u đi m c a package:

• Cho phép nhóm các l p vào v i nhau thành các đ n v nh h n. Vi c thao tác trên các đ n v kh i s g n h n thao tác trên m t t p các l p.

• Tránh vi c xung đ t khi đ t tên l p. Vì các l p không cùng package thì có th đ t tên trùng nhau. Khi s l ng l p c a ch ng trình quá l n ta có th tránh ph i đ t tên khác nhau cho các l p b ng cách đ t chúng vào các package khác nhau.

• Cho phép b o v các l p. Khi ch ng trình l n, vi c chia nh ch ng trình thành các package s thu n l i h n cho vi c qu n lí và phát tri n.

• Tên gói còn đ c dùng đ đnh danh l p trong ng d ng.

L u ý:

• Dòng l nh khai báo tên kh i ph i đ c đ t đ u tiên trong t n tin mã ch ng trình.

com

syz

pro

mod1 mod2

connection bean interface process

• Ch đ c khai báo t i đa m t tên kh i đ i v i m i t p mã ngu n Java.

• Các t p tin c a các l p n m cùng gói ng d ng ph i đ c l u trong cùng m t th m c (tên th m c là tên kh i) theo c u trúc kh i c a d án.

• Tên kh i nên đ t theo ch th ng vì tên kh i s là tên th m c t ng ng trong đa, tránh nh m l n v i tên các t p tin là tên các l p c a ch ng trình.

• Khi không phân chia ch ng trình thành kh i (ch ng trình đ n gi n), không c n thi t ph i khai báo tên kh i đ u ch ng trình.

Khai báo th vi n

Khai báo th vi n đ ch ra nh ng th vi n đã đ c đnh ngh a s n mà ch ng trình s tham kh o t i. Cú pháp khai báo th vi n v i t khoá import nh sau:

import <Tên th vi n>;

Java chu n cung c p m t s th vi n nh sau:

java.lang: cung c p các hàm thao tác trên các ki u d li u c b n, x lí l i và ngo i l , x lí vào ra trên các thi t b chu n nh bàn phím và màn hình.

java.applet: cung c p các hàm cho xây d ng các applet (s trình bày trong Ch ng 6). • java.awt: cung c p các hàm cho xây d ng các ng d ng đ ho v i các thành ph n giao

di n multi media (s trình bày chi ti t trong Ch ng 6).

java.io: cung c p các hàm x lí vào/ra trên các thiêt b chu n và các thi t b ngo i vi. • java.util: cung c p các hàm ti n ích trong x lí liên quan đ n các ki u d li u có c u trúc

nh Date, Stack, Vector.

Ví d , n u trong ch ng trình c n đ n các thao tác chuy n ki u đ i d li u t ng minh (t ki u string sang ki u int), thì ta s ph i tham kh o th vi n java.lang:

import java.lang.*;

L u ý:

• N u mu n khai báo tham kh o nhi u th vi n, ph i khai báo tham kh o m i th vi n v i m t t khoá import.

• N u ch tham kh o m t vài l p trong m t th vi n, nên ch rõ tham kh o l p nào, thay vì ph i khai báo tham kh o c gói (b ng kí hi u “*”) vì tham kh o c gói s t ng kích c t p tin class sau khi biên d ch.

• N u không tham kh o th vi n nào, không c n thi t ph i khai báo các tham kh o v i t khoá import.

Khai báo l p

Ph n th ba là ph n khai báo l p và n i dung c a l p, ph n này luôn b t bu c ph i có đ i v i m t t p mã ngu n Java:

• Khai báo tên l p v i t khoá class. • Khái báo các thu c tính c a l p.

• Khai báo các ph ng th c c a l p

Vi c khai báo l p v i các thu c tính và ph ng th c s đ c trình bày chi ti t trong ch ng 4.

3.2.2 Ch ng trình Java đ u tiên

Ch ng trình sau đây cho phép hi n th m t thông đi p (N m trong t p mã ngu n First.java):

Ch ng trình 3.1

package vidu.chuong3;

// ây là ch ng trình “First.java” class First

{

public static void main(String args[]) {

System.out.println(“Hello World”); }

}

biên d ch mã ngu n, ta s d ng trình biên d ch javac. Trình biên d ch xác đnh tên c a file ngu n t i dòng l nh nh mô t d i đây (gi s đang th m c ch a package vidu và bi n môi tr ng PATH đã đ c thi t l p đúng qui cách):

>javac vidu/chuong3/First.java

Trình d ch javac t o ra file First.class ch a các mã “bytecodes”. Nh ng mã này ch a th th c thi

đ c. ch ng trình th c thi đ c ta c n dùng trình thông d ch “java interpreter” v i l nh

java. L nh đ c th c hi n nh sau:

>javac vidu.chuong3.First

K t qu s hi n th trên màn hình nh sau:

Hello World

3.2.3 Phân tích ch ng trình đ u tiên

Trong Java, t t c mã l nh đ u ph i đ c t ch c vào trong m t l p nh t đnh. Do đó, m i t p tin mã ngu n xác đnh ít nh t m t l p Java và tên t p tin ph i trùng v i tên l p. Java phân bi t ch hoa và ch th ng, cho nên tên t p tin c a ch ng trình trên ph i trùng v i tên l p: First.java.

package vidu.chuong3;

ây là dòng khai báo tên kh i c a ch ng trình, vì tên kh i c a ch ng trình đ c đ t theo hai m c:

• M c th nh t là ki u bài: ví d (vidu) ho c bài t p (baitap).

Vì đây là ví d , n m ch ng 3 nên thu c vào gói vidu.chuong3. ng th i, t p tin First.java s n m trong th m c: ../vidu/chuong3/.

Ch ng trình này không tham kh o th vi n nào nên không c n l nh import nào.

// ây là ch ng trình “First.java”

Ký hi u “// ” dùng đ chú thích dòng l nh. Trình biên d ch s b qua dòng chú thích này. Java h tr hai lo i chú thích:

• Lo i chú thích trên m t dòng, dùng “//”. Trình biên d ch s b qua n i dung b t đ u t kí hi u “//” cho đ n h t dòng l nh ch a nó.

• Lo i chú thích trên nhi u dòng có th b t đ u v i “/*” và k t thúc v i “*/”. Trình biên d ch s b qua n i dung n m gi a hai kí hi u này.

Dòng k ti p khai báo l p có tên First: B t đ u v i t khoá class, k đ n là tên l p

class First

M t đnh ngh a l p n m tr n v n gi a hai ngo c móc m “{“ và đóng “}”. Các ngo c này đánh d u b t đ u và k t thúc m t kh i l nh.

public static void main(String args[ ])

ây là ph ng th c chính, t đây ch ng trình b t đ u vi c th c thi c a mình. T t c các ng d ng java đ u s d ng m t ph ng th c main này.

• T khoá public là m t ch đnh truy xu t. Nó cho bi t thành viên c a l p có th đ c truy xu t t b t c đâu trong ch ng trình.

• T khoá static cho phép main đ c g i t i mà không c n t o ra m t th hi n (instance) c a l p. Nó không ph thu c vào các th hi n c a l p đ c t o ra.

• T khoá void thông báo cho máy tính bi t r ng ph ng th c s không tr l i b t c giá tr nào khi th c thi ch ng trình.

String args[] là tham s dùng trong ph ng th c main. Khi không có m t thông tin nào

đ c chuy n vào main, ph ng th c đ c th c hi n v i các d li u r ng – không có gì trong d u ngo c đ n.

System.out.println(“Hello World”); Dòng l nh này hi n th chu i “Hello World” trên màn hình. L nh println() cho phép hi n th chu i đ c truy n vào lên màn hình.

Truy n đ i s trong dòng l nh

Ch ng trình 3.2 minh ho các tham s (argument) c a các dòng l nh đ c ti p nh n nh th nào trong ph ng th c main.

Ch ng trình 3.2

package vidu.chuong3; class PassArgument{

public static void main(String args[]) {

System.out.println(“This is what the main method received”); System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]); } } Biên d ch ch ng trình: >javac PassArgumet.java Th c thi ch ng trình v i dòng l nh: >java PassArgument A 123 B1 S thu đ c trên màn hình k t qu :

This is what the main method received A

123 B1

3.3 CÁC KI U D LI U VÀ TOÁN T C B N TRÊN JAVA 3.3.1 Khai báo bi n 3.3.1 Khai báo bi n

Cú pháp khai báo bi n:

dataType varName;

Trong đó, dataType là ki u d li u c a bi n, varName là tên bi n. Trong Java, vi c đ t tên bi n ph i tuân theo các quy t c sau:

• Ch đ c b t đ u b ng m t kí t (ch ), ho c m t d u g ch d i , ho c m t kí t dollar • Không có kho ng tr ng gi a tên

• B t đ u t kí t th hai, có th dùng các kí t (ch ), ch s , d u dollar, d u g ch d i • Không trùng v i các t khoá

Ph m vi ho t đ ng c a bi n

M t bi n có ph m vi ho t đ ng trong toàn b kh i l nh mà nó đ c khai báo. M t kh i l nh b t

đ u b ng d u “{” và k t thúc b ng d u “}”:

• N u bi n đ c khai báo trong m t c u trúc l nh đi u khi n, bi n đó có ph m vi ho t đ ng trong kh i l nh t ng ng.

• N u bi n đ c khai báo trong m t ph ng th c (Không n m trong kh i l nh nào), bi n đó có ph m vi ho t đ ng trong ph ng th c t ng ng: có th đ c s d ng trong t t c các kh i l nh c a ph ng th c.

• N u bi n đ c khai báo trong m t l p (Không n m trong trong m t ph ng th c nào), bi n đó có ph m vi ho t đ ng trong toàn b l p t ng ng: có th đ c s d ng trong t t c các ph ng th c c a l p.

3.3.2 Ki u d li u

Trong Java, ki u d li u đ c chia thành hai lo i: • Các ki u d li u c b n

• Các ki u d li u đ i t ng

Ki u d li u c b n

Java cung c p các ki u d li u c b n nh sau:

byte: Dùng đ l u d li u ki u s nguyên có kích th c m t byte (8 bít). Ph m vi bi u di n giá tr t -128 đ n 127. Giá tr m c đnh là 0.

char: Dùng đ l u d li u ki u kí t ho c s nguyên không âm có kích th c 2 byte (16 bít). Ph m vi bi u di n giá tr t 0 đ n u\ffff. Giá tr m c đnh là 0.

boolean: Dùng đ l u d li u ch có hai tr ng thái đúng ho c sai (đ l n ch có 1 bít). Ph m vi bi u di n giá tr là {“True”, “False”}. Giá tr m c đnh là False.

short: Dùng đ l u d li u có ki u s nguyên, kích c 2 byte (16 bít). Ph m vi bi u di n giá tr t - 32768 đ n 32767. Giá tr m c đnh là 0.

int: Dùng đ l u d li u có ki u s nguyên, kích c 4 byte (32 bít). Ph m vi bi u di n giá tr t -2,147,483,648 đ n 2,147,483,647. Giá tr m c đnh là 0.

float: Dùng đ l u d li u có ki u s th c, kích c 4 byte (32 bít). Giá tr m c đnh là 0.0f.

double: Dùng đ l u d li u có ki u s th c có kích th c lên đ n 8 byte. Giá tr m c đnh là 0.00d

long: Dùng đ l u d li u có ki u s nguyên có kích th c lên đ n 8 byte. Giá tr m c đnh là 0l.

Ki u d li u đ i t ng

Trong Java, có 3 ki u d li u đ i t ng:

class: D li u ki u l p đ i t ng do ng i dùng đnh ngh a. Ch a t p các thu c tính và ph ng th c.

interface: D li u ki u l p giao ti p do ng i dùng đnh ngh a. Ch a các ph ng th c c a giao ti p.

Ép ki u (Type casting)

Ví d , nhi u khi g p tình hu ng c n c ng m t bi n có d ng integer v i m t bi n có d ng float.

x lý tình hu ng này, Java s d ng tính n ng ép ki u (type casting) c a C/C++. o n mã sau

đây th c hi n phép c ng m t giá tr d u ph y đ ng (float) v i m t giá tr nguyên (integer). float c = 35.8f;

int b = (int)c + 1;

u tiên giá tr d u ph y đ ng c đ c đ i thành giá tr nguyên 35. Sau đó nó đ c c ng v i 1 và k t qu là giá tr 36 đ c l u vào b.

Trong Java có hai lo i ép ki u d li u:

• N i r ng (widening): quá trình làm tròn s t ki u d li u có kích th c nh h n sang ki u có kích th c l n h n. Ki u bi n đ i này không làm m t thông tin. Ví d chuy n t

int sang float. Chuy n ki u lo i này có th đ c th c hi n ng m đnh b i trình biên d ch. • Thu h p (narrowwing): quá trình làm tròn s t ki u d li u có kích th c l n h n sang

ki u có kích th c nh h n. Ki u bi n đ i này có th làm m t thông tin nh ví d trên. Chuy n ki u lo i này không th th c hi n ng m đnh b i trình biên d ch, ng i dùng ph i th c hi n chuy n ki u t ng minh.

3.3.3 Các toán t

Java cung c p các d ng toán t sau: • Toán t s h c • Toán t bit • Toán t quan h • Toán t logic • Toán t đi u ki n • Toán t gán Toán t s h c

Các toán h ng c a các toán t s h c ph i d ng s . Các toán h ng ki u boolean không s d ng

đ c, song các toán h ng ký t cho phép s d ng lo i toán t này. M t vài ki u toán t đ c li t kê trong b ng d i đây.

Toán t Mô t

Một phần của tài liệu Lập trình hướng đối tượng Java PTIT (Trang 33)

Tải bản đầy đủ (PDF)

(173 trang)