一篇文章带你深入了解Java封装
更新时间:2021年08月01日 09:36:04 作者:Wxbbbbb
Java中的封装是将数据(变量)和作用于数据(方法)的代码作为一个单元包装在一起的机制。 在封装中,类的变量将从其他类隐藏,并且只能通过当前类的方法访问
如何实现封装
可以分为两步:
第一步:将类的变量声明为private。
第二步:提供公共set和get方法来修改和获取变量的值。
代码展示
public class User {
private String name;
private int age;
private int id;
private String address;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public int getId(){
return id;
}
public String getAddress(){
return address;
}
public void setName(String Newname){
name = Newname;
}
public void setAge(int Newage){
age = Newage;
}
public void setAddress(String Newaddress){
address= Newaddress;
}
}
class Mainclass{
public static void main(String[] args) {
User user = new User();
user.setAge(18);
user.setName("Kevin");
user.setAddress("江苏");
System.out.println("Name:"+user.getName()+",Age:"+user.getAge());
}
}
上面就是一个写好的封装啦 但是有很多用户,很多属性,写起来就很麻烦,下面提供一种一行代码搞定的方法
构造方法
public User{
// 方法名与类名同名 没有返回值结构 其他与普通方法无异
}
注意点:
对于每个类而言,都默认具有一个隐式的空参数构造方法 如果显式写了任意一个构造方法,空参数构造方法都会被覆盖
代码展示
public class User {
private String name;
private int age;
private int id;
private String address;
public User(String name, int age, int id, String address) {
this.name = name;
this.age = age;
this.id = id;
this.address = address;
}
public int getAge(){
return age;
}
public String getName(){
return name;
}
public int getId(){
return id;
}
public String getAddress(){
return address;
}
public void setName(String Newname){
name = Newname;
}
public void setAge(int Newage){
age = Newage;
}
public void setAddress(String Newaddress){
address= Newaddress;
}
public void setId(int Newid){
id = Newid;}
}
class Mainclass{
public static void main(String[] args) {
User user = new User("kevin",18,001,"江苏");//一行代码就能赋值啦
System.out.println("Name:"+user.getName()+",Age:"+user.getAge());
}
}
总结
封装的优点
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节。
本篇文章就到这里了,希望能给你带来帮助,也希望您关注脚本之家的更多内容!
相关文章
SpringBoot AOP控制Redis自动缓存和更新的示例
今天小编就为大家分享一篇关于SpringBoot AOP控制Redis自动缓存和更新的示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-01-01
在 Spring Boot 中使用 Quartz 调度作业的示例详解
这篇文章主要介绍了在 Spring Boot 中使用 Quartz 调度作业的示例详解,在本文中,我们将看看如何使用Quartz框架来调度任务,Quartz支持在特定时间运行作业、重复作业执行、将作业存储在数据库中以及Spring集成,需要的朋友可以参考下2022-07-07
如何为Spring Cloud Gateway加上全局过滤器
这篇文章主要介绍了如何为Spring Cloud Gateway加上全局过滤器,帮助大家更好得理解和学习使用Gateway,感兴趣的朋友可以了解下2021-03-03
springboot集成opencv实现人脸识别功能的详细步骤
大家都知道OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上今天通过本文给大家分享springboot集成opencv实现人脸识别,感兴趣的朋友一起看看吧2021-06-06
Jpa Specification如何实现and和or同时使用查询
这篇文章主要介绍了Jpa Specification如何实现and和or同时使用查询,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11
java多线程通过CompletableFuture组装异步计算单元
这篇文章主要为大家介绍了java多线程通过CompletableFuture组装异步计算单元,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-04-04


最新评论