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关键字用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IntelliJ IDEA安装插件阿里巴巴Java开发手册(Alibaba Java Coding Guidelines
这篇文章主要介绍了IntelliJ IDEA安装插件阿里巴巴Java开发手册(Alibaba Java Coding Guidelines),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-05-05解决ThingsBoard编译报错问题:Failure to find org.gradle:gradle-too
这篇文章主要介绍了ThingsBoard编译报错:Failure to find org.gradle:gradle-tooling-api:jar:6.3,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-03-03java中的FileReader和FileWriter读写流
这篇文章主要介绍了java中的FileReader和FileWriter读写流,在java中对数据输入输出的操作陈作为流我们对不同的文件进行操作,或者对操作文件进行输入和输出时所用的流都是不同的,因此在java.io的包下存在很多流的类或者接口提供给我们对应的操作,需要的朋友可以参考下2023-10-10springboot aop切到service层,不生效问题
这篇文章主要介绍了springboot aop切到service层,不生效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-05-05
最新评论