1. Trang chủ
  2. » Công Nghệ Thông Tin

GIÁO TRÌNH LẬP TRÌNH JAVA 1 (LỚP VÀ ĐỐI TƯỢNG)

32 157 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 32
Dung lượng 1,16 MB

Nội dung

L P TRÌNH JAVA BÀI 4: L P IT NG M C TIÊU K t thúc h c b n có kh n ng Hi u rõ khái ni m i t ng l p Mơ hình hóa l p i t ng  nh ngh a c l p t o i t ng  nh ngh a tr ng, ph ng th c  nh ngh a s d ng hàm t o Hi u s package S d ng thành th o c t truy xu t Hi u c tính che d u (encapsulation) KHÁI NI M V IT NG Bi u di n i t ng th gi i th c M i i t ng c c tr ng b i thu c tính hành vi riêng c a C  c i m  Hãng s n xu t  Model N m  Màu Hành vi (Ơ tơ có th làm gì?)  Kh i ng  D ng  Phanh B t c n g t n c I M HÀNH VI CLASS LÀ GÌ? Nhóm Xe ơ-tơ Nhóm ng v t NH NGH A L P L p m t khuôn m u c s d ng mô t i t ng lo i L p bao g m thu c tính (tr ng d li u) ph ng th c (hàm thành viên) THU C TÍNH & PH Thu c tính (field) Ph Danh Hãng s n xu t Model N m Màu ng th c (method) Đ Kh i ng() D ng() Phanh() B t c n g t n c() NG TH C MƠ HÌNH L P IT Ơ tơ Ơ tơ c a D ng Thu c tính • N m = 2010 • Nhà SX=Honda • Model = Accord • Màu = Xanh Ph ng th c • Kh i đ ng • D ng • Phanh Thu c tính • N m • Nhà s n xu t • Model • Màu Ph ng th c • Kh i đ ng • D ng • Phanh Ơ tơ c a Mai Thu c tính • N m = 2012 • Nhà SX=BMW • Model = CS30 • Màu = B c Ph ng th c • Kh i đ ng • D ng • Phanh NG TÍNH TR U T NG (ABSTRACTION) Abstraction công vi c l a ch n thu c tính hành vi c a th c th v a mô t th c th ó m t b i c nh c th mà không ph i li t kê t t c thu c tính, hành vi c a th c th có Ví d : Mơ t m t sinh viên ngành CNTT có r t nhi u thu c tính hành vi ây ch s d ng mã, h tên, i m, ngành mà thôi, không c n thi t ph i mô t cao, n ng, hát, c i, nh y cò cò… NH NGH A CLASS class { ; … ; } Khai báo Khai báo ([parameters]) { // body of method } … ([parameters]) { // body of method } VÍ D N P CH NG PH Xét tr NG TH C ng h p overload sau class MayTinh{ int tong(int int tong(int } int b){return a + b;} int b, int {return a + b + c;} V i l p trên, b n có th s d ng ho c s nguyên MayTinh mt = new MayTinh(); int t1 = (5, 7); int t2 = (5, 7, 9); tính t ng HÀM T O (CONSTRUCTOR) Hàm t o m t ph ng th c d ng t o i t ng  c i m c a hàm t o c bi t cs Tên trùng v i tên l p Khơng tr l i giá tr Ví d L public class ChuNhat{ double dai, ; C N (double dai, double ){ this.dai = dai; Đ = ; } ChuNhat cn1 = new ChuNhat(20, 15); } ChuNhat cn2 = new ChuNhat(50, 25); HÀM T O (CONSTRUCTOR) Trong m t l p có th nh ngh a nhi u hàm t o khác tham s , m i hàm t o cung c p cách t o i t ng N u không khai báo hàm t o Java t ng cung c p hàm t o m c nh (không tham s ) public class ChuNhat{ double dai, ; C N (double dai, double ){ this.dai = dai; = ; } C N (double canh){ this.dai = canh; = canh; ChuNhat cn = new ChuNhat(20, 15); } ChuNhat vu= new ChuNhat(30); } T KHÓA THIS this c s d ng i di n cho i t ng hi n t i this c s d ng l p tham chi u t i thành viên c a l p (field method) S d ng this.field phân bi t field v i bi n c c b ho c tham s c a ph ng th c public class MyClass{ int field; void method(int field){ this.field = field; } T Tham } SinhVien + hoTen S + diemTB: double + xepLoai S + xuat(): void + nhap(): void + SinhVien() + SinhVien(hoTen, diemTB) DEMO Xây mơ sinh viên mơ hình T nhap() cho phép tên bàn phím; xuat() cho phép tên, hình; xepLoai() vào S hàm sinh viên PACKAGE Package c s d ng chia class interface thành t ng gói khác Vi c làm t ng t qu n lý file class (file) package (folder) a ó Ví d sau t o l p MyClass thu c gói com.poly com.poly; public class MyClass{…} Trong Java có r t nhi u gói n ng c phân theo ch c java.util: ch a l p ti n ích java.io: ch a l p vào/ra d li u java.lang: ch a l p th ng dùng… IMPORT PACKAGE L nh import c s d ng ch l p ã c nh ngh a m t package Các l p gói java.lang l p nh ngh a m t gói v i l p s d ng s c import ng m nh com.polyhcm; import com.poly.MyClass; import java.util.Scanner; public class HelloWorld{ M C S } } S ){ obj = new MyClass(); scanner = new Scanner(System.in); CT  TRUY XU T c t truy xu t c s d ng nh ngh a kh n ng cho phép truy xu t n thành viên c a l p Trong java có c t khác nhau: private: ch c phép s d ng n i b class public: công khai hoàn toàn {default}:  Là public i v i l p truy xu t gói  Là private v i l p truy xu t khác gói protected: t ng t {default} nh ng cho phép k th a dù l p cha khác gói M c che d u t ng d n theo chi u m i tên extends p1; public class A{ int a; int b; int c; int d; } TRUY XU T use use CT p1; public class B{ A x = new A(); void method(){ = 1; x.b = 1; = 1; x.d = 1; } } p2; public class C{ A x = new A(); void method(){ = 1; x.b = 1; x.c = 1; x.d = 1; } } p3; public class D extends A{ void method(){ b = 1; c = 1; d = 1; } } ENCAPSULATION Encapsulation tính che d u h t ng Nên che d u tr ng d li u S d ng ph ng th c truy xu t tr M c ích c a che d u B o v d li u T ng c ng kh n ng m r ng ng i ng d li u NON-ENCAPSULATION Gi s nh ngh a l p SinhVien công khai hoTen i m nh sau public class MyClass{ S ){ SinhVien sv = new SinhVien(); sv.hoTen = “N V Tèo”; sv.diem = 20.5; public class SinhVien{ S hoTen; public double diem; } } } Khi s d ng ng i dùng có th gán d li u cho tr ng m t cách tùy ti n  i u s x y n u i m h p l ch t n 10 ENCAPSULATION  che d u thông tin, s d ng private cho tr ng d li u private double diem; B sung ph ng th c getter setter ghi tr ng ã che d u public void setDiem(double diem){ this.diem = diem; } public String getDiem(){ return this.diem; } c ENCAPSULATION public class SinhVien{ S hoTen; Ch c n thêm double diem; mã vào hoTen){ public void setHoTen S this.hoTen = hoTen; ph ng th c } setDiem() S getHoTen(){ return this.hoTen; có nh ng x } lý d li u public void setDiem(double diem){ if(diem < || > 10){ không h p l System.out.println(“Đ ”); } public class MyClass{ else{ S ){ this.diem = diem; SinhVien sv = new SinhVien(); } } sv.setHoTen(“N V Tèo”); S getDiem(){ sv.setDiem(20); return this.diem; } } } } QUI T C T TÊN TRONG JAVA Tên (class, field, method, package, interface, variable) c t theo qui c (m m) nh sau: Tên package: toàn b ký t th ng d u ch m  java.util, com.poly Tên class, interface: Các t ph i vi t hoa ký t u  class Employee{}, class SinhVien{}, class HinhChuNhat() Tên field, method, variable: Các t ph i vi t hoa ký t u ngo i tr t u tiên ph i viêt th ng  hoTen, diem, fullName, mark  setHoTen(), input(), setDiem() Tên class, field variable s d ng danh t Tên ph ng th c s d ng ng t T NG K T N I DUNG BÀI H C  Khái ni m v i t ng  Khái ni m l p  Mơ hình i t ng l p  nh ngh a l p  T o i t ng  nh ngh a ph ng th c  N p ch ng ph ng th c  Hàm t o  Package  c t truy xu t  Encapsulation  Qui c t tên ... com.poly; public class MyClass{…} Trong Java có r t nhi u gói n ng c phân theo ch c java.util: ch a l p ti n ích java.io: ch a l p vào/ra d li u java.lang: ch a l p th ng dùng… IMPORT PACKAGE... thành viên c a l p Trong java có c t khác nhau: private: ch c phép s d ng n i b class public: công khai hoàn toàn {default}:  Là public i v i l p truy xu t gói  Là private v i l p truy xu t... } } } QUI T C T TÊN TRONG JAVA Tên (class, field, method, package, interface, variable) c t theo qui c (m m) nh sau: Tên package: toàn b ký t th ng d u ch m  java.util, com.poly Tên class,

Ngày đăng: 21/12/2017, 18:53

TỪ KHÓA LIÊN QUAN

w