Bird
Raised Fist0
MATLABdata~10 mins

Access control in MATLAB - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a private property in a MATLAB class.

MATLAB
classdef MyClass
    properties ([1])
        data
    end
end
Drag options to blanks, or click blank then click option'
Aprivate
Bpublic
Cprotected
Dconstant
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'public' instead of 'private' allows access from outside the class.
Using 'constant' is for fixed values, not access control.
2fill in blank
medium

Complete the code to define a method with protected access in a MATLAB class.

MATLAB
classdef MyClass
    methods ([1])
        function greet(obj)
            disp('Hello')
        end
    end
end
Drag options to blanks, or click blank then click option'
Aprivate
Bpublic
Cprotected
Dstatic
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'private' restricts access only to the class itself.
Using 'static' is unrelated to access control.
3fill in blank
hard

Fix the error in the code to correctly restrict access to a method only within the class.

MATLAB
classdef MyClass
    methods ([1])
        function secret(obj)
            disp('Secret method')
        end
    end
end
Drag options to blanks, or click blank then click option'
Apublic
Bprivate
Cprotected
Dglobal
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'public' exposes the method to all.
Using 'global' is not valid for method access control.
4fill in blank
hard

Fill both blanks to define a class with a private property and a public method.

MATLAB
classdef MyClass
    properties ([1])
        secretData
    end
    methods ([2])
        function showData(obj)
            disp(obj.secretData)
        end
    end
end
Drag options to blanks, or click blank then click option'
Aprivate
Bpublic
Cprotected
Dstatic
Attempts:
3 left
💡 Hint
Common Mistakes
Making properties public exposes data directly.
Making methods private prevents outside access.
5fill in blank
hard

Fill all three blanks to define a class with a protected property, a private method, and a public method.

MATLAB
classdef MyClass
    properties ([1])
        data
    end
    methods ([2])
        function helper(obj)
            disp('Helper method')
        end
    end
    methods ([3])
        function show(obj)
            obj.helper();
            disp(obj.data)
        end
    end
end
Drag options to blanks, or click blank then click option'
Aprivate
Bprotected
Cpublic
Dstatic
Attempts:
3 left
💡 Hint
Common Mistakes
Making helper method public exposes internal logic.
Making data property public exposes data.

Practice

(1/5)
1. What does the private access modifier do in a MATLAB class?
easy
A. It makes properties or methods accessible only in the command window.
B. It allows access to properties or methods from anywhere in the program.
C. It allows access only to child classes and the class itself.
D. It restricts access to class properties or methods only within the class itself.

Solution

  1. Step 1: Understand the role of private in MATLAB classes

    The private keyword restricts access to properties or methods so that only the class itself can use them.
  2. Step 2: Compare with other access modifiers

    public allows access from anywhere, protected allows access from child classes, but private is the most restrictive.
  3. Final Answer:

    It restricts access to class properties or methods only within the class itself. -> Option D
  4. Quick Check:

    private means class-only access [OK]
Hint: Private means only the class itself can access [OK]
Common Mistakes:
  • Confusing private with public access
  • Thinking private allows child class access
  • Assuming private is accessible from outside
2. Which of the following is the correct syntax to declare a protected property named data in a MATLAB class?
easy
A. properties protected data end
B. properties (protected) data end
C. properties (public) data end
D. properties (private) data end

Solution

  1. Step 1: Recall MATLAB property access syntax

    Access modifiers are specified in parentheses after the properties keyword, e.g., properties (protected).
  2. Step 2: Identify correct syntax for protected

    The correct syntax uses parentheses: properties (protected). properties protected data end misses parentheses, so it's invalid.
  3. Final Answer:

    properties (protected) data end -> Option B
  4. Quick Check:

    Use parentheses for access modifiers [OK]
Hint: Use parentheses after properties for access [OK]
Common Mistakes:
  • Omitting parentheses around access modifier
  • Using wrong access modifier for the question
  • Placing access modifier outside properties block
3. Consider this MATLAB class snippet:
classdef MyClass
    properties (Access = private)
        secret = 42;
    end
    methods
        function val = getSecret(obj)
            val = obj.secret;
        end
    end
end

obj = MyClass();
disp(obj.secret);
What happens when you run this code?
medium
A. It causes an error because secret is private.
B. It displays 42.
C. It displays an empty value.
D. It displays the class name.

Solution

  1. Step 1: Identify access level of secret

    The property secret is declared private, so it cannot be accessed directly outside the class.
  2. Step 2: Analyze the code trying to access secret

    The line disp(obj.secret); tries to access the private property directly, which is not allowed and causes an error.
  3. Final Answer:

    It causes an error because secret is private. -> Option A
  4. Quick Check:

    Private properties block outside access [OK]
Hint: Private properties can't be accessed outside class [OK]
Common Mistakes:
  • Assuming private properties can be accessed directly
  • Confusing method access with property access
  • Ignoring access modifiers in property declaration
4. This MATLAB class has an error. Find and fix it:
classdef Parent
    properties (Access = protected)
        value
    end
end

classdef Child < Parent
    methods
        function setValue(obj, val)
            obj.value = val;
        end
    end
end

c = Child();
c.setValue(10);
disp(c.value);
medium
A. Add a getter method in Child to access value.
B. Make setValue a static method.
C. Change value access to public.
D. Remove inheritance from Child.

Solution

  1. Step 1: Understand protected access

    The property value is protected, so Child can set it, but outside code cannot access it directly.
  2. Step 2: Identify why disp(c.value) fails

    Outside code tries to access value directly, which is not allowed for protected properties.
  3. Step 3: Fix by adding a getter method

    Adding a method in Child to return value allows controlled access without changing access level.
  4. Final Answer:

    Add a getter method in Child to access value. -> Option A
  5. Quick Check:

    Use getter for protected property access outside class [OK]
Hint: Use getter methods to access protected properties outside class [OK]
Common Mistakes:
  • Trying to access protected property directly outside class
  • Changing access to public unnecessarily
  • Not using inheritance properly
5. You want to create a MATLAB class BankAccount where the balance is private, but child classes can update it. You also want to allow anyone to check the balance. Which access control setup is correct?
hard
A. Declare balance as public; anyone can read and update balance.
B. Declare balance as private and provide a public getter method; child classes cannot update balance directly.
C. Declare balance as protected and provide a public getter method; child classes can update balance, others can only read it.
D. Declare balance as private with no getter; only the class can access balance.

Solution

  1. Step 1: Identify access needs for balance

    Balance should be hidden from outside for updates but readable by anyone, and updatable by child classes.
  2. Step 2: Choose access modifier and methods

    Protected allows child classes to update balance. A public getter method allows anyone to read balance safely.
  3. Final Answer:

    Declare balance as protected and provide a public getter method; child classes can update balance, others can only read it. -> Option C
  4. Quick Check:

    Protected + public getter fits requirements [OK]
Hint: Protected for update by children, public getter for read [OK]
Common Mistakes:
  • Making balance public allowing unwanted updates
  • Using private without getter blocking read access
  • Not providing a getter method for balance
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard