类的getters()和setters()简化

ask*_*skd 3 java getter setter encapsulation

  • 为什么我们确实需要在我们的类中使用set和get方法来使用私有属性?
  • 什么时候在我们的程序过程中真正使用它?
  • 我们仍然可以在没有它的情况下使其工作(不将私有属性更改为公共)吗?

当我们使用set和get方法时,这是源代码的示例:

public class Dog {

    private String dogName;
    private int dogAge;

    public Dog(String dogName, int dogAge) {
        this.dogName = dogName;
        this.dogAge = dogAge;
    }

    public String getDogName() {
        return dogName;
    }

    public void setDogName(String dogName) {
        this.dogName = dogName;
    }

    public int getDogAge() {
        return dogAge;
    }

    public void setDogAge(int dogAge) {
        this.dogAge = dogAge;
    }

    @Override
    public String toString() {
        return "Dog{" + "dogName=" + dogName + ", dogAge=" + dogAge + '}';
    }

}
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 7

为什么我们确实需要在我们的类中使用set和get方法来使用私有属性?

如果你想隐藏实现的细节(封装 - 面向对象编程的基本原则),你不希望外面的人访问它们,你只提供一个返回一些值的方法,但你不想揭示实施.

有时候,当你设置一个值时,你需要更改可能相关的其他变量,或者改变一些逻辑,它并不总是一个简单的赋值语句.

什么时候在我们的程序过程中真正使用它?

回答这个问题非常困难,这真的取决于程序.当你想要获取或设置一个值时,你可以使用settergetter.

没有它,我们还能让它工作吗?

当然,当你有字段而不是s 时它起作用,在设计意义上,建议始终从变量开始,并且只在你必须时才改变它们.publicprivateprivate