Java ease learning

47 840 1
Java ease learning

Đ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

Java ease learning

CHƢƠNG I - BẮT ĐẦU VỚI JAVA Bài – Hello world Bạn xem anh CEO JVN Bài – In chuỗi nhập vào Bài bạn, bạn học cách để Java in hình, này, bạn học cách nhập vào Java in hình Gõ bạn (lưu ý, bạn phải gõ, không copy paste) import java.io.*; public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Your name is: "); String str; str = in.readLine(); System.out.println("Welcome " + str + " to Java"); } } Xin hỏi, bắt đầu với vài ví dụ, mà tơi chẳng hiểu Xin trả lời, bạn học Java qua ví dụ, nhiều ví dụ, lí thuyết bạn học từ từ thơi *Lí thuyết: cấu trúc chương trình Java public class Core { public static void main(String[] args) { System.out.println("Hello,Everybody in the World!"); } } public class Core bạn bắt đầu lớp Java public static void main(String[] args) phương thức main Java, chương trình chạy Tạm thời bạn phải gõ y System.out.println("Hello,Everybody in the World!") câu lệnh Java, đơn giản in chuỗi nằm dấu “” hình Mọi lớp phương thức Java mở { đóng lại } Mọi câu lệnh java kết thúc ; Bài – Biến Java import java.io.*; public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); int a = Integer.parseInt(in.readLine()); System.out.print("Nhap b: "); int b = Integer.parseInt(in.readLine()); int ketqua; ketqua = a+b; System.out.println("Ket qua bai toan a+b la: “ + ketqua); } } Nhập thử số a b vào bạn, kết toán a+b in *Lí thuyết: import java.io.*; public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Your name is: "); String str; str = in.readLine(); System.out.println("Welcome " + str + " to Java"); } } Tạm thời, chương trình này, bạn nên quan tâm đến dòng String str khai báo biến str kiểu chuỗi, System.out.println("Welcome " + str + " to Java") Đây dịng System.out.println chương trình đầu, có khác + str + tức đưa biến vào chuỗi in Chỉ đến thơi nhé, sau đó, quan tâm đến hơm System.out.print("Nhap a: "); int a = Integer.parseInt(in.readLine()); System.out.print("Nhap b: "); int b = Integer.parseInt(in.readLine()); int ketqua; ketqua = a+b; System.out.println("Ket qua bai toan a+b la: “ + ketqua); *Giải thích import bạn nhập class hay thư viện chuẩn, tạm thời đừng quan tâm gì, cần nhớ có để chương trình chạy System.out.print in chuỗi, khơng xuống dịng System.out.println in chuỗi, xuống dòng int ketqua tức khai báo biến ketqua kiểu int ketqua = a+b tức gán kết biểu thức tính tốn (ở biến a + biến b) cho biến ketqua System.out.println("Ket qua bai toan a+b la: “ + ketqua) đơn giản rồi, in dịng ra, khác đưa biến ketqua bạn vào chuỗi Bài – Chia hết, chia lấy dƣ *Lí thuyết: số kiểu biến Java Bạn biết kiểu String (chuỗi) int (nguyên) bạn biết thêm kiểu float (thực) Số nguyên số thực bạn biết khác Bây ta bắt đầu tốn ví dụ import java.io.*; public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); float a = Float.parseFloat(in.readLine()); System.out.print("Nhap b: "); float b = Float.parseFloat(in.readLine()); float ketqua = a/b; System.out.println("Ket qua bai toan a+b la: " + ketqua); } } Bạn thử toán xem, nhớ đừng nhập số b=0 nhé, chuyện xử lí sau Ví dụ nhập a=5, b=2, kết in 2.5, thú vị phải khơng ? Bây tốn ấy, bạn thay đổi sau: import java.io.*; public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); int a = Integer.parseInt(in.readLine()); System.out.print("Nhap b: "); int b = Integer.parseInt(in.readLine()); float ketqua = a/b; System.out.println("Ket qua bai toan a+b la: " + ketqua); } } Cũng nhập a=5, b=2, lần kết in … Phép chia phép chia hết toán hạng kiểu nguyên, gọi chia lấy nguyên (/) hay div Bây chương trình mà ta thay đổi lại chút xíu xem import java.io.*; public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); int a = Integer.parseInt(in.readLine()); System.out.print("Nhap b: "); int b = Integer.parseInt(in.readLine()); float ketqua = a%b; System.out.println("Ket qua bai toan a+b la: " + ketqua); } } Cũng nhập a=5, b=2, lần kết in … Đây kết phép chia lấy dư chia cho 2, gọi chia lấy dư (%) hay mod *Thế muốn số nguyên chia mà kiểu thực khơng phải phép chia lấy ngun ? Trong trường hợp đó, bạn dùng “ép kiểu” int a=5,b=2;float ket qua; ketqua=(float)a/b; Bài – Lập trình OOP Bạn xem anh CEO JVN class Đây class, class có hai property (thuộc tính) name age public class Person { String name; int age; } Đây class, class property cịn có constructor (khởi tạo) class public class Person { String name; int age; public Person(String name) { this.name = name; } } Trong constructor lưu ý điều, biến this Biến this có nghĩa thân class (ở class Person) Trong class Person có property age, câu this.age = age có nghĩa thuộc tính age class Person nhận giá trị đối số age constructor Person(int age) đưa vào Lưu ý class có sẵn constructor khơng có đối số Đây class, class ngồi property, constructor cịn có behavior (hành vi) public class Person { String name; int age; public Person(int age) { this.age = age; } public void Nhap() { nameonsole.readLine("Nhap ho ten:"); } } Khi ta viết câu lệnh sau Person personOne = new Person(12); Thì ta tạo instance (thể hiện) personOne class Person Khai báo class public abstract class MyClass {} Từ thứ khai báo quyền truy xuất kế thừa,có loại -public:được phép truy xuất từ nơi lớp quyền kế thừa -protected:chỉ có phương thức gói phép truy xuất kế thừa -private:chỉ có phương thức gói phép truy xuất khơng lớp phép kế thừa -nếu không khai báo,mặc định protected Từ thứ khai báo lớp trừu tượng không trừu tượng Nhiem vu: tao lop Person, tao tiep lop Students va Teachers ke thua lop Person, tao lop Execute chua ham chinh de chay chuong trinh lop Personimport corejava.*; abstract class Person { //cai goi la cac property hay state-thuoc tinh cua doi tuong String hoten; int age; String diachi; int luong; //cac constructor public Person(int age) { this.age = age; } //cac method hay behavior-hanh vi cua doi tuong public void Nhap() { hoten = Console.readLine("Nhap ho ten:"); diachi = Console.readLine("Nhap dia chi:"); } //vi la class thuoc loai abstract nen Person duoc phep khai bao cac method khong co noi dung, noi dung cua class In se duoc cac lop ke thua no them vao noi dung cua rieng no public abstract void In(); public abstract int Tinhluong(); } lop Studentsimport corejava.*; class Students extends Person { int MaSV,Malop; public void Nhap() { super.Nhap(); MaSV = Console.readInt("Nhap ma SV:"); Malop = Console.readInt("Nhap ma lop:"); } public void In() { System.out.println(hoten); System.out.println(diachi); System.out.println(MaSV); System.out.println(Malop); } public int Tinhluong() { return 150000; } } tu khoa super se goi ham Nhap() tu lop Person la cha cua lop Students lop Teachersimport corejava.*; class Teachers extends Person { int Makhoa; public void Nhap() { super.Nhap(); Makhoa = Console.readInt("Nhap ma khoa::"); } public void In() { System.out.println(hoten); System.out.println(diachi); System.out.println(Makhoa); } public int Tinhluong() { return 500000; } } lop Executeimport corejava.*; class Execute { public static void main(String args[]) { Students st = new Students(); st.Nhap(); st.In(); st.luong=st.Tinhluong(); Teachers tc = new Teachers(); tc.Nhap(); tc.In(); tc.luong=tc.Tinhluong(); } } Khai báo thuộc tính: public static void temp; Từ thứ khai báo quyền truy xuất,có loại -public:được phép truy xuất từ nơi -protected:chỉ có lớp phép truy xuất -private:chỉ có lớp xài(thuộc tính riêng nó) -nếu khơng khai báo,mặc định protected Từ thứ khai báo cách truy xuất static(tĩnh) -nếu không khai báo,mặc định không tĩnh Tất đối tượng thể từ lớp cha phép thay đổi giá trị thuộc tính khơng tĩnh,cịn giá trị thuộc tính tĩnh khơng phép thay đổi public class Car { public string branch; public int cost; public static int tire=4; } Như ví dụ trên,tất lớp lớp Car (như ToyotaCar,Peugeot,Mazda…) phép thay đổi thuộc tính branch hay cost để phù hợp cho riêng mình,nhưng thuộc tính tire (số bánh xe) khơng phép thay đổi thuộc tính tĩnh Nói cách khác, có thuộc tính có tên tire class Car tất class nó, gọi tĩnh Khai báo hành vi Một phương thức khai báo sau public static double ketqua() Có định truy xuất public, protected private -public:được phép truy xuất từ nơi -protected:chỉ có lớp kế thừa lớp chứa truy xuất -private:chỉ lớp chứa truy xuất(dùng nội bộ) -nếu khơng khai báo,mặc định protected Có định thuộc tính static, abstract, final, native, synchronized (đồng bộ) volatile (linh hoạt), static(tĩnh) -nếu không khai báo,mặc định không tĩnh class TestObject { static void StaticMethod() {…} void NonStaticMethod() {…} } Nếu phương thức không tĩnh, bạn phải khởi tạo đối tượng,sau phép gọi phương thức TestObject test=new TestObject(); test.NonStaticMethod(); Nếu phương thức tĩnh,bạn phép gọi trực tiếp từ lớp TestObject.StaticMethod(); abstract(trừu tượng) Một phương thức trừu tượng nội dung.Nội dung lớp tùy biến phát triển theo hướng riêng - final: khơng thể extends hay override (ghi đè) - native: thân phương thức viết C hay C++ - synchronized: cho phép thread truy cập vào khối mã thời điểm - volatile: sử dụng với biến để thông báo giá trị biến thay đổi vài lần không ghi vào ghi Từ thứ giá trị trả về.Nếu khơng có giá trị trả void Interface-template Bây ta có khái niệm mới, giao diện Giao diện đời để giải đa kế thừa Mỗi lớp Java có lớp cha, implements nhiều giao diện Giao diện khai báo giống lớp, có state behavior Nhưng state giao diện final behavior abstract Giả sử, ta khai báo giao diện public interface Product { //hai state duoi day la final, tuc la lop implements khong duoc phep doi gia tri static string maker = “My Corp”; static string phone = “555-7767”; //behavior duoi day la abstract, tuc la khong co noi dung public int getPrice(int id); } Bây giờ, ta viết class có cài đặt (implements) giao diện public class Shoe implements Product { public int getPrince(int id) { return (id= =1)?5:10; } public String getMaker() { return maker; } } Muốn implements nhiều giao diện, làm sau, ví dụ class Toyota extends Car implements ActionCar, ActionMobilation package-unit Hãy tạo thư mục có tên Transport Bên thư mục tạo file Car.java Bicycle.java sau Car.javapackage Transport; public class Car { public String manufacturer; public int year; } Bicycle.javapackage Transport; public class Bicycle { public int cost; public Bicycle(int cost) { this.cost = cost; } } Như ta tạo gói chứa lớp Car Bicycle Bây ta có chương trình muốn sử dụng gói TestProgram.java Ta viết: ViDuTransport.javaimport Transport.*; class TestProgram { public static void main(String args[]) { Car myCar = new Car(); myCar.manufacturer = “Toyota”; Bicycle myBicycle = new Bicycle(1500); } } Lưu ý file ViDuTransport bạn khơng khai báo import Transport.* bạn khai báo tường minh sau Transport.Car myCar = new Transport.Car(); nạp chồng (overload) phƣơng thức class Vidu { public satic void main(String a[]) { private float cost; public float CalculateSalePrice() { return cost*1.5; } public float CalculateSalePrice(double heso) { return cost*(1+heso); } } } Ở có phương thức trùng tên CalculateSalePrice phương thức thứ khác tham số, gọi nạp chồng * nạp chồng (overload) ghi đè (override) Những phương thức nạp chồng phương thức lớp, có tên danh sách đối số khác Phương thức ghi đè phương thức có mặt lớp cha, xác định phương thức chung cho lớp con, xuất lớp ... Transport Bên thư mục tạo file Car .java Bicycle .java sau Car.javapackage Transport; public class Car { public String manufacturer; public int year; } Bicycle.javapackage Transport; public class... hạn số phần tử) Các method nằm class java. util.Vector java. util.Enumeration Khai báo Vector vt = new Vector(); Nhập liệu cho Vector (class Console nằm gói corejava) Lưu ý phần tử Vector phải đối... System.out.println("Welcome " + str + " to Java" ); } } Tạm thời, chương trình này, bạn nên quan tâm đến dòng String str khai báo biến str kiểu chuỗi, System.out.println("Welcome " + str + " to Java" ) Đây dịng System.out.println

Ngày đăng: 23/08/2012, 16:24

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan