By GokiSoft.com| 21:07 04/06/2020|
Java Basic

[Share Code] Bài giảng lập trình OOP trong java + Kế thừa trong Java + Đóng gói trong Java - Lớp Overview Java

[Share Code] Bài giảng lập trình OOP trong java + Kế thừa trong Java + Đóng gói trong Java - Lớp Overview Java

# Nội dung học


- Học lập trình OOP
	- Khái niệm về lập trình OOP
	- Tại sao chúng ta phải học OOP
	- Thuộc tính truy xuất
		- public
		- protected
		- private
	- Tính chất của lập trình OOP
		=> Tính đóng gói => OK => Hieu dc la OK
		=> Tính kế thừa
			=> Override
			=> Overloading
		=> Tính đa hình
		=> Tính trừu tượng
	- Interface
		=> so sánh vs tính chất trong OOP

- Quản lý điểm sinh viên
	Nhóm đối tượng
		- sinh viên
			- thuộc tính gì
			- hành động gì (phương thức)
		- môn học
			- thuộc tính gì
			- hành động gì (phương thức)
		- kỳ học
			- thuộc tính gì
			- hành động gì (phương thức)
		- lớp
			- thuộc tính gì
			- hành động gì (phương thức)
		- điểm thi
			- thuộc tính gì
			- hành động gì (phương thức)
	OOP => Tạo ra class object => quản lý độc lập về sinh viên => thuộc tính => phương thức => Lập trình OOP

- Triển khai code như thế nào
	Ví dụ:
		Sinh viên:
			Thuộc tính cần quản lý
				tên => string
				tuổi => int
				địa chỉ => string
				email => string
				số điện thoại => String
			Phương thức & hành động mà các bạn cần quản lý
				chạy
				học
				nhập thông tin
				hiển thị thông tin sinh viên
- Thuộc tính truy xuất
	- public
	- protected
	- private

- Tính kế thừa
	- Chương trình cần quản lý thông tin Công dân (citizen), Sinh Viên
	- Citizen:
		- Thuộc tính
			- Tên, tuôi, địa chỉ
		- Hành động
			- chạy, ngủ
	- Sinh viên
		- Thuộc tính
			- Tên, tuổi, địa chỉ, mã sinh viên, email
		- Hành động
			- Chạy, ngủ, học




# Phần 1: Tính bao đóng trong lập trình OOP

##ObjectTest.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lession2;

/**
 *
 * @author teacher
 */
public class ObjectTest {
    public static void main(String[] args) {
        //khoi tao ra doi tuong tu class object
        Student std1 = new Student();
        
        std1.fullname = "Nguyễn Hữu Thành";
        std1.age = 19;
//        std1.address = "Ha Noi"; => nguyen nhan address => private
        std1.setAddress("Ha Noi");
        std1.email = "nguyenhuuthanh@gmail.com";
        std1.phoneNumber = "123456789";
        
        //tao ra 1 đối tượng cụ thể.
        std1.running();
        
        //tao them 1 object moi
        Student std2 = new Student();
        
        std2.fullname = "TRAN VAN A";
        std2.age = 19;
//        std2.address = "Nam Dinh"; => nguyen nhan address => private
        std2.email = "tranvana@gmail.com";
        std2.phoneNumber = "123456789";
        
        //tao ra 1 đối tượng cụ thể.
        std2.running();
        
        //Test ham tao 1 doi so
        Student std3 = new Student("TRAN VAN B");
        std3.running();
        
        //Tét ham tao day du doi so
        Student std4 = new Student("Tran Van C", 32, "Nam Dinh", "tranvandiep.it@gmail.com", "1234567890");
        std4.running();
    }
}


##Student.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lession2;

/**
 *
 * @author teacher
 */
public class Student {
    //goi dc thuoc tin trong chinh class object cua no + tu class cung package
    protected String fullname;
    int age;
    //private => goi dc trong chinh class object
    private String address;
    //public => goi dc o tat ca cac class (chinh no + class cung package + khac package)
    public String email;
    //kieu mac dinh => protected
    String phoneNumber;
    
