Hàm – Phương Thức (Function – Method) Khái Niệm

if (randNum < 0.6)

{ g. g.drawString(“continue-outsideLoop, 25, line * 20); line++;

continue outsideLoop;

}

}

g.drawString(“All done”, 50, line *20);

}


1.2.7. Hàm – Phương thức (Function – Method) Khái niệm

Hàm hay phương thức trong Java chính là các khối lệnh đơn vị thực hiện những

Có thể bạn quan tâm!

Xem toàn bộ 267 trang tài liệu này.

chức năng riêng biệt. Vì trong Java không có một hàm nào là toàn cục mà luôn phải gắn với một đối tượng cụ thể, thể hiện hành vi ứng xử của đối tượng đó. Nên trong ngôn ngữ Java sẽ dùng khái niệm phương thức thay cho khái niệm hàm.

Định nghĩa một phương thức:

Cấu trúc

<private | public | protected><static | abstract | final | native | synchronized><void

| integer | … ><tên phương thức> (<đối số 1>, <đối số 2>, … )

{ <khối lệnh> }

Cách truy xuất

private : phương thức này chỉ được truy xuất bên trong lớp chứa nó. public : có thể truy xuất từ bất kỳ lớp bên ngoài nào.

protected : chỉ các lớp dẫn xuất của lớp chứa phương thức này mới truy xuất được nó.

Cách cập nhật

static: là phương thức có thể được gọi mà không cần đến đối tượng. Nó chỉ được sử dụng đối với các dữ liệu và các phương thức tĩnh khác.

absttract : phương thức đơn giản nhất, không cài đặt gì ở trong lớp khai báo nó. Nhưng phương thức này sẽ được phát triển trong các lớp là dẫn xuất của lớp hiện hành.

final: phương thức loại này được bảo vệ không cho các lớp dẫn xuất khai báo và cài đặt lại. (overriding).

native : là phương thức được viết bằng ngôn ngữ khác Java. Giống như phương thức abstract, phương thức native chỉ có tên gọi và khối lệnh rỗng. Nhưng khác với abstract nó được cài đặt trong các thư viện dùng chung viết bằng ngôn ngữ khác.

synchronized: phương thức loại này đảm bảo dữ liệu sẽ không bị sai lạc khi cùng một lúc hai phương thức truy cập cùng một dữ liệu, thường được sử dụng trong kỹ thuật luồng (thread).

Giá trị trả về

void : là loại phương thức không trả về giá trị nào.

integer, boolean, float, … : kiểu dữ liệu của giá trị mà phương thức trả về.

Gọi một phương thức

Khi muốn một phương thức được thực hiện, ta chỉ cần gọi tên của phương thức và gán các đối số là các giá trị hay các biến có cùng kiểu với các đối số đã được khai báo.

Ví dụ 1.21:

class CallMethod

{ static public int hinhvuong(int x)

{ return (x*x); }

public static void main(String args[])

{ int canh = 0, len = 0; String chuoi = ""; char buff[] = new char[10];

System.out.print("Nhap canh hinh vuong : "); try { len = System.in.read(buff);

String s = String(buff, 0, len-1); chuoi = s;

canh = Integer(chuoi).intValue();

} catch(Exception e) {}

System.out.println("Dien tich hinh vuong: "+hinhvuong(canh));

}

}

1.2.8. Nhập xuất dữ liệu

Việc nhập xuất dữ liệu với java sẽ được đề cập chi tiết trong chương 3 của tài liệu này. Tuy nhiên để ứng dụng lý thuyết của chương vào giải quyết bài toán cũng như cài đặt các thử nghiệm để hiểu sau hơn về lý thuyết thì ta cần phải biết những thủ tục nhập xuất cơ bản với java. Vì vậy trong phần này sẽ trình bày một số cách thức để nhập xuất dữ liệu với java qua cửa số lệnh (console).

Nhập dữ liệu là tác vụ đưa các dữ liệu cụ thể vào cho biến trong chương trình.

Như vậy, phải có một nguồn chứa dữ liệu (bàn phím, tập tin, biến khác).

Xuất dữ liệu là tác vụ đưa trị cụ thể của biến trong chương trình ra một nơi chứa (màn hình hay file hay biến khác).

Nhập/xuất dữ liệu là các phương tiện mà chương trình tương tác với người dùng và thường không thể thiếu trong đa số các ứng dụng. Thường có hai cơ chế nhập xuất dữ liệu có tương tác với người dùng là:

Nhập xuất dữ liệu trong các ứng dụng console application

Nhập/xuất dữ liệu thông qua các phần tử trên GUI. Cách 1 thường dùng trong các ứng dụng chạy theo cơ chế tuần tự còn cách 2 được áp dụng trong các ứng dụng hướng cửa sổ.

