一篇文章带你入门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());
    }
}

总结

封装的优点

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

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

相关文章

  • Java实现Excel百万级数据导入功能的示例代码

    Java实现Excel百万级数据导入功能的示例代码

    这篇文章主要为大家详细介绍了Java如何实现Excel百万级数据导入功能,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考下
    2024-04-04
  • Java集合框架之Stack Queue Deque使用详解刨析

    Java集合框架之Stack Queue Deque使用详解刨析

    早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同
    2021-10-10
  • java数据结构之二分查找法 binarySearch的实例

    java数据结构之二分查找法 binarySearch的实例

    这篇文章主要介绍了java数据结构之二分查找法 binarySearch的实例的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • 通过实例了解Java Integer类和int的区别

    通过实例了解Java Integer类和int的区别

    这篇文章主要介绍了通过实例了解Java Integer类和int的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • SpringBoot如何实现分离资源文件并打包

    SpringBoot如何实现分离资源文件并打包

    这篇文章主要介绍了SpringBoot如何实现分离资源文件并打包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 简单了解JAVA中类、实例与Class对象

    简单了解JAVA中类、实例与Class对象

    这篇文章主要介绍了简单了解JAVA中类、实例与Class对象,类是面向对象编程语言的一个重要概念,它是对一项事物的抽象概括,可以包含该事物的一些属性定义,以及操作属性的方法,需要的朋友可以参考下
    2019-06-06
  • Mybatis反射核心类Reflector的实现

    Mybatis反射核心类Reflector的实现

    本文主要介绍了Mybatis反射核心类Reflector的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • SpringBoot实现JWT token自动续期的示例代码

    SpringBoot实现JWT token自动续期的示例代码

    本文主要介绍了SpringBoot实现JWT token自动续期的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • maven assembly打包生成Java应用启动脚本bat和sh的方法

    maven assembly打包生成Java应用启动脚本bat和sh的方法

    springboot应用通过maven插件appassembler-maven-plugi生成启动脚本bat和sh,这篇文章主要介绍了maven assembly打包生成Java应用启动脚本bat和sh,需要的朋友可以参考下
    2022-11-11
  • SpringBoot + MapStruct 属性映射工具的使用详解

    SpringBoot + MapStruct 属性映射工具的使用详解

    MapStruct 是一个代码生成器,简化了不同的 Java Bean 之间映射的处理,所谓的映射指的就是从一个实体变化成一个实体。接下来通过本文给大家介绍SpringBoot + MapStruct 属性映射工具的使用,需要的朋友可以参考下
    2021-09-09

最新评论