bai tap java 1

Màu nền
Font chữ
Font size
Chiều cao dòng

Bài 1 - Hello world

**********************************************************************

Bài 2 – In ra chuỗi nhập vào

Bài đầu tiên của bạn, bạn đã học cách để Java in cái gì đó ra màn hình, trong bài này, 

bạn sẽ học cách nhập vào cái gì đó và Java in cái đó ra màn hình. Gõ cái này đi bạn (lưu 

ý, bạn phải gõ, không được copy và paste)

PHP Code:

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, tôi đã bắt đầu với một vài ví dụ, mà tôi chẳng hiểu cái gì cả.

Xin trả lời, bạn sẽ học Java qua các ví dụ, rất nhiều ví dụ, lí thuyết thì bạn chỉ học từ từ 

thôi.

*Lí thuyết: cấu trúc một chương trình Java

PHP Code:

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 một lớp Java

public static void main(String[] args) đây là một phương thức main trong Java, để cho 

chương trình chạy được. Tạm thời bạn phải gõ y như thế này

System.out.println("Hello,Everybody in the World!") đây là một câu lệnh trong Java, đơn 

giản nó chỉ in ra chuỗi nằm trong 2 dấu “” ra màn hình.

Mọi lớp và phương thức trong Java mở ra bằng { và đóng lại bằng }

Mọi câu lệnh trong java kết thúc bằng ; 

**********************************************************************

Bài 3 – Biến trong Java

PHP Code:

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ử 2 số a và b vào đi bạn, kết quả bài toán a+b sẽ được in ra.

*Lí thuyết:

PHP Code:

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, trong chương trình này, bạn chỉ nên quan tâm đến dòng

String str khai báo biến str kiểu chuỗi, và

PHP Code:

System.out.println("Welcome " + str + " to Java")  

Đây cũng là dòng System.out.println như chương trình đầu, có khác là + str + tức là đưa 

một biến vào chuỗi in ra. Chỉ đến đó thôi nhé, sau đó, hãy quan tâm đến bài hôm nay

PHP Code:

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 nó là gì, chỉ cần nhớ 

là có nó để chương trình chạy

System.out.print in ra một chuỗi, nhưng không xuống dòng

System.out.println in ra một chuỗi, nhưng xuống dòng

int ketqua tức là khai báo biến ketqua kiểu int

ketqua = a+b tức là gán kết quả một biểu thức tính toán (ở đây là biến a + biến b ) cho 

biến ketqua

