Other languages can definitely do it:
Ruby:
class X
attr_accessor :y
end
Crystal (full working example): class Y
end
class X
def initialize(y : Y)
@y = y
end
def y
@y
end
end
y = Y.new
x = X.new(y: y)
puts x.y