A constructor is a special method in a class that is called when you create an object. It helps set up the object with initial values.
Click to reveal answer
beginner
What are named parameters in Flutter constructors?
Named parameters let you specify values by name when creating an object. This makes the code easier to read and allows parameters to be optional.
Click to reveal answer
intermediate
How do you make a named parameter required in Flutter?
Use the keyword required before the named parameter in the constructor. This means you must provide a value when creating the object.
Click to reveal answer
intermediate
Example: What does this constructor do?<br><pre>class Person {
String name;
int age;
Person({required this.name, this.age = 18});
}</pre>
This constructor requires a name when creating a Person. The age is optional and defaults to 18 if not given.
Click to reveal answer
beginner
Why use named parameters instead of positional ones?
Named parameters improve code clarity by showing what each value means. They also allow skipping optional parameters without confusion.
Click to reveal answer
How do you define a named parameter in a Flutter constructor?
AUse curly braces around parameters
BUse square brackets around parameters
CUse parentheses around parameters
DUse angle brackets around parameters
✗ Incorrect
Named parameters are defined using curly braces { } in the constructor.
What keyword makes a named parameter mandatory in Flutter?
Amandatory
Bconst
Cfinal
Drequired
✗ Incorrect
The keyword required makes a named parameter mandatory.
What happens if you don't provide a value for an optional named parameter with a default value?
AThe parameter is null
BThe default value is used
CThe app crashes
DYou get a compile error
✗ Incorrect
If no value is given, the default value is used automatically.
Which of these is a correct constructor with named parameters?
APerson({required this.name, this.age = 20}) {}
BPerson<name, age>() {}
CPerson([this.name, this.age]) {}
DPerson(name, age) {}
✗ Incorrect
Option A uses curly braces and required keyword correctly.
Why might you prefer named parameters in your Flutter constructors?
AThey are faster to write
BThey make code shorter
CThey allow skipping parameters easily
DThey prevent any errors
✗ Incorrect
Named parameters let you skip optional ones without confusion.
Explain how to create a Flutter class with a constructor that uses named parameters, including one required and one optional parameter with a default value.
Think about how to write the constructor parameters inside { } and use required and = for default.
You got /4 concepts.
Describe the benefits of using named parameters in Flutter constructors compared to positional parameters.
Consider how named parameters help when you have many or optional values.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of named parameters in Flutter constructors?
easy
A. To prevent object creation
B. To force all arguments to be positional
C. To make constructors private
D. To make arguments optional and improve code readability
Solution
Step 1: Understand named parameters
Named parameters are enclosed in curly braces and can be optional or required, making code easier to read.
Step 2: Identify their purpose in constructors
They allow passing arguments by name, improving clarity and safety by avoiding positional mistakes.
Final Answer:
To make arguments optional and improve code readability -> Option D
Quick Check:
Named parameters = optional and readable [OK]
Hint: Named parameters use braces and improve clarity [OK]
Common Mistakes:
Thinking named parameters force positional arguments
Believing named parameters prevent object creation
Confusing named parameters with private constructors
2. Which of the following is the correct syntax for a Flutter constructor with named parameters?
easy
A. MyClass({this.name, this.age});
B. MyClass(this.name, this.age);
C. MyClass[name, age];
D. MyClass(name: this.name, age: this.age);
Solution
Step 1: Identify named parameter syntax
Named parameters are declared inside curly braces in the constructor parameter list.
Step 2: Match syntax to options
MyClass({this.name, this.age}); uses curly braces with this.name and this.age, which is correct syntax.
Final Answer:
MyClass({this.name, this.age}); -> Option A
Quick Check:
Named parameters use curly braces { } [OK]
Hint: Look for curly braces around parameters [OK]
Common Mistakes:
Using square brackets instead of curly braces
Forgetting curly braces for named parameters
Using colon syntax incorrectly in constructor declaration
3. What will be the output of this Flutter code?
class Person {
String name;
int age;
Person({required this.name, this.age = 30});
}
void main() {
var p = Person(name: 'Anna');
print('${p.name} is ${p.age} years old');
}
medium
A. Anna is 30 years old
B. Anna is null years old
C. Error: Missing required parameter age
D. Anna is 0 years old
Solution
Step 1: Analyze constructor parameters
The constructor requires name and has an optional age with default 30.
Step 2: Check object creation and print output
Person is created with name 'Anna' only, so age defaults to 30. The print shows 'Anna is 30 years old'.
Final Answer:
Anna is 30 years old -> Option A
Quick Check:
Default age = 30 used [OK]
Hint: Default values fill missing optional named parameters [OK]
Common Mistakes:
Assuming missing optional parameters cause errors
Thinking default values are ignored
Confusing required and optional parameters
4. Identify the error in this Flutter constructor code:
class Car {
String model;
int? year;
Car({this.model, this.year});
}
void main() {
var c = Car(model: 'Tesla');
print(c.year.toString());
}
medium
A. model is missing and causes compile error
B. year is null and calling toString() causes runtime error
C. No error, code runs fine
D. Constructor syntax is invalid
Solution
Step 1: Check constructor parameters and defaults
Both model and year are optional named parameters without defaults, so year can be null.
Step 2: Analyze print statement
Calling toString() on null year does NOT cause runtime error because toString() is defined on nullable int? and returns 'null' string.
Final Answer:
No error, code runs fine -> Option C
Quick Check:
toString() on null returns 'null' string [OK]
Hint: Optional parameters without defaults can be null but toString() handles null safely [OK]
Common Mistakes:
Assuming missing optional parameters have default values
Ignoring null safety and runtime errors
Thinking constructor syntax is wrong here
5. You want to create a Flutter class Book with a required named parameter title and an optional named parameter author with default 'Unknown'. Which constructor is correct?
hard
A. Book(this.title, {this.author = 'Unknown'});
B. Book({required this.title, this.author = 'Unknown'});
C. Book({this.title, required this.author = 'Unknown'});
D. Book({this.title = 'Unknown', required this.author});
Solution
Step 1: Identify required and optional named parameters
Required named parameters use 'required' keyword inside curly braces; optional can have default values.
Step 2: Match correct syntax
Book({required this.title, this.author = 'Unknown'}); correctly marks title as required and author as optional with default 'Unknown'.
Final Answer:
Book({required this.title, this.author = 'Unknown'}); -> Option B
Quick Check:
Required + optional with default = correct syntax [OK]
Hint: Use 'required' inside braces for required named params [OK]
Common Mistakes:
Placing required outside braces
Assigning default to required parameter
Mixing positional and named parameters incorrectly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.