System.out.println("Ket qua bai toan a+b la: “ + ketqua) thì đơn giản rồi, in cái dòng đó 

ra, chỉ khác là nó đưa biến ketqua của bạn vào chuỗi đó. 

Bài 4 – Chia hết, chia lấy dư

*Lí thuyết: một số kiểu biến trong Java

Bạn đã biết 2 kiểu String (chuỗi) và int (nguyên) bây giờ bạn biết thêm kiểu float (thực)

Số nguyên và số thực bạn biết sự khác nhau rồi chứ. Bây giờ ta bắt đầu bài toán ví dụ

PHP Code:

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ử bài toán xem, nhớ đừng nhập số b=0 nhé, chuyện ấy sẽ xử lí sau.

Ví dụ nhập a=5, b=2, kết quả in ra sẽ là 2.5, thú vị phải không ?

Bây giờ cũng bài toán ấy, bạn thay đổi như sau

PHP Code:

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 này kết quả in ra là … 2

Phép chia sẽ là phép chia hết nếu cả 2 toán hạng đều kiểu nguyên, gọi là chia lấy nguyên 

(/) hay div

Bây giờ cũng chương trình ấy mà ta thay đổi lại chút xíu xem sao

PHP Code:

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 này kết quả in ra là … 1

Đây là kết quả phép chia lấy dư 5 chia cho 2, gọi là chia lấy dư  hay mod

*Thế nếu tôi muốn 2 số nguyên chia nhau mà ra kiểu thực chứ không phải phép chia lấy 

nguyên thì sao ? 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 5 – Lập trình OOP (Hướng đối tượng trong java)

class

Đây là một class, class này có hai property (thuộc tính) là name và age

PHP Code:

public class Person

{

                String name;

                int age;

}  

Đây là một class, class này ngoài property còn có constructor (khởi tạo) của class đó

PHP Code:

public class Person

{

                String name;

                int age;

                public Person(String name)

                {

                                this.name = name;

                }

}  

Trong cái constructor này hãy lưu ý một điều, đó là biến this. Biến this có nghĩa là bản 

thân cái class đó (ở đây là class Person).

Trong class Person có một property là age, câu this.age = age có nghĩa là cái thuộc tính 

age của class Person sẽ nhận giá trị ở cái đối số age do constructor Person(int age) đưa 

vào.

Lưu ý là mọi class đều có sẵn ít nhất một constructor không có đối số.

Đây là một class, class này ngoài property, constructor còn có một behavior (hành vi)

PHP Code:

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 ra một instance (thể hiện) là personOne của class Person 

**********************************************************************

Bài 5 – Lập trình OOP (tiếp)

Khai báo một class

public abstract class MyClass {}

Từ thứ 1 là khai báo quyền truy xuất và kế thừa,có 3 loại

-public:được phép truy xuất từ bất cứ nơi nào và bất cứ lớp nào cũng được quyền kế 

thừa

-protected:chỉ có phương thức cùng gói được phép truy xuất và kế thừa

-private:chỉ có phương thức cùng gói được phép truy xuất nhưng không lớp nào được 

phép kế thừa

-nếu không khai báo,mặc định là protected

Từ thứ 2 là khai báo một lớp trừu tượng hay là không trừu tượng

Nhiem vu: tao 1 lop Person, tao tiep 2 lop Students va Teachers ke thua lop Person, tao 

lop Execute chua ham chinh de chay chuong trinh.

--lop Person-

PHP Code:

import corejava.*;

abstract class Person

{

                //cai nay 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 1 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 Students-

PHP Code:

import 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 Teachers-

PHP Code:

import 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 Execute-

import 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 một thuộc tính:

Khai báo 1 thuộc tính

public static void temp;

Từ thứ 1 là khai báo quyền truy xuất,có 3 loại

-public:được phép truy xuất từ bất cứ nơi nào

-protected:chỉ có lớp con mới được phép truy xuất

-private:chỉ có lớp đó xài(thuộc tính riêng của nó)

-nếu không khai báo,mặc định là protected

b.Từ thứ 2 là khai báo cách truy xuất(static)

static(tĩnh)

-nếu không khai báo,mặc định là không tĩnh

Tất cả các đối tượng thể hiện từ lớp cha đều được phép thay đổi giá trị của các thuộc 

tính không tĩnh,còn giá trị của thuộc tính tĩnh thì không được phép thay đổi

PHP Code:

public class Car

{

                public string branch;

                public int cost;

                public static int tire=4;

}  

Như ví dụ trên,tất cả các lớp con của lớp Car (như ToyotaCar,Peugeot,Mazda…) đều 

được phép thay đổi các 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 được phép thay đổi vì là thuộc tính tĩnh

Nói cách khác, chỉ có một và chỉ một thuộc tính có tên là tire trong class Car và tất cả các 

class con của nó, vì vậy gọi là tĩnh

Khai báo một hành vi

Một phương thức được khai báo như sau

public static double ketqua()

Có 3 chỉ định truy xuất là public, protected và private

-public:được phép truy xuất từ bất cứ nơi nào

-protected:chỉ có lớp kế thừa lớp chứa nó được truy xuất

-private:chỉ lớp chứa nó được truy xuất(dùng nội bộ)

-nếu không khai báo,mặc định là protected

Có 6 chỉ định thuộc tính là static, abstract, final, native, synchronized (đồng bộ) và 

volatile (linh hoạt)

static(tĩnh)

-nếu không khai báo,mặc định là không tĩnh

PHP Code:

class TestObject

{

                static void StaticMethod() {…}

                void NonStaticMethod() {…}

}  

Nếu là một phương thức không tĩnh, đầu tiên bạn phải khởi tạo một đối tượng,sau đó 

mới được phép gọi phương thức

TestObject test=new TestObject();

test.NonStaticMethod();

Nếu là một phương thức tĩnh,bạn được 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 không có nội dung.Nội dung của nó sẽ được các lớp con 

tùy biến và phát triển theo hướng của riêng nó.

- final: không thể được extends hay override (ghi đè)

- native: thân phương thức viết bằng C hay C++

- synchronized: chỉ cho phép 1 thread truy cập vào khối mã ở cùng một thời điểm

- volatile: sử dụng với biến để thông báo rằng giá trị của biến có thể được thay đổi vài 

lần vì vậy không ghi vào thanh ghi

.Từ thứ 3 là giá trị trả về.Nếu không có giá trị trả về thì là void 

interface-template

Bây giờ ta có 1 khái niệm mới, là giao diện. Giao diện ra đời chính là để giải quyết đa kế 

thừa. Mỗi lớp trong Java chỉ có 1 lớp cha, nhưng có thể implements nhiều giao diện.

Giao diện được khai báo giống như 1 lớp, cũng có state và behavior. Nhưng state của 

giao diện là final còn behavior là abstract

Giả sử, ta sẽ khai báo một giao diện

PHP Code:

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 sẽ viết một class có cài đặt (implements) giao diện này

PHP Code:

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 như sau, ví dụ class Toyota extends Car 

implements ActionCar, ActionMobilation

package-unit

Hãy tạo 1 thư mục có tên là Transport

Bên trong thư mục này hãy tạo 2 file là Car.java và Bicycle.java như sau

--Car.java-

PHP Code:

package Transport;

public class Car

{

                public String manufacturer;

                public int year;

}  

--Bicycle.java-

PHP Code:

package Transport;

public class Bicycle

{

                public int cost;

                public Bicycle(int cost)

                {

                                this.cost = cost;

                }

}  

Như vậy là ta đã tạo ra 1 gói chứa 2 lớp là Car và Bicycle. Bây giờ ta có 1 chương trình 

muốn sử dụng gói này là TestProgram.java. Ta viết:

--ViDuTransport.java-

PHP Code:

import Transport.*;

class TestProgram

{

                public static void main(String args[])

                {

                                Car myCar = new Car();

                                myCar.manufacturer = “Toyota”;

                                Bicycle myBicycle = new

Bạn đang đọc truyện trên: Truyen2U.Net