Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

Lp v i tng trong Java

Ni dung
nh ngha lp Thuc tnh Phng thc Kim sot truy cp Phng thc khi to Thao tc vi i tng

Nguyn Vit H

Lp v i tng trong Java

Ti liu tham kho


Thinking in Java, chapter 1, 2 Java how to program, chapter 8

Nguyn Vit H

Lp v i tng trong Java

nh ngha lp
Lp c nh ngha bi class class_name { ... } V d: class MyDate { }
Nguyn Vit H Lp v i tng trong Java 4

i tng
i tng c thao tc thng qua tham chiu
Tham chiu ng vai tr gn ging nh mt con tr

i tng phi c to ra mt cch tng minh bng ton t new MyDate d; d = new MyDate(); MyDate myBirthday = d;
5

Nguyn Vit H

Lp v i tng trong Java

Thuc tnh, phng thc v kim sot truy cp


class MyDate { private int year, mon, day; public int getYear() { return year; } public boolean setYear(int y) { ... } ... }
6

Nguyn Vit H

Lp v i tng trong Java

MyDate d = new MyDate(); ... d.year = 2005; // compile error d.setYear(2005); System.out.println(Year= + d.getYear());

Nguyn Vit H

Lp v i tng trong Java

Phng thc trng tn (overload)


C th nh ngha cc phng thc trng tn, tuy nhin phi phn bit bi danh sch tham s class MyDate { public boolean setMonth(int m) { } public boolean setMonth(String s) { } } d.setMonth(9); d.setMonth(September);

Nguyn Vit H

Lp v i tng trong Java

Phng thc khi to (constructor)


D liu nn c khi to trc khi s dng
li khi to l mt trong cc li ph bin

Phng thc khi to


l phng thc c bit c gi t ng sau khi to ra i tng nhm mc ch chnh l khi to cho cc thuc tnh ca i tng
Nguyn Vit H Lp v i tng trong Java 9

Phng thc khi to


C tn trng vi tn lp Khng nhn gi tr tr li Mi khi i tng c to ra bi ton t new, h thng s t ng gi phng thc khi to.
nu khng khai bo, h thng s gi constructor mc nh l mt phng thc rng
Nguyn Vit H Lp v i tng trong Java 10

V d: Constructor rng
class SayMsg { } SayMsg msg = new SayMsg();

Nguyn Vit H

Lp v i tng trong Java

11

V d: Constructor mc nh
class SayMsg { SayMsg() { System.out.println(Hello); } } ... SayMsg msg = new SayMsg();

Nguyn Vit H

Lp v i tng trong Java

12

V d:
class SayMsg { SayMsg() { System.out.println(Hello); } SayMsg(String s) { System.out.println(s); } } ... SayMsg msg1 = new SayMsg(); SayMsg msg2 = new SayMsg(Java);
13

Nguyn Vit H

Lp v i tng trong Java

V d:
class SayMsg { SayMsg(String s) { System.out.println(s); } } ... SayMsg msg1 = new SayMsg(); SayMsg msg2 = new SayMsg();

// error

Nguyn Vit H

Lp v i tng trong Java

14

Copy constructor
Khi to i tng bng mt i tng khc public class MyDate { private int year, month, day; public MyDate() {...} public MyDate(MyDate d) { year = d.year; month = d.month; day = d.day; } ... }
Nguyn Vit H Lp v i tng trong Java 15

MyDate d = new MyDate(); d.setYear(2005); d.setMonth(9); d.setDay(12); MyDate openDay = new MyDate(d); MyDate dd = d;

Nguyn Vit H

Lp v i tng trong Java

16

Kim sot truy cp


public class MyDate { private int year, month, day; public MyDate() {...} public MyDate(MyDate d) { year = d.year; // year = d.getYear(); month = d.month; day = d.day; } ... }

Nguyn Vit H

Lp v i tng trong Java

17

You might also like