By GokiSoft.com| 20:04 06/02/2023|
Java Basic

[Source Code] Tìm hiểu Tính chất đa hình & Tính chất trừu tượng trong Java - C2206L

Lập trình OOP:
	- T/c đóng gói -> DONE
	- T/c kế thừa -> DONE
	- T/c đa hình
		???
	- T/c trừu tượng
		???
	- Interface
		???
=====================================================
Viết chương trình quản lý sở thú:
	Animal:
		- tên
		- tuổi
		- foodType

		input
		display
		sound
	Tiger:
		- tên
		- tuổi
		- foodType

		input
		display
		sound
	Cat:
		- Tên, tuổi, foodType

		input
		display
		sound
	Dog:
		- ...

		input
		display
		sound

Tạo 1 mảng quản lý danh sách động -> Sử dụng ít nhất số biến cần dùng trong quản lý.

#Animal.java

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.gokisoft.lesson04;

import java.util.Scanner;

/**
 *
 * @author diepvan
 */
public abstract class Animal {
    String name;
    int age;
    String foodType;

    public Animal() {
    }

    public Animal(String name, int age, String foodType) {
        this.name = name;
        this.age = age;
        this.foodType = foodType;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

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

    public String getFoodType() {
        return foodType;
    }

    public void setFoodType(String foodType) {
        this.foodType = foodType;
    }
    
    public void input() {
        Scanner scan = new Scanner(System.in);
        
        System.out.println("Nhap ten: ");
        name = scan.nextLine();
        
        System.out.println("Nhap tuoi: ");
        age = Integer.parseInt(scan.nextLine());
        
        System.out.println("Nhap thuc an: ");
        foodType = scan.nextLine();
    }
    
    public void display() {
        System.out.println("Ten: " + name + ", tuoi: " + age + ", thuc an: " + foodType);
//        System.out.println(toString());
//        System.out.println(this);
    }

    @Override
    public String toString() {
        return "name=" + name + ", age=" + age + ", foodType=" + foodType;
    }
    
//    public void sound() {
//    }
    
    public abstract void sound();
}

#Cat.java

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.gokisoft.lesson04;

/**
 *
 * @author diepvan
 */
public class Cat extends Animal{

    @Override
    public void sound() {
        System.out.println("meo .. meo ..");
    }
    
    public void test2() {
        System.out.println("Xin chao ...");
    }
}

#Dog.java

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.gokisoft.lesson04;

/**
 *
 * @author diepvan
 */
public class Dog extends Animal{

    @Override
    public void sound() {
        System.out.println("Go ... go ...");
    }
    
    
    public void ok() {
        System.out.println("OKOKOK");
    }
}

#Main.java

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.gokisoft.lesson04;

import java.util.ArrayList;

/**
 *
 * @author diepvan
 */
public class Main {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.input();
        d.sound();
        
//        Animal animal = new Animal();
//        animal.input();
//        animal.sound();
        
        Cat cat = new Cat();
        cat.sound();
        
        //T/c da hinh
        Animal a = new Cat();//a -> khoi tao du lieu tu this hoac children.
        a.sound();
        
        //Ung dung -> tao sao phai su dung da hinh
        showSound(d);
        showSound(cat);
        showSound(a);
//        showSound(animal);
        
        //Ung dung -> Quan ly thong tin doi tuong
        ArrayList<Dog> dogs = new ArrayList<>();
        dogs.add(d);
        
        ArrayList<Cat> cats = new ArrayList<>();
        cats.add(cat);
        
        ArrayList<Animal> animals = new ArrayList<>();
        animals.add(a);
//        animals.add(animal);
        
        //Su dung theo y
        for (Dog dog : dogs) {
            dog.sound();
        }
        
        ArrayList<Animal> aList = new ArrayList<>();
        aList.add(d);
        aList.add(cat);
//        aList.add(animal);
        aList.add(a);
        
        for (Animal animal1 : aList) {
            animal1.sound();
        }
        
        for (Animal animal1 : aList) {
            animal1.input();
        }
        
        aList.get(1).sound();
        
        //Tim kiem vi tri Cat dau tien trong mang -> nhap -> Thoat mang
        for (Animal abc : aList) {
            if(abc instanceof Cat) {
                abc.input();
                break;
            }
        }
        
        //Dem so cat
        int count = 0;
        for (Animal animal1 : aList) {
            if(animal1 instanceof Cat) {
                count++;
            }
        }
        System.out.println("So meo: " + count);
    }
    
    static void showSound(Animal a) {
        a.sound();
    }
}

#Test.java

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.gokisoft.lesson04;

/**
 *
 * @author diepvan
 */
public class Test {
    public static void main(String[] args) {
        Tiger t = new Tiger();
        t.sound();
        
        Animal a = new Dog();
        a.sound();
        if(a instanceof Dog) {
            ((Dog) a).ok();
        }
        
        Animal abc = new Animal() {
            @Override
            public void sound() {
                System.out.println("Snake ...");
                okok();
            }
            
            public void okok() {
                System.out.println("sdsdfdsf");
            }
        };
        abc.sound();
    }
}

#Tiger.java

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.gokisoft.lesson04;

/**
 *
 * @author diepvan
 */
public class Tiger extends Animal{

    @Override
    public void sound() {
        System.out.println("Humh ... humh ...");
    }
    
}
Tags:



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

5

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

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó