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

 更新时间:2024年01月30日 09:45:28   作者:黎鹤舞828  
这篇文章主要给大家介绍了关于Java中private关键字详细用法实例以及解释的相关资料,在Java中private是一种访问修饰符,它可以用来控制类成员的访问权限,文中将用法介绍的非常详细,需要的朋友可以参考下

一、为什么要使用private

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

二、private关键字的定义

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

  • 可修饰的的范围:

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

    修饰成员方法:

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

附:访问限定修饰符图表

三、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就可以了。

补充:用简单的实践代码操作讲解

0、为什么封装函数?

(为了更灵活方便运用代码,将封装好的函数另存一个java文件,写程序的时候写简短的代码调用封装函数,可以避免由于程序过多,不好整理代码,也可以减少在繁琐的代码中寻找错误和修改程序)

废话少说,回归正题:

1、用private封装好需要的函数:

public class 练习封装函数 {
private String name;//封装一个姓名的函数
private String sex;//封装性别函数
private int number;//封装学生的学号函数
private double score;//封装学生的成绩函数
}

2、封装好函数后,访问被封装好的函数属性内容,就要用到Setter和Getter方法来实现,(即给封装的各个函数进行初始化设置)

  • Setter方法:对属性内容进行定义和赋值;
  • Getter方法:读取属性内容信息。

(一个一个写有些繁琐,如果是eclipse软件,可用快捷键shift+alt+s弹出窗口选 生成setter和getter方法,把封装的所有函数打上勾生成即可)(代码下面都有相关注释)

public void setName(String name) {
		this.name = name;
	}
public String getName() {
		return name;
	}
public String setSex() {
		this.sex;
	}
public String getSex() {
		return sex;
	}
public int setNumber() {
		this.number;
	}
public int getNumber() {
		return number;
	}
public double setScore() {
		this.score;
	}
public double getScore() {
		return score;
	}

【注】getter方法必须有返回值return,setter和getter方法中的数据类型必须与封装函数的类型保持一致!

3、封装好的函数setter和getter初始化完成后,给程序定义一个输出函数:

public void show() {
		System.out.println("姓名:"+name+"\n"+"性别:"+sex+"\n"+"学号:"+number+"\n"+"成绩:"+score);
	}

然后在同一包里面新建JAVA类,在class块里面输入调用函数的代码:

public static void main(String[] args) {
		练习封装函数 s1 = new 练习封装函数();
		s1.setName("小明");
		s1.setSex("男");
		s1.setNumber(202002039)
		s1.setScore(99);
		s1.show();//调用上面写好的输出函数
	}

显示结果为:

姓名:小明
性别:男
学号:202002039
成绩:99

总结

到此这篇关于Java中private关键字详细用法实例以及解释的文章就介绍到这了,更多相关Java private关键字用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Struts中使用validate()输入校验方法详解

    Struts中使用validate()输入校验方法详解

    这篇文章主要介绍了Struts中使用validate()输入校验方法,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • mybatis-plus查询无数据问题及解决

    mybatis-plus查询无数据问题及解决

    这篇文章主要介绍了mybatis-plus查询无数据问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Springboot中yml文件不生效原因分析及解决

    Springboot中yml文件不生效原因分析及解决

    这篇文章给大家介绍了Springboot中yml文件不生效原因分析及解决方法,通过图文给大家讲解的非常详细,对大家解决问题有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • java实现简单聊天软件

    java实现简单聊天软件

    这篇文章主要为大家详细介绍了java实现简单的聊天软件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • zookeeper的Leader选举机制源码解析

    zookeeper的Leader选举机制源码解析

    这篇文章主要为大家介绍了zookeeper的Leader选举源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java通过JNI调用C++动态库的完整流程详解

    Java通过JNI调用C++动态库的完整流程详解

    JNI(Java Native Interface),是实现Java/Kotlin与C/C++语言之间交互的桥梁,本文主要为大家介绍了Java通过JNI调用C++动态库的完整流程,需要的可以参考下
    2025-04-04
  • Java之Swagger配置扫描接口以及开关案例讲解

    Java之Swagger配置扫描接口以及开关案例讲解

    这篇文章主要介绍了Java之Swagger配置扫描接口以及开关案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • MapStruct @Mapping注解之处理映射中的Null值方式

    MapStruct @Mapping注解之处理映射中的Null值方式

    这篇文章主要介绍了MapStruct @Mapping注解之处理映射中的Null值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • java中创建写入文件的6种方式详解与源码实例

    java中创建写入文件的6种方式详解与源码实例

    这篇文章主要介绍了java中创建写入文件的6种方式详解与源码实例,Files.newBufferedWriter(Java 8),Files.write(Java 7 推荐),PrintWriter,File.createNewFile,FileOutputStream.write(byte[] b) 管道流,需要的朋友可以参考下
    2022-12-12
  • Java三元表达式使用及注意事项详解

    Java三元表达式使用及注意事项详解

    这篇文章主要介绍了Java三元表达式使用及注意事项的相关资料,Java中的三元运算符是一种简洁的条件语句,它可以根据一个条件来选择两个不同的值中的一个,适用于简单的条件赋值场景,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04

最新评论