Việc nhập/xuất dữ liệu với java sẽ được đề cập chi tiết trong chương 3 của tài liệu này. Trong phần này chỉ trình bày một số cách thức đơn giản để nhập xuất dữ liệu trong các ứng dụng console application.

a) Xuất dữ liệu

Java cung cấp class System mô tả hệ thống trong đó có chứa 2 đối tượng mặc định dùng để nhập và xuất dữ liệu đó là System.in và System.out.

Để xuất dữ liệu ra màn ta hình dùng 2 phương thức của đối tượng System.out đó

là:


System.out.print(<Dữ liệu xuất>)

System.out.println([Dữ liệu xuất]);

Trong đó dữ liệu xuất có thể là : ký tự, số, chuỗi,…print là xuất ra màn hình mà

không xuống dòng, còn println là xuất ra màn hình và con trỏ sẽ tự động xuống dòng.

Ví dụ 1.22: sau đây sẽ xuất ra màn hình một xâu và giá trị của biến

class OutputExam{

public static void main(String args[])

{

int a=10,b=30;

System.out.print(“Tong cua ” + a + “ + ” + b + “ = ” + (a+b));

}

}

Kết quả chạy chương trình là: Tong cua 10 + 30 = 40

b) Nhập dữ liệu

Nhập dữ liệu từ bàn phím khá phức tạp vì với mỗi dữ liệu có cách nhập khác nhau: Ký tự thì chỉ cần 1 phím, số nguyên, số thực có thể nhập với nhiều phím nên các phím nhập cần giữ lại bộ đệm (Buffer), có thể cần kiểm tra phím nhập.

Java cung cấp 2 gói dữ liệu java.io và java.util chứa các lớp cho việc nhập xuất

Gói dữ liệu java.io có các lớp Reader, BufferedReader, InputStream, OutputStrean,…, có chứa các phương thức cho việc nhập dữ liệu (chi tiết sẽ được nghiên cứu ở chương 3).

Ví dụ 1.23: Sau sẽ giúp nhập xuất với các kiểu dữ liệu khác nhau sử dụng các đối tượng của gói java.io

import java.io.*; // file InOutDemo.java class InOutDemo

{ public static void main(String args []) throws java.io.IOException

{


Reader inputChar_Obj = new InputStreamReader(System.in); System.out.print("Input a character:");

char c = (char)inputChar_Obj.read() ; System.out.println(" character read :" + c);

BufferedReader input_Obj= new BufferedReader(new InputStreamReader( System.in));

System.out.print("Input an Integer:");

int n= Integer.valueOf( input_Obj.readLine()).intValue() ; System.out.println(" integer read :" + n); System.out.print("Input a Double:");

double x= Double.valueOf( input_Obj.readLine()).doubleValue() ; System.out.println(" Double read :" + x); System.out.print("Input a string:");

String s = input_Obj.readLine(); System.out.println(" String read :" + s); System.out.print("Input a character:");

int m = System.in.read() ;

System.out.println(" Code of this character :" + m);

}

}


Kết quả thực hiện chương trình Input a character:r

character read :r Input an Integer:123

integer read :123 Input a Double:12.908

Double read :12.908 Input a string:Hello

String read :Hello Input a character:A

Code of this character:65

Gói java.util cũng cung cấp lớp Scanner cũng có các phương thức cho việc nhập xuất các loại dữ liệu như: nextLine, next, nextInt, nextFloat, nextDouble,…,

Ví dụ 1.24:Sau đây sử dụng lớp Scanner để nhập dữ liệu

import java.util.Scanner; public class InOutScan {

public static void main(String[] args) { int tuoi;

String ten;

Scanner nhapDuLieu = new Scanner(System.in); System.out.print("Nhập Tên: ");

ten = nhapDuLieu.nextLine(); System.out.print("Nhập Tuổi: "); tuoi = nhapDuLieu.nextInt();

System.out.println("nTên Vừa Nhập:" + ten+"n"); System.out.println("Tuổi Vừa Nhập: " + tuoi);

}

}

Kết quả chạy chương trình:


Câu hỏi và bài tập chương 1 1 Viết chương trình thực hiện các công việc sau 1

Câu hỏi và bài tập chương 1

1. Viết chương trình thực hiện các công việc sau:

a. Nhập vào 3 số nguyên dương a, b, c

b. Kiểm tra nếu a, b, c, là 3 cạnh của một tam giác thì tính diện tích, chu vi của tam giác tạo thành bởi 3 cạnh a, b, c đó. Ngược lại thông báo không phải 3 cạnh của tam giác.

2. Viết chương trình thực hiện các công việc sau:

a. Nhập vào một số nguyên n

b. Kiểm tra xem có phải n>0 không, nếu đúng thì tính n! và in kết quả ra màn hình, ngược lại thì thông báo ra màn hình n <0.

3.Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím 2 số thực a, b và một ký tự là một phép toán (pheptoan)

