Not exactly comparable (because everything is immutable), but Haskell has sort of a cool approach to setting and getting fields.
Let's say you have
data Point = Point {x :: Int, y :: Int}
If you have a Point object called "point", you can get x by doing x_coord = x point
If you want to create a new Point with x set to 5, you can do point' = point {x = 5}