1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Session02 cac thanh phan co ban

21 60 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 21
Dung lượng 1,88 MB

Nội dung

2/23/2018 Nội dung • • • • • • • • • • • CÔNG NGHỆ JAVA CH2 CÁC THÀNH PHẦN CƠ BẢN Giảng viên: ThS Lê Nhật Tùng www.lenhattung.com 2/23/2018 http://lenhattung.com Chú thích (1) Chú thích Khối lệnh câu lệnh Tập kí tự dùng Java Từ khóa tên Kiểu liệu Hằng Biến Chuyển đổi kiểu liệu Định dạng nhập xuất Biểu thức toán tử Các câu lệnh điều khiển 2/23/2018 http://lenhattung.com Chú thích (2) – Chú thích javadoc: • Chú thích dòng: bắt đầu dấu // • dùng để tài liệu hóa lớp public hay protected • Bắt đầu /** • Kết thúc */ • Chú thích nhiều dòng: – bắt đầu /* – kết thúc */ 2/23/2018 http://lenhattung.com 2/23/2018 http://lenhattung.com 2/23/2018 Chú thích (3) Bắt đầu /* Kết thúc */ // /** 2/23/2018 */ Câu lệnh & khối lệnh (1) • Một câu lệnh java kết thúc dấu chấm phẩy (;) Mục đích – Ví dụ: Đoạn code bị giới hạn phần ghi Ghi dòng, trình biên dịch bỏ qua từ // đến cuối dòng private void timgiatriXmax(Integer begin, Integer i, List list) { double xmax = list.get(begin).getX(); int index = begin; for (int j = begin + 1; j = xmax) { xmax = list.get(j).getX(); index = j; } } this.listdiemchot.add(list.get(index)); Ghi dành cho javadoc, trình biên dịch bỏ qua http://lenhattung.com } 2/23/2018 Câu lệnh & khối lệnh (2) Tên • Các câu lệnh đơn nối lại với tạo thành khối lệnh thuộc lớp • Bộ lệnh Java không giới hạn cặp dấu ngoặc { } • Khối lệnh đặt khối lệnh khác • Qui tắc đặt tên: http://lenhattung.com – Tên bắt đầu kí tự, dấu: $, _ – Tên bắt đầu số – Không trùng với từ khóa – Tên khơng chứa dấu cách – Java phân biệt chữ hoa chữ thường public class Student { private String name; private GregorianCalendar bithDay; private double mark; } 2/23/2018 http://lenhattung.com 2/23/2018 http://lenhattung.com 2/23/2018 Tập kí tự dùng Java Từ khóa (1) • Java xây dựng dựa kí tự sau: • từ có ý nghĩa xác định • Thường dùng để khai báo kiểu liệu, viết toán tử câu lệnh • Chú ý: – 26 chữ hoa: A…Z, 26 chữ thường: a…z – 10 chữ số: 0…9 – Các kí hiệu tốn học: +, -, *, /, %, =, ()… – Dấu nối: _ – Các kí hiệu đặc biệt khác: :, :, {}, [], ?, \, &, !, #, $, … – Bên cạnh Java dùng kí tự Unicode 2/23/2018 http://lenhattung.com – Khơng dùng từ khóa để đặt tên cho hằng, biến, mảng, hàm, … – Từ khóa phải viết chữ thường Từ khóa (2) 2/23/2018 http://lenhattung.com 10 Từ khóa (3) Từ khóa Từ khóa Ý nghĩa Ý nghĩa abstract Dùng để khai báo lớp, hàm trừu tượng double Kiểu liệu số thực boolean Kiểu liệu logic else Khả lựa chọn thứ câu lệnh If break Được sử dụng để kết thúc vòng lặp cấu trúc switch extends Chỉ lớp kế thừa từ lớp khác byte Kiểu liệu số nguyên false Giá trị logic case Được sử dụng lệnh switch final char Kiểu liệu kí tự Dùng để khai báo số, phương thức ghi đè, lớp kế thừa catch Được sử dụng xử lý ngoại lệ finally Phần cuối khối xử lý ngoại lệ class Dùng để khai báo lớp float Kiểu số thực const Khai báo biến theo sau biến for Câu lệnh lặp continue Được dùng vòng lặp để bắt đầu vòng lặp goto Nhảy tới dòng lệnh đặt nhãn default Được sử dụng lệnh switch if Câu lệnh lựa chọn Được sử dụng vòng lặp điều kiện sau implements Chỉ lớp triển khai từ giao diện import Khai báo sử dụng thư viện 2/23/2018 http://lenhattung.com 11 2/23/2018 http://lenhattung.com 12 2/23/2018 Từ khóa (3) Từ khóa (4) Từ khóa Ý nghĩa Từ khóa Ý nghĩa instanceof Kiểm tra đối tượng có phải thể lớp hay không static Dùng để khai báo biến, thuộc tính tĩnh int Kiểu số nguyên super Truy xuất đến lớp cha interface sử dụng để khai báo giao diện switch Lệnh lựa chọn long Kiểu số nguyên synchronized Một phương thức độc quyền truy xuất đối tượng native Khai báo phương thức viết ngôn ngữ C++ this Ám lớp new Tạo đối tượng throw Ném ngoại lệ null Một đối tượng không tồn throws Khai báo phương thức ném ngoại lệ package Dùng để khai báo gói true Giá trị logic private Đặc tả truy xuất try Sử dụng để bắt ngoại lệ public Đặc tả truy xuất void Dùng để khai báo phương thức không trả giá trị protected Đặc tả truy xuất while Dùng cấu trúc lặp return Trả giá trị short Kiểu số nguyên 2/23/2018 http://lenhattung.com 13 2/23/2018 http://lenhattung.com Kiểu liệu Kiểu liệu nguyên thủy • Mỗi biến phải có kiểu liệu • Kiểu liệu xác định miền giá trị cho biến • liệu xác định ngôn ngữ 2/23/2018 2/23/2018 http://lenhattung.com 15 http://lenhattung.com 14 16 2/23/2018 Kiểu liệu dẫn xuất Giá trị mặc định • Tham chiếu tới giá trị tập hợp giá trị mà biến khai báo • Lỗi hay gặp phải lập trình sử dụng biến chưa khởi tạo • Java hỗ trợ khởi tạo giá trị mặc định cho biến • Các kiểu liệu dẫn xuất: 2/23/2018 http://lenhattung.com 17 2/23/2018 http://lenhattung.com 18 Hằng Biến (1) • Từ khóa final dẫn đến biến khơng thể thay đổi giá trị • Các hàm lớp khai báo final • Biến vị trí nhớ máy tính mà giá trị lưu trữ truy xuất sau • Sử dụng để lưu trữ liệu thay đổi q trình thực thi – Hàm final viết chồng – Lớp final lớp final int MAX = 10; 2/23/2018 http://lenhattung.com 19 2/23/2018 http://lenhattung.com 20 2/23/2018 Biến (2) Biến (3) • Tên biến phải phạm vi • Các biến cần khai báo trước sử dụng • Khai báo biến bao gồm đặc tả tên biến, đặc tả kiểu liệu mà biến đại diện • Cú pháp: Type variable; • Kiểu biến: Hay Type variable = value; 2/23/2018 http://lenhattung.com 21 – Kiểu liệu nguyên thủy – Tên lớp – Một mảng • Để khai báo biến ta phải khai báo lớp mới, sau kiểu biến khai báo kiểu lớp 2/23/2018 http://lenhattung.com Biến (4) Biến đối tượng • Các loại biến Java: • Dùng để định nghĩa thuộc tính, trạng thái cho đối tượng • Có thể biến tồn cục đối tượng • Khai báo – Biến đối tượng – Biến lớp – Biến cục 22 Type variable; 2/23/2018 http://lenhattung.com 23 2/23/2018 http://lenhattung.com 24 2/23/2018 Biến lớp Biến cục • Tương tự biến đối tượng giá trị nằm lớp • Ảnh hưởng toàn cục đến lớp tất đối tượng lớp • Thích hợp dùng để trao đổi thông tin đối tượng khác lớp hau theo dõi trạng thái tồn cục đối tượng • Cú pháp static Type variable; • Được khai báo sử dụng thân phương thức • Bắt buộc phải gán giá trị trước sử dụng • Java khơng có biến tồn cục, biến đối tượng biến lớp dùng để truyền thơng tin tồn cục 2/23/2018 http://lenhattung.com 25 2/23/2018 http://lenhattung.com Phạm vi biến Chuyển đổi kiểu liệu (1) • Biến tồn cục: truy cập đâu tồn chương trình • Biến cục tồn giới hạn quan hệ phần nhỏ mã • Dùng để chuyển từ kiểu liệu sang kiểu liệu khác • Có dạng ép kiểu: public class MyClass { int i; // member variable 26 – Ép kiểu ngầm định – Ép kiểu tường minh int first() { int j; // local variable // i va j deu co the truy cap tu day return 1; } int second() { int j; // local variable // i va j deu co the truy cap tu day return 2; } 2/23/2018 } http://lenhattung.com 27 2/23/2018 http://lenhattung.com 28 2/23/2018 Chuyển đổi kiểu liệu (2) Ép kiểu ngầm định • Khi kiểu liệu gán cho biến kiểu khác  tự động chuyển kiểu • Điều kiện: – Hai kiểu phải tương thích – Kiểu đích phải lớn kiểu nguồn 2/23/2018 http://lenhattung.com 29 2/23/2018 http://lenhattung.com Ép kiểu tường minh Chuyển đổi kiểu liệu • Khi cần chuyển sang kiểu có độ xác cao • Có dạng chuyển đổi kiểu liệu 30 – Chuyển đổi cho kiểu liệu (New Type) value; – Chuyển đổi kiểu cho đối tượng: lớp chuyển đổi phải kế thừa (New Class) object; – Chuyển đổi cho kiểu liệu sang đối tượng ngược lại: • Chỉ chuyển đổi đối tượng có sẵn gói java.lang tương ứng với liệu nguyên thủy int intObject = new Integer(32); 2/23/2018 http://lenhattung.com 31 2/23/2018 http://lenhattung.com 32 2/23/2018 Nhập xuất liệu Khởi tạo biến        • Integers byte largestByte = short largestShort int largestInteger long largestLong = Byte.MAX_VALUE; = Short.MAX_VALUE; = Integer.MAX_VALUE; Long.MAX_VALUE; • real numbers float largestFloat = Float.MAX_VALUE; double largestDouble = Double.MAX_VALUE; • other primitive types char aChar = 'S'; boolean aBoolean = true; 2/23/2018 http://lenhattung.com 33 Xuất liệu (tt) Nhập xuất liệu tác vụ mức hệ thống Gói java.io chứa lớp cho việc xuất nhập Cần tham khảo gói Java cung cấp class System mô tả hệ thống System.out đối tượng xuất mặc định (màn hình) System.in đối tượng nhập mặc định ( bàn phím) System.err đối tượng xuất lỗi (màn hình) Methods xuất liệu hình: System.out.print(Dữ liệu xuất); System.out.println(Dữ liệu xuất); Dữ liệu xuất : ký tự, số, chuỗi,… 2/23/2018 34 Định dạng nhập xuất (1) • Mã định dạng: đầu hiển thị hình cần phải định dạng 2/23/2018 35 2/23/2018 http://lenhattung.com 36 2/23/2018 Định dạng nhập xuất (2) Lớp Scanner • Hàm printf() Java sử dụng để định dạng kiểu liệu console • Ví dụ: • Cho phép người dùng đọc giá trị vài kiểu public static void main(String[] args) { Scanner scaner = new Scanner(System.in); } • Một số phương thức Scanner với System.in đối tượng dòng đầu vào: public static void main(String[] args) { int i = 10; System.out.printf("gia tri cua i la %d", i); } 2/23/2018 http://lenhattung.com Đối tượng InputStream 37 Dãy Escape 2/23/2018 http://lenhattung.com 38 Các phương thức hữu dụng Character.class Useful Methods in the Character Class Method 2/23/2018 http://lenhattung.com 39 Description boolean isLetter(char ch) boolean isDigit(char ch) Determines whether the specified char value is a letter or a digit, respectively boolean isWhiteSpace(char ch) Determines whether the specified char value is white space according to the Java platform boolean isUpperCase(char ch) boolean isLowerCase(char ch) Determines whether the specified char value is upperor lowercase, respectively char toUpperCase(char ch) char toLowerCase(char ch) Returns the upper- or lowercase form of the specified char value toString(char ch) Returns a String object representing the specified character value int digit(char ch, int radix) Returns the numeric value of the character in the specified radix 2/23/2018 http://lenhattung.com 40 2/23/2018 Các toán tử số học 2/23/2018 http://lenhattung.com Phép toán ngơi 41 2/23/2018 http://lenhattung.com 42 Các phép tốn điều kiện Tốn tử quan hệ • kết trả giá trị boolean 2/23/2018 http://lenhattung.com 43 2/23/2018 http://lenhattung.com 44 2/23/2018 Các toán tử làm việc với bit Tốn tử luận lý • Các biểu thức có kiểu trả boolean, kết hợp lại với toán tử luận lý như: – AND (& &&) – OR (| ||) – XOR (^) – NOT (!) 2/23/2018 http://lenhattung.com 45 Toán tử gán 2/23/2018 http://lenhattung.com 46 Một số toán tử khác (1) • Cú pháp: Variable operator = value; Tương ứng với Variable = Variable operator value; – Ví dụ: a +=4; tương đương với a = a+4; 2/23/2018 http://lenhattung.com 47 2/23/2018 http://lenhattung.com 48 2/23/2018 Biểu thức & toán tử Một số tốn tử khác (2) • Phép tốn kiểu chuỗi String: – Java dùng toán tử + để nối hai chuỗi lại với System.out.println(name + " is a " + color); Độ ưu tiên toán tử 2/23/2018 http://lenhattung.com 49 Tính kết hợp phép tốn 2/23/2018 http://lenhattung.com 50 Biểu thức • Là kết nối biến, từ khóa hay kí hiệu để trả giá trị kiểu • Giá trị biểu thức số, chuỗi kiểu liệu khác • Các loại biểu thức: – Biểu thức logic – Biểu thức số học – Biểu thức gán 2/23/2018 http://lenhattung.com 51 2/23/2018 http://lenhattung.com 52 2/23/2018 Các câu lệnh điều khiển Kiểu Từ khóa Decision making if-else, switch-case Looping for, while, do-while Exception handling try-catch-finally, throw Branching Break, continue, label:, return 2/23/2018 Các câu lệnh điều khiển định http://lenhattung.com 53 Cấu trúc rẽ nhánh if (1) Cú pháp: if (expression) { statement(s) } 2/23/2018 http://lenhattung.com 54 Cấu trúc rẽ nhánh if (2) condition true false statement 2/23/2018 http://lenhattung.com 55 2/23/2018 http://lenhattung.com 56 2/23/2018 Cấu trúc rẽ nhánh if (3) Cấu trúc rẽ nhánh phức: switch (1) • Ví dụ: public static void main(String[] args) { int testScore = 76; char grade; if (testScore >= 90) { grade = 'A'; } if (testScore >= 80) { grade = 'B'; } if (testScore >= 70) { grade = 'C'; } if (testScore >= 60) { grade = 'D'; } if (testScore >= 50) { grade = 'E'; } else { grade = 'F'; } System.out.println("Grade = "+ grade); } 2/23/2018 ??? http://lenhattung.com 57 2/23/2018 http://lenhattung.com 58 So sánh if switch Cấu trúc rẽ nhánh phức: switch (2) • Ví dụ public static void main(String[] args) { int month = 2; int numdays = 0; switch (month) { case 2: numdays = 28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: numdays = 31; break; default: numdays = 30; } System.out.println("num of day = "+ numdays); } 2/23/2018 http://lenhattung.com Demo 59 2/23/2018 http://lenhattung.com 60 2/23/2018 Vòng lặp for (1) Các câu lệnh điều khiển lặp 2/23/2018 http://lenhattung.com 61 Vòng lặp for (2) 2/23/2018 http://lenhattung.com 62 For each • Ví dụ: Cú pháp: for (iterable_type iterable_element : iterable) { Statements } public static void main(String[] args) { for(int i=1; i g) >3) ? : -3  Trong java có phát biểu goto hay khơng ?  Mảng ? Mảng in-line ?  int a[] = new int { 1,2,3,9,0}; hay sai?  System.out.println( 12 & 9); xuất trị bao nhiêu?  Phân tích dòng code: if (5&7>0 && 5|3) System.out(“Hello”) ;  int m= System.in.read(); gõ vào phím ‘C’, trị biến m bao nhiêu? 2/23/2018 80 2/23/2018 Bài tập Bài tập  Viết chương trình sau:  Xuất bảng cửu chương từ đến  Xuất trị bình phương, lập phương từ đến 10  Tạo mảng số int dạng in-line 10 phần tử, xuất mảng tăng dần  Nhập mảng int số mang trị mã ký tự nhập từ bàn phím Xuất mảng dạng chữ xuất mã chúng  Xuất 100 số Fibonacci Dãy Fibonacci : 1,1,2,3,5,8,… số đầu 1, số sau tổng số trước 2/23/2018 • Mô phương thức lớp String với String mảng kí tự (char[]) (MyString) • Mơ StringTokenizer phép tốn • Thực lớp MyDate để lưu trữ ngày tháng năm với số int 81 2/23/2018 http://lenhattung.com Bài tập Bài tập Class MyString{ private char[] content; public MyString(char[] con); public MyString(String s); public int indexOf(char c); public int lastIndexOf(char c); public int indexOf(String sub); public int lastIndexOf(String sub); public void insert(int index, String sub); public void replace(String old_s, String new_s); public void replaceAll(String old_s, String new_s); } public class StringAnalyzer { 2/23/2018 http://lenhattung.com } 83 82 private String origin; private String delimiter; public StringAnalyzer(String origin, String delimiter) { } public boolean hasMoreElement(){ } public String getNextElement(){ } 2/23/2018 http://lenhattung.com 84 ... main(String[] args) { int count = 1; { System.out.println("Count is: " + count); count++; } while (count = 90) { grade = 'A'; } if (testScore >= 80) { grade = 'B'; } if (testScore >= 70) { grade = 'C'; } if (testScore >= 60) { grade = 'D'; } if (testScore... System.out.println("Count is: " + count); count++; } } while (true){ // vòng lặp vơ tận } 2/23/2018 http://lenhattung.com 65 Vòng lặp do…while (1) 2/23/2018 http://lenhattung.com 66 Vòng lặp do…while

Ngày đăng: 05/11/2019, 06:25