intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Class, Object Và Vấn Đề Đa Xạ Trong Java

Chia sẻ: Nguyễn Thanh Hà Nguyễn Thanh Hà | Ngày: | Loại File: PDF | Số trang:3

181
lượt xem
71
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Java là một công nghệ xây dựng các ứng dụng phần mềm có vị trí rất lớn trong những năm cuối thế kỉ 20, đầu thế kỉ 21. Nó được coi là công nghệ mang tính cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạy thống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần. Lần đầu tiên xuất hiện vào năm 1992 như là một ngôn ngữ dùng trong nội bộ tập đoàn Sun Microsystems để xây dựng ứng dụng điều khiển các bộ xử lý bên trong máy...

Chủ đề:
Lưu

Nội dung Text: Class, Object Và Vấn Đề Đa Xạ Trong Java

  1. Class, Object Và V n a X Trong Java Java là m t ngôn ng thu n hư ng i tư ng. Nó mang y các c tính c a m t ngôn ng hư ng i tư ng như: • Encapsulation – óng gói: Hides the implementation details of an object and therefore hides its complexity. • Abstraction – tr u tư ng hóa: we just focuses on the essential features of an object. • Inheritance – k th a: creates a hierarchy of clauses and helps in reuse of attibutes and methods of class. • Polysmorphism – a x : performs different reactions in objects in response to the some method Các b t c a m t method: public: c th truy c p t bên ngoài class protected: ch ư c truy c p t class ó và các class k th a t class ó private: ch ư c truy c p trong class nh nghĩa static: phương th c chung cho m i m u c a class abstract: không cài t gì trong class, vi c cài t ư c giao cho các class th a c a class ó final: không cho phép overloading các class d n xu t native: m t cài t ph thu c m t ngôn ng khác, như C hay h p ng synchronized: dùng ch m t phương th c t i h n ngăn các tác ng c a các object khác lên object trong khi vi c ng b hóa ang th c hi n. Các b t c a m t class: public: l p có th truy c p t các l p khác trong package final: l p không cho phép t o d n xu t abstract: l p tr u tư ng L p tr u tư ng (abstract): class không c th , ch a nh ng method nhưng không có dòng l nh thi hành phương th c ó, vi c thi hành method ư c giao l i cho các l p k th a l p ó Ví d : th c ăn là m t class tr u tư ng cho các class c th như cơm, cháo. Class th c ăn có phương th c mùi v nhưng khi nói mùi v c a th c ăn chung chung ta không nh nghĩa ư c, nhưng class cơm k th a t class th c ăn thì có mùi v là khô, class cháo có mùi v là có mùi v là l ng class com extends thucAn{ abstract void muiVi(){ //kho } abstract class thucAn{ } abstract void muiVi(); } class chao extends thucAn{ abstract void muiVi(){ //long } }
  2. M t l n n a chúng ta kh ng nh abstract là m t class không th bi t và nh nghĩa các phương th c nhưng không có s thi hành c th , vi c thi hành các phương th c này ư c giao l i cho các class k th a. ây là tư tư ng chính cho v n a hình, a x trong Java s ư c c p ph n sau. Giao di n (interface): Interface là m t khái ni m m i trong các ngôn ng l p trình hi n i như C++, C#. Interface là giao di n c a m t l p i tư ng. Interface c a m t class là ph n c t các method c a class ó nhưng không bao g m ph n cài t, vi c cài t các method này ư c giao l i cho các class k th a t các interface này. M t class k th a m t interface nào thì b t bu c ph i cài t t t c các method c a interface ó. M t i tư ng có th ưa ra nhi u interface c a mình, và class k th a interface nào ph i cài t y các method c a interface ó. Java không cho phép a k th a (m t class c a Java không th có hơn m t class cha) nhưng nh c i m này (interface) cho phép cài t nhi u giao di n th a hư ng thêm các vùng và method c a nh ng interface này. Interface ư c khai báo như là m t l p nhưng các thu c tính là h ng (final) và các phương th c là abstract (có nghĩa là các phương th c u r ng dù không có t khóa abstract) và trong các l p s d ng interface ph i cài t các phương th c này m t class k th a m t giao di n ta dùng t khóa implements (thay vì extends) public interface MyInterface { static final String s = "Interface"; public void outText(); } //--------------------------- public class Ex1 implements MyInterface{ public void outText(){ System.out.println("Ex1 thua ke interface"); } } //--------------------------- public class Ex2 implements MyInterface{ public void outText(){ System.out.println("Ex2 thua ke interface"); } } //--------------------------- public class Interface { public static void main(String args[]){ Ex1 e1 = new Ex1(); e1.outText(); Ex2 e2 = new Ex2(); e2.outText(); } } a x trong Java: Phát bi u bài toán: M t công ty có 2 lo i nhân vi n là k sư và công nhân, m i lo i nhân viên có các thu c tính chung như tên, lương cơ b n nhưng có phương th c tính lương khác nhau v i k sư h s lương là 2 và công nhân h s lương là 1. Vi t chương trình tính lương nhân viên cho công ty Mô hình hóa:
  3. Phân tích theo hư ng i tư ng ta có 2 class chính là class k sư và class công nhân cùng m t class chung là class nhân viên. Hai class k sư và công nhân cùng k th a class chung là nhân viên. V n phát sinh là m i class có cùng method tính lương nhưng cách tính l i khác nhau. M t trong các cách gi i quy t là dùng c tính a hình, a x trong hư ng i tư ng (c th ây là Java) kySu nhanVien congNhan abstract class nhanVien { protected String ten = null; protected int lcb = 0; abstract int tinhLuong(); } //---------------------------- public class congNhan extends nhanVien{ public congNhan(){ this.ten = "Cong nhan B"; this.lcb = 100; } public int tinhLuong(){ return (this.lcb * 1); } } //--------------------------- public class kySu extends nhanVien{ public kySu(){ this.ten = "Ky su A"; this.lcb = 100; } public int tinhLuong(){ return (this.lcb * 2); } } //--------------------------- public class Main { public static void main(String args[]){ nhanVien a; a = new congNhan(); System.out.println(a.tinhLuong()); a = new kySu(); System.out.println(a.tinhLuong()); } } Chúng ta t o m t bi n a ki u nhanVien nhưng khi c n s d ng a là công nhân hay k sư chúng ta có th new v i class tương ng, và khi tính lương không c n quan tâm dùng method tinhLuong() c a class nào mà ch c n ghi a.tinhLuong().
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0