| Java |
Java doesn't have struct.
You may design a final class
or a simple class
to replace struct
class Point
{
public int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
Point a = new Point(10, 10);
Point b = a;
a.x = 100;
System.out.println(b.x);
prints: 100
Since Point is a reference type,
b and a point to the same address,
when a's value changed, b's value changed too.
|
|
| C# |
A struct is a user-defined value type.
It is declared in a very similar way to a class,
except that it can't inherit from any class,
nor can any class inherit from it.
struct is not a reference type.
struct Point
{
public int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
Point a = new Point(10, 10);
Point b = a;
a.x = 100;
System.Console.WriteLine(b.x);
prints: 10
Since struct Point is a value type,
not a reference type, a's value changed
doesn't involve b's value.
structs are sealed, lightweighted
and more efficient than classes.
|
|