文章目录

  • Java中 private关键字 详细用法及解释
    • 一、为什么要使用private
    • 二、private关键字的定义
    • 三、private代码的实例
      • 修饰成员变量时:

Java中 private关键字 详细用法及解释

一、为什么要使用private

​ 出于 安全性考虑,我们在写字段时,尽量考虑采用 封装,这样可以隐藏类的细节,只对外开放接口即可实现对象之间的交互。

二、private关键字的定义

  • private是 一个访问限定修饰符

  • 可修饰的的范围:

    1. 修饰成员变量:
      表示当前成员变量只能在当前类中使用

    2. 修饰成员方法:

      表示当前成员方法只能在当前类中使用

附:访问限定修饰符图表

三、private代码的实例

修饰成员变量时:

class Person {private String name = "张三";int age = 18;}class Student extends Person {public String gender;}public class Test {//private关键字测试public static void main(String[] args) {Person person = new Person();Person p = new Student();//编译均无法通过,因为String name 属性被 private修饰System.out.println(person.name);System.out.println(p.name);}

如下:


那么如何让其他类使用到private的成员变量呢?

​ 我们可以创建一个 public 方法,在方法里 仅return 被private修饰的变量

​ 这里我们用getName() 方法来传递name的值;

class Person {private String name = "张三";int age = 18;//用来传递private修饰的name的值public String getName() {return name;}}public class Test {//private关键字测试public static void main(String[] args) {Person person = new Person();System.out.println(person.getName());}

​ 同理,如果我们想对private修饰的变量进行赋值,可以建立一个setName()方法

class Person {private String name = "张三";int age = 18;//用来传递private修饰的name的值public String getName() {return name;}//用来修改private修饰的name的值public void setName(String name) {this.name = name;}}public class Test {//private关键字测试public static void main(String[] args) {Person person = new Person();System.out.println("修改之前:" + person.getName());person.setName("李四");System.out.println("修改之后:" +person.getName());}}

运行结果如图:

注: 如果你使用的集成开发环境是IDEA,那么可以使用快捷键快速创建 Getter and setter函数

如果点击 Getter and Setter,编译器会自动创建好上述两个方法;
如果只想创建Getter 或 是Setter方法,只用点击上面的 Getter 或者是 Setter就可以了。