Package trong java (Bài 3)
Package trong java được tạo bởi sự kết hợp của nhiều class hay interface. và trong package có thể chứa các package khác. Package thường chứa các class, interface hay sub-package có liên quan với nhau.
Package trong java – Ví dụ
//Khai báo package
package javapro;
public class Student{
private int mark=0;
public Student(int m){
mark = m;
}
...
}
Package trong java –Truy cập các thành phần trong package
Các class mà dự định sẽ được sử dụng bên ngoài package sẽ được khai báo là public.
Các package khác nhau có thể có các class trùng tên với nhau.
Nếu các package khác nhau mà có các class có tên trùng nhau thì khi sử dụng bắt buộc phải import đầy đủ tên package và tên class.
Có 4 kiểu truy cập vào package là private, protected, public và default
Từ khóa | Trong cùng class | Trong cùng package | Trong sub-package | Package khác |
private | Có | Không | Không | Không |
default | Có | Có | Không | Không |
protected | Có | Có | Có | Không |
public | Có | Có | Có | Có |
private: Chỉ có thể được truy cập bởi chính class đó. protected: Được truy cập bởi các class cùng trong package và các class là sub-class của class này. public: Được truy cập bởi tất cả các class ở cùng package hay khác package. default: Được truy cập bởi các class cùng package.
Package trong java –Tạo package trong NetBeans
Chuột phải tại project -> chọn New -> chọn Java Package
Sử dụng packages
- Cú pháp:
import tên_package.tên_class
- Ví dụ:
import javapro.Student;
import javapro.*;
- Ký hiệu *: là import tất cả các class trong package javapro.
- Một ví dụ khác về package trong java
import java.util.Scanner;
import java.io.File;
public class Example{
public void input(){
Scanner input = new Scanner(System.in);
String fileName = input.next();
File f = new File(fileName);
}
}
Package trong java –Interfaces
Trong interface chỉ có các phương thức abstract và các biến final. Khi một class thực thi một interface, nó phải viết lại (override) tất cả các phương thức trong interface. Interface là public hoặc default. Interface có thể được kế thừa.
Một interface có thể được thực hiện bởi nhiều class, và một class có thể thực thi nhiều interface. Đó chính là cách để dùng “kế thừa từ nhiều class.
Tạo interface trong NetBeans
Chuột phải tại package sẽ chứa interface -> chọn New -> chọn Java Interface
Ví dụ 1
Tạo interface tên MyInterface
package javapro;
interface MyInterface{
void mymethod1();
void mymethod2();
}
Thực thi interface
class MyClass implements MyInterface {
public void mymethod1() { //phải là public
System.out.println("Override my method 1");
}
public void mymethod2() {
System.out.println("Override my method 2");
}
void mymethod3() {//không là phương thucw trong interface
System.out.println("My method 3");
}
}
Tạo class tên SampleInterface
public class SampleInterface
public static void main (String a[]) {
MyClass mc = new MyClass();
mc.mymethod1();
mc.mymethod2();
mc.mymethod3();
}
}
Ví dụ 2
Tạo interface tên IA
interface IA {
void meth1();
void meth2();
}
Tạo interface tên IB
interface IB extends IA {
void meth3();
}
Tạo class tên MC
public class MC implements IB {
public void meth1() {
System.out.println("Implements method 1");
}
public void meth2() {
System.out.println("Implements method 2");
}
public void meth3() {
System.out.println("Implements method 3");
}
}
Package trong java – Tổng kết bài học
- Package
- Phạm vi truy cập
- Sử dụng package
- Các package thư viện
- Interface
Package trong java – Bài tập thực hành
Tạo package có tên là mypackage và thực hiện các công việc sau đây:
Bài thực hành số 1: Tạo class và đặt tên MyCircle. Viết xử lý cho phép người dùng nhập vào bán kính của một hình tròn sau đó tính diện tích và chu vi của hình tròn đó và in kết quả ra màn hình. Chương trình phải sử dụng hằng số PI có sẵn của class Math trong package java.lang
Bài thực hành số 2: Tạo class có tên PhuongTrinhBacNhat. Viết chương trình cho phép người dùng nhập vào các hệ số a và b. Biện luận nghiệm của phương trình ax + b = 0 và in kết quả ra màn hình.
Bài thực hành số 3: Công ty Yamaha Việt Nam là một công ty chuyên sản xuất xe máy với các model khác nhau như Serius, Taurus, Jupiter và cung cấp cho thị trường Việt Nam. Công ty có nhu cầu làm một phần mềm quản lý hệ thống phân phối các loại xe trên. Bạn là một thành viên trong nhóm phát triển phần mềm này và bạn được giao phải thực hiện các công việc sau
Tạo interface có tên IMotor nằm trong package motor gồm các phương thức
public void inputInfo();
public void displayInfo();
Tạo lớp MyMotor nằm trong package motor thực thi interface IMotor và có các thuộc tính sau
//Mã xe
private String code;
//Tên xe
private String name;
//Dung tích xi lanh
private int capacity;
//Kiểu xe tay ga hay xe số
private String type;
Tạo lớp Jupiter nằm trong package motor.yamaha kế thừa từ lớp MyMotor. Trong lớp Jupiter bổ sung thêm thuộc tính warranty (thời gian bảo hành) có kiểu int.
Tạo lớp Serius nằm trong package motor.yamaha kế thừa từ lớp MyMotor. Trong lớp Serius bổ sung thêm thuộc tính color có kiểu String (màu xe).
Tạo lớp Yamaha nằm trong package motor.yamaha cho phép người dùng lựa chọn chức năng thông qua các con số. Khi người dùng nhập số 1, thực hiện nhập thông tin xe Jupiter. Khi người dùng nhập số 2, thực hiện nhập thông tin xe Serius. Khi người dùng nhập số 3, hiển thị thông tin xe Jupiter. Khi người dùng nhập số 4, hiển thị thông tin xe Serius