一篇文章带你入门Java封装

 更新时间:2021年08月03日 09:57:13   作者:Wxbbbbb  
Java面向对象的三大特性:封装、继承、多态。下面对三大特性之一封装进行了总结,需要的朋友可以参考下,希望能给你带来帮助

什么是封装

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());
    }
}

总结

封装的优点

  • 良好的封装能够减少耦合。
  • 类内部的结构可以自由修改。
  • 可以对成员变量进行更精确的控制。
  • 隐藏信息,实现细节。

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 关于RocketMQ使用事务消息

    关于RocketMQ使用事务消息

    RocketMQ是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大,需要的朋友可以参考下
    2023-05-05
  • java 分行读取实例

    java 分行读取实例

    今天小编就为大家分享一篇java 分行读取实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • java打包成可执行的jar或者exe的详细步骤

    java打包成可执行的jar或者exe的详细步骤

    Java程序完成以后,对于Windows操作系统,习惯总是想双击某个exe文件就可以直接运行程序,现我将一步一步的实现该过程.最终结果是:不用安装JRE环境,不用安装数据库,直接双击一个exe文件,就可以运行程序
    2014-04-04
  • Mybatis实现增删改查(CRUD)实例代码

    Mybatis实现增删改查(CRUD)实例代码

    MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。通过本文给大家介绍Mybatis实现增删改查(CRUD)实例代码 ,需要的朋友参考下
    2016-05-05
  • guava中Multimap、HashMultimap用法小结

    guava中Multimap、HashMultimap用法小结

    这篇文章主要介绍了guava中Multimap、HashMultimap使用,Multimap它可以很简单的实现一些功能,LinkedHashMultimap实现类与HashMultimap类的实现方法一样,唯一的区别是LinkedHashMultimap保存了记录的插入顺序,本文就这些内容讲解的非常详细,需要的朋友参考下吧
    2022-05-05
  • 利用Maven实现将代码打包成第三方公共jar包

    利用Maven实现将代码打包成第三方公共jar包

    在项目开发过程中,我们经常需要将一些公共方法提取出来,然后单独封装成一个第三方公共jar包,采用普通的方式打包后的jar,依赖的工程执行编译时,却提示找不到对应的依赖包,那么如何将工程打包为可执行jar包呢?下面向大家分享三种方法
    2022-10-10
  • 使用java批量写入环境变量的实现

    使用java批量写入环境变量的实现

    本文主要介绍了使用java批量写入环境变量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • MyBatisPlus 主键策略的实现(4种)

    MyBatisPlus 主键策略的实现(4种)

    MyBatis Plus 集成了多种主键策略,帮助用户快速生成主键,本文主要介绍了MyBatisPlus主键策略的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 使用Jersey构建图片服务器过程解析

    使用Jersey构建图片服务器过程解析

    这篇文章主要介绍了使用Jersey构建图片服务器过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 微信js sdk invalid signature签名错误问题的解决方法分析

    微信js sdk invalid signature签名错误问题的解决方法分析

    这篇文章主要介绍了微信js sdk invalid signature签名错误问题的解决方法,结合实例形式分析了微信签名错误问题相关解决方法,需要的朋友可以参考下
    2019-04-04

最新评论