d-
UML has the following types of visibility:
public
package
protected
private
A public element is visible to all elements that can access the contents of the namespace that owns it, represented by '+' literal.
A package element is owned by a namespace that is not a package, visible to elements that are in the same package as its owning namespace. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible. Package visibility is represented by '~' literal.
A protected element is visible to elements that have a generalization relationship to the namespace that owns it, represented by '#' literal.
A private element is only visible inside the namespace that owns it. Private visibility is represented by '-' literal.
https://www.uml-diagrams.org/visibility.html