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关键字用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Java 利用Mybatis实现oracle批量插入及分页查询

    基于Java 利用Mybatis实现oracle批量插入及分页查询

    这篇文章主要介绍了基于Java 利用Mybatis实现oracle批量插入及分页查询,文章围绕主题展开详细的内容介绍,需要的小伙伴可以参考一下
    2022-07-07
  • java去除重复对象的简单实例

    java去除重复对象的简单实例

    下面小编就为大家带来一篇java去除重复对象的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • JAVA的发展前景如何好不好自学

    JAVA的发展前景如何好不好自学

    这篇文章主要介绍了JAVA的发展前景如何好不好自学,很多朋友想自学java不知道好不好学,能不能学会,今天小编给大家分享一篇教程关于java的发展前景的文章,需要的朋友可以参考下
    2020-06-06
  • Java线上死锁问题从定位到解决的全链路指南

    Java线上死锁问题从定位到解决的全链路指南

    在分布式系统高并发场景下,死锁如同定时炸弹,随时可能引发服务雪崩,本文将分享一套完整的死锁应对策略,结合实战案例与生产级解决方案,助你快速化解危机,需要的朋友可以参考下
    2025-06-06
  • Java实战之基于I/O流设计的图书管理系统

    Java实战之基于I/O流设计的图书管理系统

    这篇文章主要介绍了Java实战之基于I/O流设计的图书馆管理系统,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • mybatis xml中特殊字符处理及特殊符号

    mybatis xml中特殊字符处理及特殊符号

    这篇文章主要介绍了mybatis xml中特殊字符处理及mybatis特殊符号处理技巧,mybatis特殊符号处理给大家介绍了两种写法,感兴趣的朋友一起看看吧
    2018-03-03
  • java微信小程序步数encryptedData和开放数据解密的实现

    java微信小程序步数encryptedData和开放数据解密的实现

    这篇文章主要介绍了java微信小程序步数encryptedData和开放数据解密的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • java开发flyway的方法

    java开发flyway的方法

    这篇文章主要介绍了java开发flyway的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • SpringBoot集成SpringSecurity和JWT做登陆鉴权的实现

    SpringBoot集成SpringSecurity和JWT做登陆鉴权的实现

    这篇文章主要介绍了SpringBoot集成SpringSecurity和JWT做登陆鉴权的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • SpringBoot接收前端参数的几种常用方式

    SpringBoot接收前端参数的几种常用方式

    在Spring Boot开发中接收参数是非常常见且重要的一部分,依赖于请求的不同场景,Spring Boot提供了多种方式来处理和接收参数,这篇文章主要给大家介绍了关于SpringBoot接收前端参数的几种常用方式,需要的朋友可以参考下
    2024-07-07

最新评论