    public Student() {
        System.out.println("Init Student");
    }
    
    public Student(String ten) {
        fullname = ten;
    }

    public Student(String fullname, int age, String address, String email, String phoneNumber) {
        this.fullname = fullname;
        this.age = age;
        this.address = address;
        this.email = email;
        this.phoneNumber = phoneNumber;
    }
    
    public void running() {
        System.out.println(fullname + " đang chạy bộ...");
        System.out.println("Sinh vien " + fullname + " co tuoi : " + age);
    }
    
    public void learning() {
        System.out.println("goi toi phuong thuc learning...");
    }
    
    public void input() {
        System.out.println("goi toi phuong thuc input...");
    }
    
    public void display() {
        System.out.println("goi toi phuong thuc display...");
    }

    public String getFullname() {
        return fullname;
    }

    public void setFullname(String fullname) {
        this.fullname = fullname;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age <= 0) {
            System.err.println("Nhap sai du lieu >> age khong dc <= 0");
            return;
        }
        this.age = age;
    }
}


##Test.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package leassion2.sub;

import lession2.Student;

/**
 *
 * @author teacher
 */
public class Test {
    public static void main(String[] args) {
        Student std = new Student();
//        std.fullname = "ABC"; => khac package vs class Student => error
        std.setFullname("Tran Van A");
        std.setAge(-12);
//        std.address = "Ha Noi"; => nguyen nhan address => private
        std.setAddress("Nam Dinh");

        std.running();
    }
}

#Phần 2: Tìm hiểu tính chất kế thừa


##OOPTest.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lession2;

/**
 *
 * @author teacher
 */
public class OOPTest {
    public static void main(String[] args) {
        Citizen citizen = new Citizen("A", 22, "Ha Noi");
        citizen.running();
        
        StudentNew std = new StudentNew("tranvana@gmail.com", "R001", "B", 12, "Nam Dinh");
        std.running();
        
        std.input();
    }
}


##Citizen.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lession2;

import java.util.Scanner;

/**
 *
 * @author teacher
 */
public class Citizen {
    String fullname;
    int age;
    String address;

    public Citizen() {
    }

    public Citizen(String fullname, int age, String address) {
        this.fullname = fullname;
        this.age = age;
        this.address = address;
    }

    public String getFullname() {
        return fullname;
    }

    public void setFullname(String fullname) {
        this.fullname = fullname;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
    
    public void running() {
        System.out.println("Citizen dang chay");
    }
    
    public void sleeping() {
        System.out.println("Citizen dang ngu");
    }
    
    public void input() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Nhap ten: ");
        fullname = scan.nextLine();
        
        System.out.println("Nhap tuoi: ");
        age = Integer.parseInt(scan.nextLine());
        
        System.out.println("Nhap dia chi: ");
        address = scan.nextLine();
    }
}


##StudentNew.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lession2;

import java.util.Scanner;

/**
 *
 * @author teacher
 */
public class StudentNew extends Citizen{
    String email;
    String rollNo;

    public StudentNew() {
    }

    public StudentNew(String email, String rollNo, String fullname, int age, String address) {
        super(fullname, age, address);
        this.email = email;
        this.rollNo = rollNo;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getRollNo() {
        return rollNo;
    }

    public void setRollNo(String rollNo) {
        this.rollNo = rollNo;
    }

    @Override
    public void running() {
        //2 loai => viet lai toan vo code trong class child
        System.out.println("Sinh vien dang chay");
    }
    
    public void learning() {
        System.out.println("Sinh vien dang hoc");
    }

    @Override
    public void input() {
        super.input();
        
        Scanner scan = new Scanner(System.in);
        System.out.println("Nhap MSV: ");
        rollNo = scan.nextLine();
        
        System.out.println("Nhap email: ");
        email = scan.nextLine();
    }
    
    public void input(String param) {
        System.out.println("Test");
    }
    
    public void input(String param1, String param2) {
        System.out.println("Test");
    }
}


Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)