# JavaCore: Bài tập số 1
## 1. Bài tập về phân tích dữ liệu hướng đối tượng:
:::info
💡 **Kiến thức cần có để giải quyết:**
- Lập trình hướng đối tượng và các khái niệm cơ bản
- Kỹ năng phân tích yêu cầu / phân tích hướng đối tượng
:::
Cho một thực thể (*entity*) "***Công ty TNHH Xây dựng và Đầu tư Quốc tế HOÀNG LONG***", hãy xác định những phương thức (*methods*) và thuộc tính (*attributes*) của thực thể này. Trên cơ sở đó, hãy viết ra 1 class Java đại diện cho thực thế kể trên với những yêu cầu sau:
- Xác định rõ từng access modifiers của các methods và attributes
- Dựa trên class đã thiết kế, cho biết class tổng-quát-hơn (*parent class*) của class này là gì?
- Trong trường hợp chủ doanh nghiệp muốn tạo ra một công ty con của công ty trên. Chúng ta sẽ thực hiện: (***trắc nghiệm chọn 1 đáp án đúng** và cho biết lý do chọn đáp án*)
- [ ] Tạo một class mới kế thừa (*extends*) class đã thiết kế
- [ ] Tạo một class mới tách biệt
- [ ] Tạo một object mới từ class đã thiết kế
- [ ] Tạo một class mới tách biệt và tạo một object từ class vừa nêu.
## 2. Viết chương trình Java giải quyết bài toán sau:
:::info
💡 **Kiến thức cần có để giải quyết:**
- Biến (*variable*) trong Java
- `for` trong Java
- Đọc input từ bàn phím với Java
- Kĩ năng phân tích bài toán đơn giản
:::
Nhập vào số nguyên $N$, hãy vẽ một tam giác vuông với chiều cao là $N$ tầng
Vd: Với $N = 3$, ta được
```
*
**
***
```
Yêu cầu trình bày:
- Cung cấp mã nguồn Java có thể cung cấp kết quả chính xác
- Phân tích INPUT, OUTPUT của bài toán, và cho biết các bước để giải quyết là gì?
- **Phụ**: Hãy cho biết với các INPUT đã phân tích, sẽ có những rủi ro nào xảy ra khiến chương trình có thể cho ra kết quả sai / ngừng hoàn toàn (crash)