1 / 56

Chương 3 Core Java

Chương 3 Core Java. Biến ( Variable ). Ví dụ: double salary; int vacationDays; long earthPopulation; boolean done; Form: Variable_type+variable_name+”;”. Qui tắc đặt tên biến. Bắt đầu bằng chữ cái Phải là một chuỗi liên tiếp các chữ, số,kí hiệu Các chữ, số và kí hiệu:

mckile
Download Presentation

Chương 3 Core Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chương 3 Core Java

  2. Biến ( Variable ) • Ví dụ: double salary; int vacationDays; long earthPopulation; boolean done; • Form: Variable_type+variable_name+”;”

  3. Qui tắc đặt tên biến • Bắt đầu bằng chữ cái • Phải là một chuỗi liên tiếp các chữ, số,kí hiệu • Các chữ, số và kí hiệu: - Chữ:‘A’-‘Z’, ‘a’-‘z’,’-‘ ,và các chữ cái Unicode - Số : ’0’-‘9’ • Không sử dụng các kí tự: ‘@’, ‘+’,…

  4. Qui tắc đặt tên biến • Tên biến có thể có độ dài vô hạn • Có thể đặt nhiều biến trên cùng một dòng • Tuy nhiên nên khai báo tường minh: int i, j , k; -> int i; int j; int k;

  5. Khởi tạo giá trị cho biến • Chỉ sử dụng các biến đã được khởi tạo • Thao tác với các biến chưa được khởi tạo sẽ sinh lỗi int vacationDays;System.out.println(vacationDays); // ERROR--variable not initialized • Có thể khởi tạo giá trị ngay sau khi khai báo int vacationDays = 12;

  6. Khởi tạo biến • Có thể khai báo và khởi tạo biến bất cứ đâu trong chương trình double salary =65000.0; System.out.println(salary); int vacationDays = 12; // ok to declare a variable here • Nên khai báo và khởi tạo ở đầu chương trình

  7. Hằng ( Constant) • Khi khai báo và khởi tạo có thêm “final” final double num = 12.5; • Hằng được khai báo một lần • Hằng được sử dụng trong toàn bộ các phương thức của lớp • Khai báo hằng để sử dụng ở các lớp cùng gói Public static final double num = 12.5;

  8. Input and Output • Để đọc dữ liệu vào đơn giản nhất chúng ta sử dụng lớp Scanner • Input : Khai báo Input • Scanner in = new Scanner(System.in); • Chú ý: khai báoimport java.util.*

  9. Reading Input • Chúng ta có câu lệnh vào ra chuẩn như: • System.out.println • Để đọc được input từ consle chúng ta sử dụng lớp Scanner • Để sử dụng các phương thức trong lớp Scanner ta phải tạo ra 1 đối tượng Scanner • Scanner in = new Scanner(System.in);

  10. Chúng ta có các phương thức khác nhau của lớp Scanner • Vd: phương thức nextLine sẽ đọc 1 dòng kí tự khi nhập vào(đọc chuỗi) • System.out.print("What is your name? "); • String name = in.nextLine(); • name sẽ được gán string của dòng nhập vào

  11. Với phương thức nextLine chúng ta bắt cả các ký tự trắng vào • Nếu muốn không bắt khoảng trắng ta dùng phương thức next • String firstName = in.next(); • Tức là firstName chỉ chứa 1 từ

  12. Để đọc vào một số kiểu Integer chúng ta sử dụng phương thức nextInt • System.out.print("How old are you? "); • int age = in.nextInt(); • age nhận giá trị integer

  13. Để sử dụng các phương thức từ lớp Scanner chúng ta phải import gói java.util • Ví dụ 1 chương trình test Input • Ngoài việc sử dụng phương thức Scanner để đọc dữ liệu chúng ta cũng có thể dùng các lớp khác như Reader, BufferReader được mô tả chi tiết trong gói java.io

  14. import java.util.*; • public class inputTest { • public static void main(String[] args) { • Scanner in = new Scanner(System.in); • System.out.print("What your name:"); • String name = in.nextLine(); • System.out.print("How old are you?:"); • int age = in.nextInt(); • System.out.print("Hello,"+ name +".Next year you'll be "+ (age + 1)); • } • }

  15. Chương trình thực hiện sẽ cho ra kết quả • What your name:Minh • How old are you?:22 • Hello,Minh.Next year you'll be 23

  16. Nếu ta sử dụng phương thức hộp thoại thì nó sẽ hiện ra như thế này

  17. Để sử dụng chúng ta phải import gói javax.swing • VD chương trình trên ta sẽ thay bằng cách sử dụng gói này

  18. import javax.swing.*; • public class inputTest { • public static void main(String[] args) { • String name = JOptionPane.showInputDialog("What is your name?"); • String input = JOptionPane.showInputDialog("How old are you?"); • int age = Integer.parseInt(input); • System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1)); • System.exit(0); • } • }

  19. Các phương thức của gói java.util.Scanner • Scanner(InputStream in) • String nextLine() • Đọc dòng tiếp theo vào • String next() • Đọc từ tiếp theo vào

  20. int nextInt() • double nextDouble() • Đọc và chuyển các ký tự sang kiểu Int và float • boolean hasNext() • Kiểm tra xem từ đó đã có trong dữ liệu vào chưa

  21. boolean hasNextInt() • boolean hasNextDouble() • Hàm này kiểm tra xem chuỗi ký tự nhập vào tiếp theo có phải là kiểu Int và float không

  22. Các phương thức của gói javax.swing.JOptionPane • static String showInputDialog(Object message) • Hiện ra bảng hộp thoại cho chúng ta nhập vào

  23. Chúng ta cần in số x ra thì sẽ sử dụng System.out.print(x) • Vd: • double x = 10000.0 / 3.0; • System.out.print(x); • Sẽ in ra kết quả là 3333.3333333333335

  24. Khi chúng ta sử dụng System.out.printf("%8.2f", x); • Có nghĩa là x sẽ in ra có 8 kí tự, trong đó 2 kí tự sau dấu “.” • Kq: 3333.33

  25. Kiểu dữ liệu Trong Java, kiểu dữ liệu được chia thành 2 loại • Các kiểu dữ liệu nguyên thủy (primitive) • Các kiểu dữ liệu tham chiếu (reference)

  26. Dữ liệu nguyên thủy

  27. Dữ liệu nguyên thủy

  28. Kiểu dữ liệu tham chiếu

  29. Các toán tử Java cung cấp nhiều dạng toán tử sau: • Toán tử số học • Toán tử bit • Toán tử quan hệ

  30. Toán tử số học • Bao gồm phép toán 1 ngôi(thứ tự thực hiện từ phải qua trái):+(cộng),-(trừ), phép đổi dấu • Phép toán 2 ngôi (thứ tự thực hiện từ trái qua phải): *(nhân), /(chia),% (chia lấy số dư) • Phép chia nguyên đòi hỏi số chia khác 0 • Phép chia số thực cho 0.0 là INF(dương vô cùng) và -INF(âm vô cùng)

  31. Toán tử tăng dần và giảm dần • Giống như C, C++, Java cũng sử dụng tăng dần và giảm dần toán tử ( n++ hoặc n--) • VD: int n=12; n++; • Có 2 dạng của các kiểu toán tử này: • Tiền tố:Thực hiện phép cộng trước rồi thực hiện tính toán với giá trị mới vừa cộng đc • Hậu tố:thực hiện tính toán giá trị cũ của biến rồi mới cộng

  32. Toán tử quan hệ và Boolean • Kiểm tra mối quan hệ giữa 2 toán hạng, kết quả trả về giá trị boolean, được sử dụng trong cấu trúc điều khiển. Các toán tử: != ,==, >=, <= ,||, && Sử dụng toán tử tam nguyên ?: Biểu thức: Đk? Biểu thức1: Biểu thức2 double a=10.00; Int b=10; Boolean k= a==b; -result: false vì khác kiểu

  33. Toán tử quan hệ và Boolean public class SinhVien { String ten; int tuoi; SinhVien(String name){ten=name;} public static void main(String[] args) { SinhVien s1= new SinhVien("Ha"); SinhVien s2= new SinhVien("Ha"); SinhVien s3=s2; if(s2==s1) System.out.println("true"); else System.out.println("false"); if(s2==s3) System.out.println("true"); else System.out.println("false"); } }

  34. Toán tử BIT • Cho phép ta thao tác trực tiếp trên từng bit riêng biệt trong các kiểu dliệu nguyên thủy

  35. Hàm và hằng số toán học Lớp Math bao gồm các loại hàm toán học mà ta thường xuyên sử dụng. VD: Hàm lượng giác: Math.sin, Math.cos, Math.tan, Math.atan, Math.atan2 Hàm lũy thừa và log: Math.exp, Math.log Hằng số: Math.PI(3.141592654), Math.E(2.718281828) double x = 4; double y = Math.sqrt(x); System.out.println(y); -> result:2

  36. Ép kiểu Thực hiện cộng 1 biến integer Với 1 biến float --làm ntn? Ép kiểu: chuyển đổi kiểu dữ liệu này sang kiểu khác Chú ý:nếu ép kiểu ngoài phạm vi của kiểu đích, kết quả sẽ là 1 số bị cắt xén có giá trị khác Ex: (byte) 300 là 44 kiểu boolean ko chuyển sang kiểu dliệu khác double x = 9.997; int nx = (int) x; - result: 9 double x = 9.997; int nx = (int) Math.round(x); result:10

  37. Sơ đồ chuyển đổi giữa các kiểu số

  38. Dấu ngoặc đơn và thứ bậc toán tư • Nếu ko có dấu ngoặc đơn, các phép toán được thực hiện theo thứ bậc • Các toán tử ở cùng cấp độ được thực hiện từ trái sang phải hoăc từ phải qua trái như trong bảng sau • Để thay đổi thứ tự thực hiện thì ta phải dùng dấu ngoặc đơn()

  39. Kiểu liệt kê • Bạn có thể tự định nghĩa kiểu liệt kê của bạn tron 1 số trường hợp • VD: size quần áo(S,M,L,X) enum Size{Small, Medium, Large, Extra-Large}; Size s= Size.Small;

  40. STRING • String là 1 chuỗi các kí tự char • String được coi như là 1 lớp với các phương thức đi kèm, khai báo 1 String được coi như là khai báo 1 đối tượng • Ví dụ: ( 2 kiểu khai báo) • String kyo=“KYO-The Best Samurai”; • String kyo=new String(“KYO-The Best Samura”);

  41. CODE FOINTS AND CODE UNIT • Code points: Là vị trí kí tự trong bảng UTD-16 • Ví dụ: • String kyo=“KYO-The Best Samurai”; • int cp = kyo.codePointAt(5); => cp=104 (kí tự ‘h’) • Code Unit: Là nội dung của kí tự • Ví dụ: • String kyo=“KYO-The Best Samurai”; • char ch = kyo.charAt(1) =>ch=‘Y’

  42. SUBSTRINGS • Substring: phương thức để tách 1 xâu thuộc xâu gốc: • OriginalString.Substring(x,y); -> xâu trích ra từ vị trí thứ x->y trong xâu gốc OriginalString • Ví dụ: • String kyo=new String("KYO-The Best Samura"); • String k=kyo.substring(0,4); => Result: KYO-

  43. CHỉNH SửA 1 XÂU • Ví dụ: • Cách sử dụng như trên sẽ thay • String kyo=new String("KYO-The Best Samura"); • String kyo=kyo.substring(0,3) + "khua khua"; • =>Result : “KYOkhua khua”

  44. KIểM TRA XEM 2 XÂU CÓ BằNG NHAU HAY KHÔNG? • Phương thức: • Bloolean String.equals(String) • Chú ý: không dùng kiểu so sánh nội dung xâu “==“ đây chỉ so sánh tham chiếu

  45. INPUT VÀ OUTPUT • Input : Khai báo Input • Scanner in = new Scanner(System.in); • Chú ý: khai báo import java.util.*

  46. ARRAY Định nghĩa: Mảng là 1 cấu trúc bao gồm tập hợp các giá trị cùng kiểu. Ta có thể truy nhập vào từng giá trị riêng lẻ bằng chỉ mục số nguyên. Giống C, mảng được bắt đầu từ vị trí 0

  47. VÒNG LặP “FOR EACH” • Ta có thể dùng phương pháp sau để duyệt từng phần tử của mảng: • for (int element : a) { System.out.println(element); ... } => Không cần biết độ dài của mảng, tiện lợi hơn so với phương pháp duyệt truyền thống

  48. SAO CHÉP MảNG • Sao chép mảng: • int[] luckyNumbers = smallPrimes; • Chú ý: khi thay đổi giá trị của 1 trong 2 mảng thì giá trị của mảng còn lại cũng thay đổi theo. Vì cả 2 đầu tham chiếu đến 1 vùng nhớ lưu giá trị của mảng. • Phương pháp khác để chỉ sao chép giá trị của mảng không thôi là dung phương thức: • System.arraycopy(from, fromIndex, to, toIndex, count);

  49. Sắp xếp mảng và Binary Search • Phương thức sắp xếp: • Arrays.sort(a) //Phương thức này sử dụng thuật toán Quick sort để sắp xếp. • Phương thức binary search: • static int binarySearch(type[] a, type v) (search v trong a)

More Related