1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ lập trình java

61 313 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 456,98 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các câu lệnh nhập xuất cơ bản• Cách 1: Dùng BufferReader dùng phương thức read hoặc readLine, có ngoại lệ IOException – Ta phải khai báo một BufferReader – Dữ liệu nhập vào luôn luôn là

Trang 1

Người biên soạn: Hồ Quang Thái (MSCB: 2299)

BM Công Nghệ Phần Mềm, Khoa CNTT&TT

Email: hqthai@cit.ctu.edu.vn

Số tín chỉ: 2 (20 LT + 20TH)

Trang 2

Ngôn ngữ Lập trình JAVA

Trang 5

/**

* I think this class is possibly the most amazing thing you will

* ever see Let me tell you about my own personal vision and

* motivation in creating it.

* <p>

* It all began when I was a small child, growing up on the

* streets of Idaho Potatoes were the rage, and life was good

Trang 6

• Thông tin Javadoc sẽ được hiển thị trong phần gợi ý khi viết code

Trang 7

• Bảng các tag @ có trong Javadoc

@see Tên lớp liên kết mô tả cho phần

See also (Xem thêm)

Class, method, or variable

@author Tên tác giả Class

@version Chuỗi phiên bản Class

@param Tên tham số và mô tả Method

@return Mô tả giá trị trả về Method

@exception Tên ngoại lệ và mô tả Method

@deprecated Cho biết một mục đã bị lỗi thời

hoặc có một mục khác thay thế

Class, method, or variable

@since Ghi chú phiên bản API khi mục này

được thêm vào

Variable

Trang 8

System.out.print(“Hello World !!”);

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

• Ngoài ra cũng có thể sử dụng System.out printf() tương tự như C và C++

Trang 10

Các câu lệnh nhập xuất cơ bản

• Có 2 phương pháp để nhập giá trị từ bàn phím:

Trang 11

Các câu lệnh nhập xuất cơ bản

• Cách 1: Dùng BufferReader dùng phương thức

read() hoặc readLine(), có ngoại lệ IOException

– Ta phải khai báo một BufferReader

– Dữ liệu nhập vào luôn luôn là chuỗi ký tự, ta phải chuyển đổi đến kiểu cần thiết

// Dòng này không cần thiết

// System.in là dòng dòng dữ liệu từ bàn phím

InputStreamReader rdr = new InputStreamReader(System.in);

// Dùng InputStreamReader là dữ liệu từ bàn phím

BufferedReader reader = new BufferedReader(rdr);

// Lấy dữ liệu nhập, luôn luôn là chuỗi

String in = reader.readLine();

// transfer that String to an integer

int number = Integer.parseInt(in);

Trang 12

Các câu lệnh nhập xuất cơ bản

// much easier declaration

Scanner scan = new Scanner(System.in);

int number = scan.nextInt();

Trang 14

• Tên không được trùng với từ khóa.

count là 2 tên khác nhau.

Trang 17

• Java chia kiểu dữ liệu ra làm 2 loại: Kiểu sơ cấp chuẩn (Primitive

Types) kiểu tham chiếu (Reference Types)

Chuyên đề ngôn ngữ lập trình 2 - Java

Trang 18

Các kiểu tham chiếu

Object: là kiểu cơ sở của mọi kiểu khác.

String: là kiểu tham chiếu có sẵn cho phép các biến kiểu này có thể lưu trữ dữ liệu chuỗi ký tự.

Class: là kiểu do người lập trình định nghĩa

Interface: kiểu do người lập trình định nghĩa

Array: kiểu do người lập trình định nghĩa cho phép các biến kiểu này chứa các phần tử là

những giá trị cùng kiểu

Trang 19

KIỂU DỮ LIỆU

Kiểu sơ cấp chuẩn (primitive types):

Kiểu tham chiếu (Reference Types): Là kiểu do người dung tự định nghĩa.

Chuyên đề ngôn ngữ lập trình 2 - Java

Trang 20

Kiểu số nguyên

int myHex = 0xF; // hexadecimal (base 16)

int myOct = 07; // octal (base 8)

Trang 21

Kiểu số thực

• Lưu trữ số thực có dấu chấm động

• Chuyển đổi kiểu

• Số nguyên viết dưới dạng số mũ khoa học

• Chú ý rằng trong Java, các giá trị thực đều được lưu thành

double Nếu muốn gán 1 giá trị thực cho kiểu float, cần

Trang 22

CHAR, BOOL, PHẠM VI BIẾN

• Kiểu Char mang ký tự giá trị Unicode

• Kiểu Bool

• Phạm vi biến, quy định biến trong và biến

ngoài được quy định như C và C++

char c = '3'; // Unicode char

char myChar = '\u0000'; // \u0000 to \uFFFF

bool b = true; // bool value

Trang 25

Toán tử tăng giảm

• Toán tử dùng để tăng hoặc giảm 1 đơn vị

• Cả 2 toán tử này đều có thể sử dụng trước và sau một biến

Trang 26

Toán tử so sánh

• Toán tử luôn trả về giá trị đúng hoặc sai của một biểu thức

• Toán tử logic, là toán tử kết hợp &&||

bool x = (2 == 3); // false // equal to

x = (2 != 3); // true // not equal to

x = (2 > 3); // false // greater than

x = (2 < 3); // true // less than

x = (2 >= 3); // false // greater than or equal to

x = (2 <= 3); // true // less than or equal to

bool x = (true && false); // false // logical and

x = (true || false); // true // logical or

x = !(true); // false // logical not

Trang 28

Thứ tự ưu tiên của các toán tử

Trang 29

• Khai báo và khởi tạo biến string

• Để nối chuỗi, chúng ta dung toán tử + hoặc +=

• Dùng ‘\n’ để xuống dòng

String a = "Hello" ; String a = new String( "Hello" );

String b = a + “ World” ; // Hello World

a += “ World” ; // Hello World

String c

= “Hello ” +

“World”;

string c = “Hello\nWorld”;

Trang 30

• Dưới đây là bảng các ký tự đặt biệt

\uFFFFF Ký tự unicode

Trang 31

String b = a.replace( “i”,“o”); // Strong

b = “My ” concat(a); // My String

b = a.substring(0, 3); // Str

b = a.toUpperCase(); // STRING

int i = a.length(); // 6

StringBuffer sb = new StringBuffer( "Hello" );

sb.Append(“ World”); // Hello World

sb.Remove(0, 5); // World

sb.Insert(0, “Bye”); // Bye World

string s = sb.ToString(); // Bye World

Trang 32

• Mảng là 1 tập hợp các phần tử có cùng kiểu dữ liệu, mỗi phần tử có một vị trí xác định.

Trang 33

Khai báo và khởi tạo mảng

• Do mảng thuộc kiểu tham chiếu nên ta cần khai báo và khởi tạo đối tượng mảng

• Khai báo:

• Khởi tạo đối tượng mảng:

• Truy xuất giá trị:

• Ta cũng có thể vừa khai báo vừa gán giá trị

Trang 35

• Trong Array thông thường thì số lượng phần tử phải được xác định trước ArrayList ra đời để giải quyết vấn đề này ArrayList hỗ trợ sắp xếp và các hàm tiện

ích khác.

• Dữ liệu thành viên trong ArrayList phải là kiểu tham

chiếu

// Khai báo và khởi tạo một ArrayList

java.util.ArrayList a = new java.util.ArrayList();

a.add( "Hi" ); // Thêm một phần tử

a.set(0, "Hello" ); // Thay đổi phần từ đầu tiên

a.remove(0); // Xóa phần tử đầu tiên

a.add("Hello World"); // Thêm lại một phần tử

String s = (String)a.get(0); // Hello World

Trang 36

• Trong Array thông thường thì số lượng phần

tử phải được xác định trước ArrayList ra đời

để giải quyết vấn đề này ArrayList hỗ trợ sắp

xếp và các hàm tiện ích khác

• Dữ liệu thành viên trong ArrayList phải là kiểu

tham chiếu// Khai báo và khởi tạo một ArrayList

ArrayList a = new ArrayList();

a.Add( "Hi" ); // Thêm một phần tử

a.Insert(0, "Hello" ); // Thay đổi phần từ đầu tiên

a.RemoveAt(0); // Xóa phần tử đầu tiên

a.Add("Hello World"); // Thêm lại một phần tử

String s = a[0]; // Hello World

Trang 37

• Sử dụng else if khi muốn tiếp tục xét một

trường hợp với biểu thức điều kiện khác

• Sử dụng else để xét những trường còn lại

Trang 39

Câu lệnh switch

• Câu lệnh switch kiểm tra trường hợp điều

kiện dựa trên một biến kiểu số nguyên hoặc

chuỗi trong một nhóm các nhãn case

int x = new java.util.Random().nextInt(3);

switch (x)

{

case 0: System.out.print(x + " is 0"); break;

case 1: System.out.print(x + " is 1"); break;

default: System.out.print(x + " is 2"); break;

}

Trang 41

Vòng lặp while

• Vòng lặp while thực thi các dòng lệnh trong

{ } khi điều kiện đúng

Trang 44

Vòng lặp for each

• Cho phép đi qua 1 tập hợp các phần tử

• Chú ý là các phần tử phải là read-only và dòng lặp foreach không thể thay đổi các thành phần

Trang 45

Câu lệnh break và continue

• break: Cho phép thoát khỏi vòng lặp không

cần kiểm tra điều kiện của vòng lặp

• continue: cho phép kết thúc lần lặp hiện hành

và chuẩn bị bắt đầu lần lặp kế tiếp

• Tuy nhiên ta có thể sử dụng với nhãn:

myLoop : for (int i = 0, j = 0; i < 10; i++)

{

while (++j < 10)

{

break myLoop; // end for

continue myLoop; // start next for

} }

Trang 46

Khối lệnh đã được đặt nhãn

• Là khối lệnh có đặt nhãn dùng để sử dụng

chung với break

validation: {

if(true)

break validation; }

Trang 47

Phương thức

• Tất cả các phương thức phải nằm trong một

lớp, Java không có phương thức toàn cục bên

ngoài

• Từ khóa void được sử dụng cho những

phương thức không trả về giá trị nào

class MyApp {

void MyPrint(){

System.Console.Write("Hello World");

} }

Trang 48

Gọi phương thức

• Để gọi một phương thức, cần có một thể hiện

(instance) của lớp MyApp bằng từ khóa new

• Dùng dấu chấm (.) phía sau thể hiện để gọi

phương thức của lớp đối tượng đó

class MyApp {

public static void Main(){

MyApp m = new MyApp();

m.MyPrint(); // Hello World

}

void MyPrint(){

System.Console.Write("Hello World");

} }

Trang 49

Tham số

• Tham số truyền vào phương thức có kiểu dữ liệu xác định, các tham số cách nhau bởi dấu phẩy (,)

public void MyPrint(string s1, string s2)

MyApp m = new MyApp();

m.MyPrint("Hello", " World"); // Hello World

}

Trang 50

• Với kiểu tham chiếu (lớp, giao tiếp và mảng)

nó sẽ sao chép địa chỉ bộ nhớ truyền vào

phương thức

Trang 51

Truyền tham số

public static void main(String[] args)

{

int x = 0; // Kiểu dữ liệu sơ cấp

m.set(x); // Truyền giá trị

System.out.print(x); // 0

int[] y = {0}; // Kiểu tham chiếu

m.set(y); // Truyền địa chỉ

Trang 52

Lệnh return

• Một phương thức có thể trả lại một giá trị.

• Từ khóa return sẽ trả lại giá trị tương ứng với kiểu

public static void Main(){

MyApp m = new MyApp();

Trang 53

Kiến trúc chương trình Java

Dạng cơ bản của một tập tin 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 nếu có

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

}

Trang 54

Kiến trúc chương trình Java

Một tập tin 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

Trang 55

Kiến trúc chương trình Java

Phần 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.

• Cú pháp khai báo tên gói bằng từ khoá package:

package <Tên gói>;

• 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 34

 Tên modul trong dự án

 Tên các chức năng trong module.

Trang 56

Kiến trúc chương trình Java

Ví dụ về Package:

Trang 57

Kiến trúc chương trình Java

Ư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

• 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

Trang 58

Kiến trúc chương trình Java

Lưu ý khi sử dụng package:

• Dòng lệnh khai báo tên khối phải được đặt đầu tiên trong tập tin mã chương trình

• 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.

Trang 59

Kiến trúc chương trình Java

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:

• Java chuẩn cung cấp một số thư viện như sau:

và ngoại lệ, xử lí vào ra trên các thiết bị chuẩn

liệu có cấu trúc như Date, Stack, Vector

Trang 60

Kiến trúc chương trình Java

Lưu ý khi khai báo thư viện:

• Nếu muốn khai báo tham khảo nhiều thư viện, phải khai báo

• 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

• 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.

• Ta cũng có thể chỉ import các giá trị tĩnh trong lớp tham chiếu bằng cách import static (sẽ nói về từ khóa static trong chương

sau)

Trang 61

Kiến trúc chương trình Java

Khai báo lớp:

• 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 tin 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.

Ngày đăng: 21/10/2014, 22:06

TỪ KHÓA LIÊN QUAN

w