什么时候用private什么时候用public
时间: 2023-10-24 17:07:12 浏览: 31
在面向对象编程中,public、private、protected 是访问控制修饰符,用于控制类成员的访问权限。
public 成员变量或成员方法可以被该类的任何对象或其他类的对象访问和调用,是公共的,可以被外部访问。
private 成员变量或成员方法只能被该类的对象访问和调用,是私有的,不能被外部访问。
一般来说,如果一个成员变量或成员方法只需要在类内部使用,那么应该使用 private 修饰符。如果需要在类外部使用,那么应该使用 public 修饰符。
同时,使用 private 可以有效地保护类的内部实现细节,防止外部直接访问和修改类中的私有成员变量,从而提高了类的安全性和封装性。
相关问题
public boolean equals方法用在什么时候
public boolean equals方法一般用于比较两个对象是否相等。在Java中,使用"=="运算符比较两个对象时,会比较这两个对象在内存中的地址是否相同,而不是比较它们的内容是否相同。因此,如果我们需要比较两个对象的内容是否相同,需要使用equals方法。
equals方法的通用实现方式是,首先比较两个对象的类型是否相同,如果类型不同则返回false,如果类型相同再比较它们的内容是否相等。对于不同类型的对象,一般需要进行类型转换之后才能进行比较。
例如,我们可以编写一个Person类,并实现equals方法来比较两个Person对象的内容是否相等:
```
public class Person {
private String name;
private int age;
private String address;
public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof Person)) return false;
Person p = (Person) o;
return name.equals(p.name) && age == p.age && address.equals(p.address);
}
}
```
在上面的例子中,我们重写了equals方法,并在其中比较了Person对象的三个属性,即name、age和address是否相等。如果三个属性都相等,则返回true,否则返回false。
使用equals方法的场景包括但不限于:
1. 比较两个对象是否相等,例如在集合类中的contains方法中使用;
2. 实现对象的哈希表等数据结构时需要使用equals方法来判断两个对象是否相等;
3. 在自定义类中重写equals方法,以便于比较对象的内容是否相等。
类中的变量什么时候加private
在面向对象编程中,为了保证数据的安全性和封装性,一般情况下建议将类中的变量定义为私有变量(private)。这样可以避免外部程序直接访问和修改类中的变量,需要通过类中提供的公有方法(public)来进行访问和修改。只有在确保不会影响类的封装性和数据安全性的情况下,才可以将变量定义为公有变量或保护变量。