Ngân hàng câu hỏi của chương

Câu hỏi: PRM393 - Dart nâng cao: OOP, thư viện, cấu trúc điều khiển

54 câu trắc nghiệm kèm lời giải của môn Lập trình di động (Flutter) - Mobile Programming, xếp theo thứ tự nhập vào ngân hàng. Trang 2/3 — câu 21–40.

Danh sách câu hỏi

40/54 câuCòn 14
ATrue
BFalse
Lời giải
File 'main.dart' đóng vai trò là điểm nhập vào bắt buộc cho bất kỳ ứng dụng Flutter nào. Nó là nơi khởi tạo ứng dụng và chứa mã nguồn chính của ứng dụng. Khi bạn tạo một ứng dụng Flutter mới, Dart sẽ tự động tạo một file 'main.dart' với một cấu trúc cơ bản. Trong file này, bạn sẽ khai báo các widget và các hàm cần thiết để chạy ứng dụng. Vì vậy, file 'main.dart' là điểm bắt đầu quan trọng và không thể thiếu cho bất kỳ ứng dụng Flutter nào.
Mở trang câu hỏi này →
AOnly to create widgets
BReplace `main()`
CForce a private class
DJSON parsing, singletons, returning subtypes or cached instances—not always a new instance per call
Lời giải
Các nhà máy xây dựng là một phương thức đặc biệt trong lập trình, được sử dụng để tạo ra các đối tượng mới mà không cần phải tạo một đối tượng mới hoàn toàn. Thay vào đó, nó có thể được sử dụng để tạo ra các đối tượng đã được lưu trữ trước đó, chẳng hạn như đối tượng singleton, hoặc để tạo ra các đối tượng con (subtypes) từ các đối tượng cha (super types). Điều này giúp giảm thiểu việc tạo ra các đối tượng mới và cải thiện hiệu suất của chương trình. Ngoài ra, các nhà máy xây dựng cũng có thể được sử dụng để thực hiện các tác vụ phức tạp như JSON parsing, nơi mà việc tạo ra các đối tượng mới không phải là cần thiết.
Mở trang câu hỏi này →
AMixes mixin implementation into the class (subject to `on` constraints)
BOnly in tests
CRemoves methods
DImports a file
Lời giải
Khi sử dụng từ khóa `with` kèm theo tên mixin trong một lớp, điều này có nghĩa là lớp đó đang kế thừa các tính chất và phương thức từ mixin đó. Tuy nhiên, việc kế thừa này có thể bị hạn chế bởi các ràng buộc `on`. Điều này cho phép bạn linh hoạt hơn trong việc quản lý các tính chất và phương thức của mixin, giúp giảm thiểu sự trùng lặp và tăng cường tính tái sử dụng của mã. Ví dụ, nếu bạn có một mixin có tên là `MyMixin` và bạn muốn lớp `MyClass` kế thừa các tính chất và phương thức từ mixin đó, bạn có thể sử dụng từ khóa `with` như sau: `class MyClass with MyMixin:`. Điều này sẽ giúp lớp `MyClass` có thể truy cập và sử dụng các tính chất và phương thức được định nghĩa trong mixin `MyMixin`.
Mở trang câu hỏi này →
ASkips one iteration
BExits the loop completely
CRestarts the loop
DPauses the loop
Lời giải

Trong lập trình Dart, lệnh break được sử dụng để thoát khỏi vòng lặp khi một điều kiện được đáp ứng. Khi gặp lệnh break trong một vòng lặp, Dart sẽ ngay lập tức thoát khỏi vòng lặp đó và tiếp tục thực hiện mã lệnh sau vòng lặp. Điều này khác với lệnh return, mà chỉ thoát khỏi hàm hiện tại. Lệnh break có thể được sử dụng trong các loại vòng lặp khác nhau như for, while, do-while. Ví dụ, nếu bạn muốn thoát khỏi một vòng lặp khi một biến đạt đến một giá trị cụ thể, bạn có thể sử dụng lệnh break như sau:

Lời giải
if (tong >= 10) {
  break;
}

