Professional Documents
Culture Documents
1
Lp trinh hng i tng trong Java
2
Lp trinh hng i tng trong Java
3
i tng va lp, mang
4
i tng va lp, mang
myBox width
Box Object
height
m
depth
ybox
myBox2
5
i tng va lp, mang
}
void content( ) {
System.out.println(s);
}
}
class UngDung {
public static void main(String args[]){
BaiTho p1 = new BaiTho(Chi co thuyen moi hieu);
BaiTho p2 = new BaiTho(Bien menh mong nhuong nao);
p1.content();
p2.content();
System.out.println(So cau tho la : +BaiTho.i);
}
}
Khi tao i tng p1, p2 bi toan t new, ham dng BaiTho() c goi, va i tng ln 1
Vi du 2:
class BaiTho2 {
static int i;
String s;
BaiTho2(String ss) { // Ham khi tao
s = ss; i++;
}
static int number() { // Ham lp
return i;
}
String content() { // Ham i tng
return s;
}
}
class UngDung2 {
public static void main (String args[]) {
System.out.println(Bai tho co +BaiTho2.number()+ cau);
BaiTho2.p1 = new BaiTho2(Chi co thuyen moi hieu);
BaiTho2.p2 = new BaiTho2(Bien menh mong nhuong nao);
System.out.println(Bai tho co +BaiTho2.number()+ cau);
System.out.println(Cau tho\n+p1.content().toUpperCase()+\nco +
p1.content().length() + ky tu);
System.out.println(Tu \tinh yeu\ bat dau sau ky tu thu+
p2.content().indexOf(tinh yeu)+ trong cau\n+
p2.content().toUpperCase());
}
}
Goi ham lp BaiTho2.number() luc cha goi ham dng BaiTho2 khi tao i tng se cho tri
0
p1.content() tra v mt i tng String
6
i tng va lp, mang
- Type : Kiu d liu do ham tra v, co th la kiu bt ky, k ca cac kiu lp do ban tao ra. Nu
ham khng tra v gia tri nao, kiu tra v cua no phai la void.
- Cac ham co kiu tra v khng phai la void se tra v mt gia tri cho chng trinh goi no dung
dang cu lnh return nh sau :
return biu thc;
Gia tri cua biu thc c tinh va tra v cho ham
- Tt ca thng tin ban mun truyn c gi thng qua tham s nm trong hai du ( ) ngay sau
tn ham. Nu khng co tham s vn phai co ( )
Parameter-List : Danh sach tham i phn cach bi cac du phy, mi tham i phai c khai
bao kiu, co th la kiu bt ky, co dang : Type Parameter1, Type Parameter2 ...
7
i tng va lp, mang
8
i tng va lp, mang
5. Ham huy
Cac i tng cp phat ng bng toan t new, khi khng tn tai tham chiu nao n i
tng, i tng o xem nh khng con cn n na va b nh cho no co th c t ng giai
phong bi b thu gom rac (garbage collector). Trinh thu gom rac hoat ng trong mt tuyn oan
(Thread) c lp vi chng trinh cua ban. Ban khng phai bn tm gi i vi cng vic nay.
Sau nay ban se hiu ro tuyn oan la th nao
Tuy nhin, Java cung cho phep ta vit ham huy, co th cung cn thit cho nhng trng
hp nao o. Ham huy trong Java chi c goi bi trinh thu gom rac, do vy ban kho oan trc
vao luc nao ham huy se c goi
Dang ham huy nh sau :
protected void finalize() {
// Body of Method
}
6. T khoa this
Nu bin c inh nghia trong thn ham, o la bin cuc b chi tn tai khi ham c
goi. Nu bin cuc b nh vy c t tn trung vi bin i tng hoc bin lp, no se che
khut bin i tng hay bin lp trong thn ham :
Vi du :
class ViDu {
int test = 10; // Bin i tng
void printTest() {
int test = 20; // Bin cuc b
System.out.println(test = +test); // In bin cuc b
}
public static void main(String args[]) {
ViDu a = new ViDu();
a.printTest();
}
}
T khoa this co th dung bn trong bt c phng thc nao tham chiu n i tng
hin hanh, khi bin i tng trung tn vi bin cuc b.
9
i tng va lp, mang
10
i tng va lp, mang
Nh kha nng nap chng ham, ban chi cn nh mt tn ham cho cac ham khac nhau cung
chc nng
Chng trinh s dung lp MyRect xy dng trn :
import java.awt.Point;
class UngDung {
public static void main(String args[]) {
MyRect rect = new MyRect();
rect.buildRect(25,25,50,50);
rect.display();
rect.buildRect(new Point(10,10), new Point(20,20));
rect.display();
rect.buildRect(new Point(10,10), 50, 50);
rect.display();
}
}
8. Truyn tham i
Java dung ca hai cach truyn tham i : truyn bng gia tri va truyn bng tham chiu,
tuy vao cai gi c truyn
- Khi ta truyn mt kiu s cp cho phng thc, no se truyn bng gia tri. Vi vy nhng gi xay
ra vi tham i trong phng thc, khi ra khoi phng thc se ht tac dung
- Khi ta truyn mt i tng (kiu phc hp) cho phng thc, no se truyn bng tham chiu.
Vi vy, thay i i tng bn trong phng thc anh hng n i tng dung lam tham
i.
Vi du 1 :
class ViDu {
void tinhToan(int i, int j) {
i *= 2;
j /= 2;
}
}
class UngDung {
public static void main(String args) {
ViDu o = new ViDu();
int a = 15, b = 20;
System.out.println(a va b trc khi goi : +a+ +b);
o.tinhToan(a, b);
System.out.println(a va b sau khi goi : +a+ +b);
}
}
Kt qua cua chng trinh :
a va b trc khi goi : 15 20
a va b sau khi goi : 15 20
Vi du 2 :
class ViDu {
int a, b;
ViDu (int i, int j) {
a = i;
b = j;
}
11
i tng va lp, mang
void tinhToan(ViDu o) {
o.a *= 2;
0.b /= 2;
}
}
class UngDung {
public static void main(String args[]) {
ViDu o = new ViDu(15, 20);
System.out.println(o.a va o.b trc khi goi : +o.a+ +o.b);
o.tinhToan(o);
System.out.println(o.a va o.b sau khi goi : +o.a+ +o.b);
}
}
Kt qua chng trinh :
o.a va o.b trc khi goi : 15 20
o.a va o.b sau khi goi : 30 10
IV. LP K THA
3. T khoa super
i khi ban khng mun thc hin vit chng mt phng thc ma chi mun thm chc
nng vao phng thc. lam c iu nay, ban goi phng thc c vit chng dung t
khoa super. T khoa super dung khi lp con cn tham chiu lp cha trc tip cua no. Super co
hai dang cu phap :
- Dang 1 : Ham khi tao lp cha phai c goi trc ham khi tao cua lp con. Nu trong inh
12
i tng va lp, mang
nghia ham khi tao lp con khng co cu lnh goi ham khi tao lp cha, trinh bin dich Java se
t ng a vao cu lnh goi ham khi tao mc inh cua lp cha co dang : classname()
Ban co th t thm lnh goi ham khi tao lp cha co dang nh sau :
super(Parameter-List)
Parameter-List la danh sach cac tham i cn thit cho ham khi tao cua lp cha. super() phai
lun lun la phat biu u tin c thc hin trong ham khi tao cua lp con
Vi du :
class MyPoint {
int x, y;
MyPoint(int x, int y) {
this.x = x;
this.y = y;
}
void display() {
System.out.print(x = +x+, y = +y+\n);
}
}
class MyPoint2 extends MyPoint {
int z;
String name;
MyPoint2(int x, int y, int z, String name) {
super(x,y); // Khi tao 2 bin x, y bng cach goi
this.z = z; // ham dng cua lp cha
this.name = name;
}
void display() { // Vit chng ham k tha t lp cha
System.out.print(x = +x+, y = +y+, z = +z+ +name
:+name+\n);
}
}
- Dang 2 : dung ham lp con truy xut ham k tha t lp cha :
super.Member
Member co th la phng thc hay bin cua i tng
Vi du : Vit lai ham display() trong class MyPoint2, co goi ham k tha t lp cha :
void display() {
super.display();
System.out.print(, z = +z+ +name :+name+\n);
}
13
i tng va lp, mang
14
i tng va lp, mang
15
i tng va lp, mang
16
i tng va lp, mang
17
i tng va lp, mang
18
i tng va lp, mang
Hai tham i Object chi inh mang ngun va mang ich. Ba tham i int chi vi tri bt
u trong mi mang ngun va ich, va s thanh phn sao chep. Biu nay minh hoa vic
sao chep :
Vi du :
public class ArrayCopyDemo {
public static void main(String[] args) {
char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',
'i', 'n', 'a', 't', 'e', 'd' };
char[] copyTo = new char[7];
System.arraycopy(copyFrom, 2, copyTo, 0, 7);
System.out.println(new String(copyTo));
}
}
Chu y rng mang ich phai c cp phat va phai u ln cha d liu c sao chep
19
Goi va giao din
I. GOI
Goi la ky thut phn hoach khng gian tn lp, giao din thanh nhng vung d quan ly
hn. Vi du khi ban tao mt lp trong mt goi nao o, ban khng cn phai kim tra xem no co bi
trung tn vi mt lp nao o trong goi khac khng.
Goi bao gm hai ky thut t tn va ky thut iu khin truy xut. Ban co th cp hay
khng cp quyn truy xut cac lp bn trong goi i vi cac oan ma nm ngoai goi. Ban cung
co th xac inh thanh phn nao cua lp ma chi co cac thanh phn trong cung mt lp mi co
quyn truy xut.
20
Goi va giao din
public X X X X
Khng co X X X
Vi du :
package Greek;
public class Alpha {
protected int i;
protected void protectedMethod() {
System.out.println(Protected Metho);
}
}
class Gamma {
void accessMethod() {
Alpha a = new Alpha();
a.i = 10; // Hp l
a.protectedMethod(); // Hp l
}
}
package Latin;
import Greek.*;
class Delta extends Alpha {
void accessMethod (Alpha a, Delta d) {
a.i = 10; // Khng hp l
d.i = 10; // Hp l
a.protectedMethod(); // Khng hp l
d.protectedMethod(); // Hp l
}
}
3. S dung goi
Java a ra phat biu import nhng lp nao o hay toan b goi co th thy c, nghia
la ban co th s dung lp trc tip qua tn cua no, khng cn dung du chm truy xut
Trong tp tin ngun Java, phat biu import t ngay sau phat biu package (nu tn tai)
va trc bt c inh nghia lp nao
import PackageName1[.PackageName2].ClassName;
import PackageName1[.PackageName2].*;
Vi du : import java.util.Date;
import java.io.*;
Tt ca cac lp chun cua Java lu trong goi tn la java. Ban phai nhp tng goi hay lp
ban mun s dung, ring lp goi java.lang lu nhiu chc nng thng dung, c import ngm
inh bi b bin dich cho tt ca cac chng trinh.
Phat biu import cua goi chi co gia tri trn cac thanh phn khai bao public cua no.
21
Goi va giao din
thc cua chung khai bao khng co thn. Trong thc t, iu nay co nghia rng ban co th inh
nghia nhng giao din ma khng cn am nhim phn hin thc no. S lng lp hin thc mt
giao din la tuy y. Mt lp cung co th hin thc s lng tuy y giao din.
hin thc mt giao din, mt lp phai cai t y u cac phng thc inh nghia
trong giao din. Vi t khoa interface, Java cho phep ban co nhng tin ich y u cho c im
mt giao din, nhiu phng thc cua tinh a hinh
Giao din c thit k h tr s quyt inh phng thc ng luc thi gian chay.
Thng thng, lp nay co th goi phng thc cua lp kia, ca hai lp cn hin din luc thi
gian dich. iu nay lam cho mi trng lp tr nn tinh va khng co kha nng m rng. Trong
mt h thng nh vy cy phn cp cang ngay cang bi y ln cao. Vi vy, giao din c inh
nghia han ch vic ngay cang nhiu lp con. No tach s inh nghia mt phng thc hay tp
cac phng thc ra khoi cy phn cp k tha. Vi cac giao din phn cp khac cac lp, do o cac
lp khng co quan h trong s phn cp cung co th hin thc cung mt giao din. Ta co th
thy y thc s la th manh giao din
Acess interface InterfaceName {
Type MethodName1(Parameter-List);
...
Type MethodNamen(Parameter-List);
Type Final-Var1 = Value;
Type Final-Varn = Value;
}
- Acess co th la public hay khng. Khi khng cha c ta nao, access la mc inh va giao din
chi co gia tri i vi cac thanh phn khac khai bao trong goi. Khi khai bao public, moi oan ma
u co th s dung giao din. Tt ca cac phng thc va bin hiu ngm la public nu giao din
khai bao la public
- Cac phng thc la cac phng thc tru tng, khng co thn, chung khng c hin thc
trong giao din.
- Cac bin co th khai bao trong khai bao giao din. Chung hiu ngm la final va static, nghia la
chung khng th bi thay i bi s hin thc cua lp. Chung phai c khi tao vi nhng gia
tri hng.
22
Goi va giao din
interface KiemTra {
void inSo(int p);
}
class HienThuc implements KiemTra {
public void inSo(int p) {
System.out.println(Gia tri cua p la : +p);
}
void boSung() {
System.out.println(Class hin thc giao din co th inh nghia thm +
thanh vin khac hay khng);
}
}
Vi du 2 :
class HTKhac implements KiemTra {
public void inSo(int p) {
System.out.println(Binh phng cua p la : +p*p);
}
}
3. Truy xut hin thc thng qua tham chiu giao din
Ban co th khai bao mt bin tham chiu n i tng kiu giao din ch khng hn la
lp. Khi ban goi phng thc thng qua mt trong nhng tham chiu n i tng kiu giao
din hay lp hin thc giao din, phin ban ung se c goi da trn th hin thc s cua giao
din ang tham chiu n. Phng thc thc thi c tim t ng luc chay.
Vi du :
class UngDung {
public static void main (String args[] {
KiemTra c = new HienThuc(); //c chi bit ham khai bao trong giao din
HienThuc d = new HienThuc(); //d bit cac ham khai bao trong HienThuc
HTKhac e = new HTKhac(); //e bit cac ham khai bao trong HTKhac
c. inSo(50);
c = d; // c by gi tham chiu n i tng kiu HienThuc
c.bo Sung();
c = e; // c by gi tham chiu n i tng kiu HTKhac
c. inSo(50);
}
}
Kt qua chng trinh la :
Gia tri cua p la : 50
Class hin thc giao din co th inh nghia thm thanh vin khac hay khng
Binh phng cua p la : 2500
23
Goi va giao din
24
Lp String va Number
1. Lp String
Tao mt i tng
Nhiu String c tao t cac hng chui. Khi trinh dich bt gp mt chui ky t bao gia
cp nhay kep, no tao ra mt i tng chui ma co gia tri la chui bao gia cp nhay kep. Ban co
th dung hng String bt ky u ban dung i tng String
Ban co th tao i tng chui nh bt ky i tng nao khac cua java, dung t khoa
new
String s = new String();
String s = new String("Gobbledygook.");
hay co th vit :
25
Lp String va Number
26
Lp String va Number
- int indexOf(String string, int from) : tra v vi tri tim thy u tin (cui cung) cua chui
string, k t vi tri from v cui chui (hay u chui)
int lastIndexOf(String string, int from)
- String subString(int startIndex, int endIndex) : tra v chui con cua mt chui bt u t vi
tri startIndex n vi tri endIndex-1, nu khng co endIndex thi ly n cui chui
String org = This is a test;
String result = ;
result = org.subString(8);
- String replace(char orginal, char replacement) : thay th ky t replacement cho ky t
orginal
String s = Hello.replace(l,w); // Cho s bng Hewwo
- String trim() : ct bo khoang trng trc va sau chui
- String toLowerCase() : i chui thanh chui thng
- String toUpperCase() : i chui thanh chui hoa
String s = This is a test;
String upper = s.toUpperCase();
- Toan t + : kt ni hai i tng String, hay mt i tng String va mt gia tri khac thanh
i tng String,
String s1 = "two";
System.out.println("one" + s1 + "three");
System.out.println("Word v. " + 9+7);
Vi i tng String khng th thay i do o bt c luc nao ban mun thay i chung,
ban phai copy chui vao StringBuffer, nhng vi toan t +, ban co th vit nh sau vi Java t
chuyn sang StringBuffer va thay i chui
s1 = s1 + three;
Vi vy, co th vit lai chng trinh ao chui trn, khng cn thit phai chuyn sang
StringBuffer
public class ReverseString {
public static String reverse(String source) {
int i, len = source.length();
String dest = ;
for (i = (len - 1); i >= 0; i--)
dest = dest + source.charAt(i);
return dest;
}
}
- static String valueOf(object/var x) :
la ham lp, tra v mt chui chuyn i cac bin kiu s cp hay i tng x thanh mt
String
Vi du : PI la mt bin lp cua lp Math, in gia tri cua s PI :
System.out.println(String.valueOf(Math.PI));
2. Lp StringBuffer
27
Lp String va Number
III. LP NUMBERS
Nh a noi trn, trong goi java.lang co sn nhng lp tng ng vi cac kiu s cp, co
th dung thay cho kiu s cp : lp Integer thay cho kiu int, lp Boolean cho kiu boolean
Lp Number la lp cha cua moi lp boc kiu
Cac lp boc kiu s: Byte, Double, Float, Integer, Long, Short
Cac lp bao boc cho cac kiu d liu khac : Boolean, Character, Void, Math
1. Tao mt i tng
Float f = new Float(25.5);
Float f = new Float(24.5);
- Cac ham khi tao cua cac lp boc kiu s
Float(double n)
Float(float n)
Float(string str)
Double(double n)
Double(string str)
Tng t vi cac lp boc kiu s khac
28
Lp String va Number
int intValue()
long longValue()
double doubleValue()
float floatValue()
Integer intObj = new Integer(25);
int i = intObj.intValue(); // cho i = 25
- Cac phng thc lp chuyn i mt chui thanh gia tri s tng ng
static byte parseFloat(String str)
static short parseShort(String str)
static int parseInt(String str)
static long parseLong(String str)
static double parseDouble(String str)
static float parseFloat(String str)
String s = 42;
int i =Integer.parseInt(s); // cho i = 42
- int compareTo(floatObj/floatVar f ) : so sanh gia tri cua i tng s vi i tng hay bin
s f, tra v gia tri :
nu = 0 : bng nhau
nu = s m : gia tri cua i tng nho hn f
nu = s dng : gia tri cua i tng ln hn f
- boolean equals(floatObj f ) : nu = true nghia la gia tri cua i tng bng f
- string toString() : chuyn mt i tng thanh String.
Tt ca cac lp k tha toString t lp Object va nhiu lp khac trong goi java.lang vit e
phng thc nay cung cp mt cai t ma co y nghia vi class o. Chng han, cac lp boc
kiu Character, Integer, Boolean u vit e toString
Vi du : Integer i = new Integer(20);
System.out.println(i.toString());
- static String toString(var n) : y la ham lp chuyn bin s n thanh chui
String s = Integer.toString(25) // Cho chui s la 25
- static Float valueOf(String str) : y la ham lp tra v i tng Float cua gia tri str, tng t
vi cac lp boc kiu s khac
String s = 42.5;
Integer i = Integer.valueOf(s);
Vi du : Vit oan chng trinh nhp : ho tn khng qua 20 ky t, nm sinh >1970 va <2100, co
kim tra cho n khi ngi dung nhp ung
import java.io.*;
public class Nhap {
public static void main (String [] args) throws IOException {
DataInputStream kbd = new DataInputStream (System.in);
String s = null;
String ns = null;
// Nhap ho ten
while (true) {
System.out.print("Nhap Ho va ten : ");
s = kbd.readLine();
if ( (s.length() <=20) && (s.length() != 0) ) {
System.out.println("Ho va ten la : "+ s);
break;
}
29
Lp String va Number
30
Muc luc
MUC LUC
Chng : LP TRINH HNG I TNG TRONG JAVA
I. KHAI NIM LP TRINH HNG I TNG
1. Lp trinh hng i tng .......................................................................................
2. Tru tng hoa .........................................................................................................
II. C CH TRIN KHAI M HINH HNG I TNG
1. Tinh ong goi ...........................................................................................................
2. Tinh k tha..............................................................................................................
3. Tinh a hinh..............................................................................................................
31
Muc luc
32