一个类具有可以被某些其他类访问的字段和方法,并且总是类本身,这取决于访问级别修饰符(private、default-access、protected 或 public)。您可以将字段和方法视为类的属性/属性。
字段就是您所描述的“类中的一个变量,它不在任何方法中”。字段描述类具有的值,方法描述类(或类的对象)可以做什么。
为了简单起见,忽略 static 关键字,类是创建对象的模板。您为某个类创建的每个对象都会有一组自己的字段和方法(除非该字段或方法是static)。
如果您将类的字段设置为private nothingoutside,则该类可以访问它。只有类本身(本质上是指类的方法)可以访问它。私有方法也是如此。只有类的其他方法才能访问私有方法。
考虑这个例子:
public class Person {
private String name;
public int id;
public Person(String name, int id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
}
如果有人想通过直接引用这个人的名字来访问这个人的名字,他们将无法做到,因为名字是private。他们必须使用getName() 方法来做到这一点。
Person person = new Person(John, 5);
System.out.print(person.name); //does not work
Person person = new Person(John, 5);
System.out.print(person.getName()); //works
这很好,因为如果名称可以直接访问,你可以写:
person.name = "Felicity";
并更改不想要的人的姓名(我们可以使用id 进行此操作,这可能会导致麻烦)。当名称为私有时,这是不可能的。
一个变量inside一个方法,然而,不是一个字段。这意味着它不是对象的属性。它只是一个临时变量,存在以允许该方法执行它想要执行的操作。当方法完成执行时,变量被销毁。将这样的变量声明为 private 或其他任何内容是完全没有意义的,因此是不允许的。