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

bài tập java có lời giải

85 10 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 85
Dung lượng 292,05 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

public class Hello { public static void mainString[] args throws Exception { BufferedReader in = new BufferedReadernew... //cac method hay behavior-hanh vi cua doi tuong public void Nh

Trang 1

Tr Giúpợ - Tìm Ki mế - Thành Viên - L chị

Phiên b n đ y đ : ả ầ ủ H c Java qua các ví d c thọ ụ ụ ể

[ C a S Tin H c ]ử ổ ọ > L p trìnhậ > Công ngh Java/J2MEệ

Trang: 1, 2

PhươngĐi p2410ệ

Dec 31 2007, 12:30 AM

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)

CODE

import java.io.*;

public class Hello {

public static void main(String[] args) throws Exception {

BufferedReader in = new BufferedReader(new

Trang 2

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ạ ờ ạ

public class Hello {

public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new

Trang 3

public class Hello {

public static void main(String[] args) throws Exception {

BufferedReader in = new BufferedReader(new

Trang 4

thôi nhé, sau đó, hãy quan tâm đ n bài hôm nayế

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 đó ạ ỗ

PhươngĐi p2410ệ

Dec 31 2007, 12:35 AM

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ạ ế ể ỗ ờ ạ

Trang 5

public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new

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ờ ấ ạ ổ ư

CODE

import java.io.*;

public class Hello {

public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new

float ketqua = a/b;

System.out.println("Ket qua bai toan a+b la: " + ketqua); }

}

Trang 6

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ấ ổ ạCODE

import java.io.*;

public class Hello {

public static void main(String[] args) throws Exception {

BufferedReader in = new BufferedReader(new

float ketqua = a%b;

System.out.println("Ket qua bai toan a+b la: " + ketqua); }

Trang 7

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ộ ộ

Trang 8

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

PhươngĐi p2410ệ

Dec 31 2007, 12:43 AM

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ế ừ

Trang 9

-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ừ ượngNhiem 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

//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();

}

Trang 12

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ổ

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ỉ ộ ỉ ộ ộ

Trang 13

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)ồ ộ ạ

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 đè)

Trang 14

- 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 ừ ứ ị ả ề ế ị ả ề

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àư ủ ệ

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

CODE

Trang 15

public class Shoe implements Product

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ư ụ ạ

public String manufacturer;

public int year;

}

Bicycle.java-CODE

Trang 16

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àố ử ụ

PhươngĐi p2410ệ

Dec 31 2007, 12:48 AM

Trang 17

private float cost;

public float CalculateSalePrice()

* n p ch ng (overload) và ghi đè (override) ạ ồ

Nh ng phữ ương th c đứ ược n p ch ng là nh ng phạ ồ ữ ương th cứ trong cùng m t l p, có cùng m t tên nh ng danh sách đ i sộ ớ ộ ư ố ố khác nhau

Phương th c đứ ược ghi đè là phương th c có m t l p cha,ứ ặ ở ớ

được xác đ nh là phị ương th c chung cho các l p con, r i xu tứ ớ ồ ấ

hi n các l p conệ ở ớ

N p ch ng là m t hình th c đa hình (polymorphism) trong quáạ ồ ộ ứtrình biên d ch (compile) còn ghi đè là trong quá trình th c thiị ự(runtime)

PhươngĐi p2410ệ

Dec 31 2007, 12:49 AM

Trang 18

Bài 6 – Các ki u d li u nguyên th y và phép toán ể ữ ệ ủ

int i,j; //2 bi n i và j có ki u d li u là intế ể ữ ệ

char ch='A'; //bi n ch ki u char kh i t o giá tr đ u 'A'ế ể ở ạ ị ầ

*Khai báo h ngằ

H ng đằ ược khai báo v i t khóa final Ví d :ớ ừ ụ

final float PI = 3.14159;

*Phép toán

Phép toán c a Java gi ng C Trong class java.lang.Math có m tủ ố ộ

s method đ dùng trong toán h c nh sauố ể ọ ư

Trang 19

H u h t các phép toán đi u có trình t k t h p t trái sang ph i,ầ ế ề ự ế ợ ừ ả

ch có các phép sau là t ph i sang tráiỉ ừ ả

n u em đ p thì tôi s c a em không thì tôi c a đ a khácế ẹ ẽ ư ư ứ

IF em đ p THEN tôi s c a em ELSE tôi c a đ a khácẹ ẽ ư ư ứ

IF(em đ p) tôi s c a em;ẹ ẽ ư

Trang 20

if(a>b) System.out.println(“So lon nhat la “+a);

else System.out.println(“So lon nhat la “+b);

*Ta xây d ng m t bài toán làm tròn s ự ộ ố

Nh p vào m t s b t kì N u ph n th p phân s này >=0.5, làmậ ộ ố ấ ế ầ ậ ốtròn tăng lên m t đ n v , ngộ ơ ị ượ ạc l i gi m đi m t đ n v ả ộ ơ ị

CODE

import java.io.*;

public class Hello {

public static void main(String[] args) throws Exception {

BufferedReader in = new BufferedReader(new

Phép đi u ki n bi u di n nh sau a=a>b?2:0 nghĩa là n u chânề ệ ể ễ ư ế

tr c a a>b là đúng thì a=2 n u là sai thì a=0ị ủ ế

* Sau khi h c xong if, b n có r t nhi u bài t p đ mà … làm, cọ ạ ấ ề ậ ể ổ

đi n nh t v n là gi i phể ấ ẫ ả ương trình b c m t và hai, ngoài ra cònậ ộnhi u bài t p khác n a đây ch có gi i phề ậ ữ Ở ỉ ả ương trình b c m t.ậ ộ

B n nên tìm nhi u bài t p đ t làm trạ ề ậ ể ự ước khi ti p t c ph n k ế ụ ầ ế

Ví d : phụ ương trình b c 1ậ

Trang 21

import java.io.*;

public class Hello {

public static void main(String[] args) throws Exception {

BufferedReader in = new BufferedReader(new

B n đã h c xong if B n mu n dùng vòng l p if đ đánh giáạ ọ ạ ố ặ ể

đi m s nh p vào B n s vi t chể ố ậ ạ ẽ ế ương trình sau đây

CODE

import java.io.*;

public class Hello {

public static void main(String[] args) throws Exception {

BufferedReader in = new BufferedReader(new

InputStreamReader(System.in));

Trang 22

System.out.print("Nhap diem so: ");

int diem = Integer.parseInt(in.readLine());

public class Hello {

public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new

InputStreamReader(System.in));

System.out.print("Nhap diem so: ");

int diem = Integer.parseInt(in.readLine());

Trang 23

*break v i switch: break s thoát ngay ra kh i kh i l nh trongớ ẽ ỏ ố ệthân c a switch ủ

Java có kh năng t chuy n ki u b t c d li u ki u s nào khiả ự ể ể ấ ứ ữ ệ ể ố

c ng vào String Dù n là int, float, double đ u có th chuy nộ ề ể ể

char ch = s1.charAt(4); //t c là b ng 'o'ứ ằ

Đây là method tìm kí t th i trong String, các kí t trong Stringự ứ ự

Trang 24

a<0 s2<s1

a=0 s2=s1

So sánh gi a s2 và s1 là so sánh th t gi a kí t đ u c a haiữ ứ ự ữ ự ầ ủchu i so đi, ví d "kc" > "kazbe"ỗ ụ

nh ng ngư ượ ạc l i thì ph i dùng các method tả ương ng.ứ

Các method này n m trong góijava.lang, trong các class Byte,ằShort, Integer, Long, Float, Double

Trang 25

*continue v i for: continue s khi n vòng for b t đâu 1 chu trìnhớ ẽ ế ắ

m i và b qua t t c các l nh bên dớ ỏ ấ ả ệ ưới nó

Trang 28

Hai câu có th vi t l i thành m t câuể ế ạ ộ

int[] a = new int[100];

Trang 29

Các method n m trong class java.util.Arraysằ

int[] s = {28,7,14,11};

int n = Arrays.binarySearch(s,14); n s b ng 2ẽ ằ

M ng nhi u chi uả ề ề

int[][] = new int[100][50];

Ho c khai báo 1 m ng có giá tr đ u Đây là m ng 2 chi u g mặ ả ị ầ ả ề ồ

Trang 30

Khi ch y đo n mã này b n s th y xu t hi n thông báoạ ạ ạ ẽ ấ ấ ệ

java.lang.ArithmeticException: divide by zero

Và chương trình s thoát ra ngay lúc đó Mu n chẽ ố ương trình

ch y ti p và không thoát ra, ta đón "b t" ngo i l này, đ a raạ ế ắ ạ ệ ư

Đ "ném" ngo i l do b t c dòng mã nào trong m t phể ạ ệ ấ ứ ộ ươ ng

th c sinh ra, b n có th khai báo đ ném b ngo i l đóứ ạ ể ể ỏ ạ ệ

CODE

public void divide() throws Exception

{

Trang 32

Dec 31 2007, 05:58 AM

Bài 15 - Vector (m ng không gi i h n s ph n t ) ả ớ ạ ố ầ ử

Các method trong bài này n m 2 class java.util.Vector vàằ ở

java.util.Enumeration

Khai báo

Vector vt = new Vector();

Nh p d li u cho m t Vector (class Console n m trong góiậ ữ ệ ộ ằ

corejava)

L u ý là m i ph n t c a Vector đ u ph i là m t đ i tư ỗ ầ ử ủ ề ả ộ ố ượng, nên

ta ph i có new Integer(n) khi mu n đ a vào m t bi n ki u int.ả ố ư ộ ế ể

Tương t v i Byte, Long, Float, ự ớ

Trang 33

static int currentCount;

static class Apple

Java s làm xu t hi n 2 file là TestProgram.class vàẽ ấ ệ

TestProgram$Apple.class u đi m khi s d ng l p n i là:Ư ể ử ụ ớ ộ

- th hi n tính đóng gói caoể ệ

Trang 34

Bài 17 - T o t p tin jar t ch y ạ ậ ự ạ

Gi s chả ử ương trình c a b n có vài file class trong đó fileủ ạ

chương trình chính là MainPro.class ch ng h n.ẳ ạ

B n hãy t o m t file l y tên là mymf.mf có n i dung nh sauạ ạ ộ ấ ộ ưMain-Class: MainPro

B t bu c ph i chính xác nh th (t c là ph i có c xu ng dòng),ắ ộ ả ư ế ứ ả ả ốkhông thì trình ch y jar không hi u đạ ể ược

Sau đó b n vào %JAVA_HOME%\bin\ chép t t c các t p tinạ ấ ả ậ.class c a ng d ng và c mymf.mf vào đó, r i ch y jar.exe v iủ ứ ụ ả ồ ạ ớ tham s dòng l nh nh sauố ệ ư

jar cmfv mymf.mf MyProgram.jar *.class

Tương t n u b n mu n đ a thêm 2 th m c dir1 và dir2 vô fileự ế ạ ố ư ư ụJAR thì b n cũng gõạ

jar cmfv mymf.mf MyProgram.jar *.class dir1 dir2

Trình jar s t o file MyProgram.jar (tên khác tùy b n) có thẽ ạ ạ ể

Trang 35

ch y đạ ược, không ph i dùng l nh java hay gi s không có IDEả ệ ả ửquen thu c c a b n ộ ủ ạ

JFrame frame=new JFrame("Main Frame");//Main

Frame la ten cai cua so

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//ham dong cua so lai

JLabel label=new JLabel("Hello Everybody, label

contain context");//mot doi tuong do hoa

frame.getContentPane().add(label);//dua doi tuong do hoa vao trong frame

frame.pack();//"dong goi" lai toan bo trinh do hoa

frame.setVisible(true);//hien thi trinh do hoa ra man hinh }

}

Đây là m t Frame đ n gi n khác, nh ng có th dùng d dàng choộ ơ ả ư ể ễ

vi c m r ng chệ ở ộ ương trình

Trang 36

Container container = getContentPane();

public Execute(String title)

{

super(title); //tuong duong JFrame(title)

Label label=new Label("Hello Everybody, label contain context");

JButton b=new JButton("Vi\u1EC7t Nam");

\u1EC7 là mã Unicode c a kí t mà Java h tr T t c kí tủ ự ệ ỗ ợ ấ ả ự

Vi t đ u đệ ề ược h tr trong Latin và Latin Extendỗ ợ

L u ý là ch có javax.swing m i h tr , java.awt không h tr ư ỉ ớ ỗ ợ ỗ ợ

PhươngĐi p2410ệ

Dec 31 2007, 09:34 AM

Trang 37

Bài 2 - Cài đ t b nghe và s ki n cho các đ i t ặ ộ ự ệ ố ượ ng đ h a ồ ọ

nh ng s ki n c a b nghe đó Đ i tữ ự ệ ủ ộ ố ượng eventQuit là m tộ

instance c a class EventQuit Đ cài đ t b nghe này cho đ iủ ể ặ ộ ố

tượng đ h a button ta dùng phồ ọ ương th c addActionListener.ứ

Container container = getContentPane();

public Core(String title)

{

super(title);

Button button = new Button("My button");

EventQuit eventQuit=new EventQuit();

Trang 38

JFrame frame = new JFrame("My frame");

final JButton button = new JButton("My button");

}

});

frame.add(button);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

Trang 39

Bài 3 - setLayout(null) đi đôi v i setBounds ớ

setLayout m nh nh t trong Swing là setLayout(null) cho đ iạ ấ ố

tượng add, còn đ i v i đ i tố ớ ố ượng b add thì setBounds, cú phápịsetBounds(x,y,width,height)

Trên monitor, Java tính đi m có t a đ (0,0) là đi m trái trênể ọ ộ ể

cùng Sau đó tr c hoành (x) là chi u ngang monitor t trái sangụ ề ừ

ph i và tr c tung (y) là chi u d c monitor t trên xu ng dả ụ ề ọ ừ ố ưới

Phương th c này s t o ra m t hình ch nh t o bao quanh đ iứ ẽ ạ ộ ữ ậ ả ố

tượng b add, hình ch nh t này có t a đ góc đ u tiên là (x,y) vàị ữ ậ ọ ộ ầdài width cao height Ví d nh bài sau:ụ ư

frame.setVisible(true);

Trang 40

}

}

Nh v y là chúng ta đã setLayout(null) cho frame và l n lư ậ ầ ượ tsetBounds (kích thước cũng nh v trí) cho 2 button V y đ setư ị ậ ểkích thước cũng nh v trí cho chính frame thì dùng 2 phư ị ươ ng

Ngày đăng: 15/07/2021, 17:54

TỪ KHÓA LIÊN QUAN

w