Vì vậy, lệnh break giúp bạn thoát khỏi vòng lặp khi cần thiết, giúp code của bạn trở nên gọn gàng và dễ đọc hơn.

Mở trang câu hỏi này →
25What does the continue statement do?4 lựa chọn
AEnds the loop
BSkips to the next iteration
CStops the program
DExits the current block
Lời giải
Trong lập trình, câu lệnh continue được sử dụng để bỏ qua phần còn lại của một lặp và chuyển sang phần còn lại của lặp. Nó không kết thúc lặp, mà chỉ bỏ qua phần còn lại của lặp hiện tại và chuyển sang phần còn lại của lặp. Ví dụ, nếu bạn đang lặp qua một mảng và muốn bỏ qua phần còn lại của lặp khi gặp một điều kiện nào đó, bạn có thể sử dụng câu lệnh continue để thực hiện điều này. Câu lệnh continue chỉ áp dụng cho các lặp có thể được lặp lại, chẳng hạn như for, while.
Mở trang câu hỏi này →
26What does this keyword refer to?4 lựa chọn
AClass name
BGlobal variable
CCurrent object
DParent class
Lời giải
Từ khóa này thường được sử dụng để chỉ mục tiêu của phương thức hiện tại, tức là đối tượng đang được xử lý. Nó cho phép truy cập các thuộc tính và phương thức của đối tượng này. Ví dụ, nếu bạn đang sử dụng một phương thức của một lớp, từ khóa này sẽ cho phép bạn truy cập các thuộc tính và phương thức của lớp đó.
Mở trang câu hỏi này →
AThe program crashes
BDart automatically creates a default constructor
CYou can’t create objects
DYou must use new
Lời giải
Nếu bạn không định nghĩa một constructor trong một lớp Dart, thì Dart sẽ tự động tạo ra một constructor mặc định. Điều này có nghĩa là bạn vẫn có thể tạo ra các đối tượng từ lớp đó mà không cần phải định nghĩa constructor. Constructor mặc định sẽ được tạo ra tự động với các tham số rỗng, cho phép bạn tạo ra các đối tượng mà không cần phải cung cấp bất kỳ thông tin nào. Điều này giúp giảm thiểu số lượng mã và làm cho việc phát triển trở nên dễ dàng hơn. Tuy nhiên, nếu bạn muốn định nghĩa một constructor có các tham số cụ thể, thì bạn vẫn có thể làm điều đó và Dart sẽ không tự động tạo ra constructor mặc định.
Mở trang câu hỏi này →
AIt prints null
BIt gives a runtime error
CIt prints 0
DIt assigns default value
Lời giải
Khi bạn cố gắng sử dụng một biến muộn trước khi khởi tạo, chương trình sẽ gặp lỗi thời gian chạy. Điều này xảy ra vì biến muộn chưa được khởi tạo giá trị, và khi bạn cố gắng truy cập nó, chương trình sẽ không thể tìm thấy giá trị của biến đó. Lỗi này thường xảy ra khi bạn sử dụng biến muộn trong một đoạn mã mà biến đó chưa được khởi tạo. Ví dụ, nếu bạn có một biến muộn được khai báo trong một hàm, và bạn cố gắng sử dụng biến đó trước khi hàm đó được thực thi, chương trình sẽ gặp lỗi thời gian chạy.
Mở trang câu hỏi này →
29What is a class in Dart?4 lựa chọn
AA variable type
BA function
CA blueprint for creating objects
DA module
Lời giải
Trong lập trình Dart, một lớp (class) được coi là một bản thiết kế chung cho việc tạo ra các đối tượng. Nó cung cấp một mô hình cơ bản cho các thuộc tính và phương thức mà các đối tượng thuộc lớp đó sẽ có. Khi bạn tạo một lớp, bạn có thể định nghĩa các thuộc tính và phương thức mà các đối tượng thuộc lớp đó sẽ có. Điều này cho phép bạn tạo ra các đối tượng có thể tương tác với nhau và thực hiện các hành động cụ thể. Ví dụ, nếu bạn tạo một lớp 'Xe', bạn có thể định nghĩa các thuộc tính như 'màu sắc', 'loại xe' và phương thức như 'chạy', 'đỗ xe'. Các đối tượng thuộc lớp 'Xe' sẽ có thể thực hiện các hành động này và có các thuộc tính tương ứng.
Mở trang câu hỏi này →
30What is a library in Dart?4 lựa chọn
AA collection of classes and functions
BA database connection
CA Flutter widget
DA type of compiler
Lời giải
Trong lập trình Dart, một thư viện (library) được định nghĩa là một tập hợp các lớp và hàm (classes và functions) được tổ chức và quản lý một cách hệ thống. Thư viện là một phần quan trọng của ngôn ngữ lập trình Dart, giúp người lập trình viên dễ dàng chia sẻ và sử dụng các mã nguồn đã được viết trước đó. Mỗi thư viện trong Dart có thể được sử dụng độc lập hoặc kết hợp với các thư viện khác để tạo ra các ứng dụng phức tạp. Ví dụ, thư viện 'dart:math' cung cấp các hàm toán học cơ bản, trong khi thư viện 'dart:io' cung cấp các hàm để tương tác với hệ thống tệp. Việc sử dụng thư viện giúp giảm thiểu thời gian và công sức lập trình viên phải dành để viết mã nguồn từ đầu.
Mở trang câu hỏi này →
31What is an object in Dart?4 lựa chọn
AA type of variable
BAn instance of a class
CA keyword
DA list
Lời giải
Trong Dart, một đối tượng (object) là một thực thể cụ thể được tạo ra từ một lớp (class). Nó là một bản sao của lớp đó, có các thuộc tính và phương thức riêng. Ví dụ, nếu bạn có một lớp tên là 'Xe', thì một đối tượng của lớp đó có thể được tạo ra như sau: Xe xe = Xe(); Đối tượng xe này có thể có các thuộc tính như màu sắc, số chỗ ngồi, và phương thức như khởi động, dừng lại. Đối tượng là một khái niệm quan trọng trong lập trình hướng đối tượng, giúp bạn mô tả và tương tác với các thực thể trong thế giới thực.
Mở trang câu hỏi này →
Astop
Bcontinue
Cbreak
Dexit
Lời giải
Trong một câu lệnh switch trong Dart, sau mỗi trường hợp, cần sử dụng từ khóa 'break' để dừng việc thực thi các trường hợp còn lại. Điều này giúp chương trình tránh được việc thực thi trùng lặp và đảm bảo rằng chỉ một trường hợp được thực thi tại một thời điểm. Từ khóa 'break' giúp chương trình chuyển sang phần còn lại của mã sau khi đã thực thi xong một trường hợp. Nếu không sử dụng 'break', chương trình sẽ tiếp tục thực thi các trường hợp còn lại cho đến khi gặp một từ khóa khác như 'return', 'throw' hoặc đến cuối câu lệnh switch.
Mở trang câu hỏi này →
Aif condition { }
Bif (condition) { }
Cif [condition] { }
Dif {condition}
Lời giải