b. Kiểm tra phép toán nhập vào có phải là một trong các phép toán: +, -, *, / không. Nếu đúng tính giá trị của biểu thức a pheptoan b (ví dụ phép toán là + thì tính a+b) và hiển thị kết quả ra màn hình ngược lại thông báo lỗi (chú ý yêu cầu kiểm soát cả lỗi chia cho 0).

4.Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím 2 số nguyên là tử số và mẫu số của một phân số.

b. Thực hiện tính toán để tìm phân số tối giản của phân số đã nhập và in kết quả ra màn hình.

5. Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím 2 số nguyên a và b.

b. Tìm nghiệm của phương trình bậc nhất ax+b=0 và in kết quả ra màn hình

6. Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím 3 số nguyên a, b và c.

b. Tìm nghiệm của phương trình bậc hai ax2+bx +c=0 và in kết quả ra màn hình

7. Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím một số nguyên dương n.

b. Tính tổng s = 1/2+1/4+...+1/2*n và in kết quả s ra màn hình.

8. Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím một số nguyên dương n.

b. Tính tổng s = 1+1/3+...+1/(2*n+1) và in kết quả s ra màn hình.

9. Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím một số nguyên dương n.

b. Tính tổng s = 1+1/2-1/3+...+(-1)n*1/n và in kết quả s ra màn hình.

10. Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím một số nguyên n (0<n<100) và một mảng gồm n số nguyên.

b. Hiển thị mảng đã nhập ra màn hình

c. Tìm phần tử lớn nhất trong mảng và in vị trí của phần tử đó ra màn hình.

d. Sắp xếp mảng theo thứ tự tăng dần rồi in mảng sau sắp xếp ra màn hình.

11. Viết chương trình thực hiện các công việc sau:

a. Nhập vào từ bàn phím một số nguyên n (0<n<100) và một mảng gồm n số nguyên.

b. Hiển thị mảng đã nhập ra màn hình

c. Tìm phần tử lớn nhất trong mảng và in vị trí của phần tử đó ra màn hình.

d. Sắp xếp mảng theo thứ tự giảm dần rồi in mảng sau sắp xếp ra màn hình.

CHƯƠNG 2: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA

2.1. Giới thiệu về lập trình hướng đối tượng

Lập trình hướng đối tượng (OOP) là một phương pháp thiết kế và phát triển phần mềm. Những ngôn ngữ OOP không chỉ bao gồm cú pháp và một trình biên dịch (compiler) mà còn có một môi trường phát triển toàn diện. Môi trường này bao gồm một thư viện được thiết kế tốt, thuận lợi cho việc sử dụng các đối tượng.

Đối với một ngôn ngữ lập trình hỗ trợ OOP thì việc triển khai kỹ thuật lập trình hướng đối tượng sẽ dễ dàng hơn. Kỹ thuật lập trình hướng đối tượng cải tiến việc phát triển các hệ thống phần mềm. Kỹ thuật ấy đề cao nhân tố chức năng (functionality) và các mối quan hệ dữ liệu.

OOP là phương thức tư duy mới để giải quyết vấn đề bằng máy tính. Để đạt kết quả, lập trình viên phải nắm vấn đề thành một thực thể quen thuộc với máy tính. Cách tiếp cận hướng đối tượng cung cấp một giải pháp toàn vẹn để giải quyết vấn đề.

Hãy xem xét một tình huống cần được triển khai thành một hệ thống trên máy vi tính: việc mua bán xe hơi. Vấn đề vi tính hóa việc mua bán xe hơi bao gồm những gì?

Những yếu tố rò ràng nhất liên quan đến việc mua bán xe hơi là:

1) Các kiểu xe hơi (model).

2) Nhân viên bán hàng.

3) Khách hàng.

Những hoạt động liên quan đến việc mua bán:

1) Nhân viên bán hàng đưa khách hàng tham quan phòng trưng bày.

2) Khách hàng chọn lựa một xe hơi.

3) Khách hàng đặt hóa đơn.

4) Khách hàng trả tiền.

5) Chiếc xe được trao cho khách hàng.

Mỗi vấn đề được chia ra thành nhiều yếu tố, được gọi là các Đối tượng (Objects) hoặc các Thực thể (Entities). Chẳng hạn như ở ví dụ trên, khách hàng, xe hơi và nhân viên bán hàng là những đối tượng hoặc thực thể.

Lập trình viên luôn luôn cố gắng tạo ra những kịch bản (scenarios) thật quen thuộc với những tình huống thực tiễn. Bước thứ nhất trong phương pháp này là làm cho máy tính liên kết với những đối tượng thế giới thực.

Tuy nhiên, máy tính chỉ là một cỗ máy. Nó chỉ thực hiện những công việc được lập trình mà thôi. Vì thế, trách nhiệm của lập trình viên là cung cấp cho máy tính những thông tin theo cách thức mà nó cũng nhận thức được cùng những thực thể như chúng ta nhận thức.

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 15/07/2022