如何给一个类,使用equals方法
1.问题
class A
{
private int x=3;
public static void main(String [] args)
{
new A().func(new A());
}
public void func(A a)
{
System.out.println(a.x);
}
}
编译运行上面程序,没有任何问题,在
new A().func(new A());
语句中,一共用new A()产生了两个对象,在第一个对象的func方法中成功地访问了第二
个对象的private 成员变量x。
这个例子怎么理解,尽管是2个匿名对象, 第1个对象访问了第2个对象的私有成员。
public void func(A a)
{
System.out.println(a.x);
}
this对象和对象a的关系是否可以理解为friend ? 所以,可以访问a的成员? 仅限于访问,
而非修改数据。
这是第1个问题。
第2个问题:
如何给一个类,使用equals方法? 比如:
class Person{
Person(int id, String nam)
{
}
void test()
{
}
};
在第2个问题中插入一个小问题,是否所有的对象 都可以使用==这个运算符进行比较?
3.
java有没有一种类似explict的用法?
比如void testfun(String str);
调用者这样使用testfun("nihao"); //ok ,
这里是否产生了一个匿名对象, 然后拷贝给了参数str ?
如果产生了了,那么如何防止,传入的String对象被修改,即c++中有const来修饰,
java中有什么?