Trong Dart, câu lệnh if được sử dụng để kiểm tra một điều kiện và thực hiện một hành động nếu điều kiện đó là true. Câu lệnh if có thể được viết theo nhiều cách khác nhau, nhưng syntax chính xác nhất là:

Lời giải
if (condition) {
}

. Điều này có nghĩa là bạn cần sử dụng dấu ngoặc tròn để bao quanh điều kiện kiểm tra. Ví dụ:

Lời giải
if (x > 5) {
  print('x

lớn hơn 5'); }. Syntax này giúp Dart hiểu rõ được điều kiện kiểm tra và hành động cần thực hiện.

Mở trang câu hỏi này →
Aimport dart.io;
Bimport 'dart:io';
Cinclude 'dart:io';
Duse dart.io;
Lời giải
Để nhập một thư viện tích hợp sẵn trong Dart, bạn cần sử dụng từ khóa 'import' kèm theo tên thư viện. Trong trường hợp này, thư viện 'dart:io' được sử dụng để tương tác với hệ thống tệp tin và mạng. Syntax đúng để nhập thư viện này là 'import 'dart:io';'.
Mở trang câu hỏi này →
ATo delete objects
BTo initialize objects
CTo copy data
DTo print variables
Lời giải
Trong lập trình hướng đối tượng, một constructor (hay còn gọi là hàm tạo) là một phương thức đặc biệt trong một lớp được sử dụng để tạo ra các đối tượng mới. Mục đích chính của một constructor là để khởi tạo các thuộc tính của đối tượng khi nó được tạo ra. Điều này bao gồm việc gán giá trị ban đầu cho các thuộc tính, thực hiện các hành động cần thiết để đảm bảo đối tượng được tạo ra trong một trạng thái hợp lệ. Ví dụ, một constructor có thể được sử dụng để tạo ra một đối tượng với các giá trị mặc định, hoặc để thực hiện các tính toán cần thiết để tạo ra đối tượng. Tóm lại, mục đích của một constructor là để khởi tạo và tạo ra các đối tượng mới trong một lớp.
Mở trang câu hỏi này →
Ahide
Bexcept
Cremove
Dexclude
Lời giải
Khi thực hiện import thư viện, có thể có một số phần không mong muốn được hiển thị. Để giải quyết vấn đề này, chúng ta cần sử dụng một từ khóa đặc biệt. Từ khóa này cho phép chúng ta ẩn đi những phần không cần thiết, giúp cho quá trình import trở nên dễ dàng và hiệu quả hơn. Trong các lựa chọn, từ khóa "hide" là lựa chọn đúng. Nó cho phép chúng ta ẩn đi những phần không cần thiết của thư viện, giúp cho quá trình import trở nên nhanh chóng và dễ dàng hơn.
Mở trang câu hỏi này →
A#
B@
C.
D:
Lời giải
Trong lập trình, khi chúng ta muốn truy cập vào thuộc tính hoặc phương thức của một đối tượng, chúng ta sử dụng một ký tự đặc biệt để chỉ định. Trong các lựa chọn đã cho, ký tự được sử dụng để truy cập vào thuộc tính hoặc phương thức của một đối tượng là dấu chấm (.)
Mở trang câu hỏi này →
Aextends
BScaffold
CStream
DrunApp()
Lời giải
Để định nghĩa một lớp con (subclass) kế thừa từ một lớp cha (parent class) trong ngôn ngữ lập trình Dart, chúng ta sử dụng từ khóa 'extends'. Từ khóa này cho phép chúng ta tạo ra một lớp con có thể sử dụng các thuộc tính và phương thức của lớp cha. Ví dụ, nếu chúng ta có một lớp cha tên là 'Vehicle' và một lớp con tên là 'Car', chúng ta có thể sử dụng từ khóa 'extends' để định nghĩa lớp con 'Car' kế thừa từ lớp cha 'Vehicle'. Điều này giúp giảm thiểu sự lặp lại và tăng cường tính tái sử dụng trong mã nguồn.
Mở trang câu hỏi này →
Aconst
Blate
Cvar
Dstatic
Lời giải
Lazy initialization là một kỹ thuật được sử dụng để trì hoãn việc tạo ra một đối tượng cho đến khi nó thực sự được sử dụng. Trong Dart, từ khóa được sử dụng để thực hiện lazy initialization là 'late'. Từ khóa 'late' cho phép bạn khai báo một biến mà không cần phải khởi tạo nó ngay lập tức. Thay vào đó, biến này sẽ được khởi tạo khi nó được sử dụng lần đầu tiên. Điều này giúp giảm thiểu việc sử dụng tài nguyên và cải thiện hiệu suất của ứng dụng.
Mở trang câu hỏi này →
Achoose
Bswitch
Cwhen
Dcheck
Lời giải
Để kiểm tra nhiều điều kiện thay vì sử dụng nhiều câu lệnh if-else, chúng ta sử dụng từ khóa switch. Ví dụ, khi chúng ta muốn kiểm tra giá trị của một biến và thực hiện hành động khác nhau dựa trên giá trị đó, chúng ta có thể sử dụng switch. Từ khóa switch cho phép chúng ta kiểm tra nhiều điều kiện và thực hiện hành động tương ứng.
Mở trang câu hỏi này →