21xrx.com
2024-09-20 08:49:10 Friday
登录
文章检索 我的文章 写文章
我最近在学习Java的封装
2023-06-18 10:44:31 深夜i     --     --
Java封装 私有属性 公共方法

我最近在学习Java的封装,这是一项重要的语言特性,可以帮助保护代码的安全性和可维护性。在这篇文章中,我将分享三个简单例子,帮助初学者理解Java封装的概念和实践。

示例1:私有属性和公共方法

在Java中,将属性声明为私有的是一种很好的实践,因为这样可以防止其他类直接修改这些属性。我们可以提供公共方法,以便其他类可以安全地访问和修改这些属性。


public class Person {

  private String name;

  private int age;

  

  public Person(String name, int age)

    this.name = name;

    this.age = age;

  

  

  public String getName()

    return name;

  

  

  public void setName(String name)

    this.name = name;

  

  

  public int getAge()

    return age;

  

  

  public void setAge(int age)

    this.age = age;

  

  

  public void show() {

    System.out.println("Name: " + name + ", Age: " + age);

  }

}

在这个例子中,`Person`类有两个私有属性:`name`和`age`。我们提供了四个公共方法:两个用于获取属性值,两个用于设置属性值。还有一个`show()`方法,用于打印出对象的信息。

示例2:封装的构造函数

在Java中,我们可以利用构造函数来将类的属性设置为默认值。我们可以用封装的方式来确保这些属性的类型和值符合我们的需求。这个示例中,我们将确保对象的年龄在0到150之间。


public class Person {

  private String name;

  private int age;

  

  public Person(String name, int age) {

    setName(name);

    setAge(age);

  }

  

  public String getName()

    return name;

  

  

  public void setName(String name)

    this.name = name;

  

  

  public int getAge()

    return age;

  

  

  public void setAge(int age) {

    if (age >= 0 && age <= 150)

      this.age = age;

     else {

      System.out.println("Invalid age, please try again");

    }

  }

  

  public void show() {

    System.out.println("Name: " + name + ", Age: " + age);

  }

}

在这个例子中,我们添加了一个`setAge()`方法来确保传入的年龄值在指定范围内。如果传入的年龄不合法,我们就输出一个错误信息,保护这个对象的安全性。

示例3:私有方法和封装

Java中的封装不仅仅是保护属性和公共方法,还可以保护私有方法。在这个例子中,我们将一个方法`displayAge()`声明为私有的,以确保不能从其他类中访问它。


public class Person {

  private String name;

  private int age;

  

  public Person(String name, int age) {

    setName(name);

    setAge(age);

  }

  

  public String getName()

    return name;

  

  

  public void setName(String name)

    this.name = name;

  

  

  public int getAge()

    return age;

  

  

  public void setAge(int age) {

    if (age >= 0 && age <= 150)

      this.age = age;

     else {

      System.out.println("Invalid age, please try again");

    }

  }

  

  public void show() {

    System.out.println("Name: " + name + ", Age: " + getAgeInYears());

  }

  

  private int getAgeInYears()

    return age / 365;

  

}

在这个例子中,我们添加了一个私有方法`getAgeInYears()`,来计算人物的年龄。因为这个方法是私有的,我们只能够在`Person`类中调用它。我们提供了另一个公共方法`show()`,在里面通过调用私有方法`getAgeInYears()`来打印出人物的年龄。

简单的Java封装示例能够帮助我们理解这项特性,并将安全和可维护性融入我们的代码中。通过这些示例,我们可以了解属性和方法的封装,以及如何保护并控制它们的访问。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复