Java语法之封装

简介: 我们应该都知道Java面向对象的三大特性:封装,继承,多态,今天小编给大家分享封装这个概念以及使用,我们开始吧:

💭封装的概念


在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法,封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。


💭封装的使用


1.初识封装

首先来看一段代码:

classPerson {
publicStringname;
publicintage;
publicvoidshow() {
System.out.println(name+"的年龄是"+age);
    }
}
publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Personperson=newPerson();
person.name="张三";
person.age=18;
person.show();
    }
}

这段代码中我们创建了一个Person类,并且创建了成员变量和方法,在主函数中new了一个对象,通过person引用去给成员变量赋值,并且代码正常运行,结果:

da23d032896e40edb95ad1eda85461db.png


猜想一下,我们将部分代码加以修改,如果我用private去修饰成员变量是否可以让代码正常运行呢???

classPerson {
privateStringname;
privateintage;
publicvoidshow() {
System.out.println(name+"的年龄是"+age);
    }
}

e86cb8a50da84b47bc5300de994530bf.png

我们可以看到,这里代码就会报错了, 原因是此时被peivate修饰的name和age只能在当前这个类(Person类)里面使用,在类外是没有权限访问的,这里也就是我们要说的封装!


2.封装的使用

那么我们如何给成员变量赋值呢???

这里我们通过构造方法可以解决,代码如下:

classPerson {
publicStringname;
publicintage;
publicvoidshow() {
System.out.println(name+"的年龄是"+age);
    }
publicPerson(Stringname, intage) {    //构造方法this.name=name;
this.age=age;
    }
}
publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Personperson=newPerson("张三",18);
/*person.name = "张三";person.age = 18;person.show();*/person.show();
    }
}

当然我们可以使用set和get这样的公开方法去给成员赋值:

classPerson {
publicStringname;
publicintage;
publicvoidshow() {
System.out.println(name+"的年龄是"+age);
    }
/*public Person(String name, int age) {    //构造方法this.name = name;this.age = age;}*/publicStringgetName() {
returnthis.name;
    }
publicvoidsetName(Stringname) {
this.name=name;
    }
publicvoidsetAge(intage) {
this.age=age;
    }
}
publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Personperson=newPerson();
/*person.name = "张三";person.age = 18;person.show();*/person.setName("李四");
person.setAge(18);
person.show();
    }
}


💭封装的好处


1. 良好的封装能够减少耦合。

2. 类内部的结构可以自由修改。

3. 可以对成员变量进行更精确的控制。

4. 隐藏信息,实现细节。


以上就是今天和大家分享的知识,如对上文有意见或者有错误,还请大佬们斧正,觉得有帮助的童鞋们,创作不易,蟹蟹三连!


目录
相关文章
|
5月前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
83 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
5月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
58 2
|
5月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
75 1
|
1月前
|
安全 Java 开发者
【JAVA】封装多线程原理
Java 中的多线程封装旨在简化使用、提高安全性和增强可维护性。通过抽象和隐藏底层细节,提供简洁接口。常见封装方式包括基于 Runnable 和 Callable 接口的任务封装,以及线程池的封装。Runnable 适用于无返回值任务,Callable 支持有返回值任务。线程池(如 ExecutorService)则用于管理和复用线程,减少性能开销。示例代码展示了如何实现这些封装,使多线程编程更加高效和安全。
|
1月前
|
安全 网络协议 Java
Java网络编程封装
Java网络编程封装原理旨在隐藏底层通信细节,提供简洁、安全的高层接口。通过简化开发、提高安全性和增强可维护性,封装使开发者能更高效地进行网络应用开发。常见的封装层次包括套接字层(如Socket和ServerSocket类),以及更高层次的HTTP请求封装(如RestTemplate)。示例代码展示了如何使用RestTemplate简化HTTP请求的发送与处理,确保代码清晰易维护。
|
2月前
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
162 15
|
3月前
|
Java
java do while 的语法怎么用?
java do while 的语法怎么用?
91 3
|
5月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
Kotlin语法笔记(28) -Kotlin 与 Java 混编
81 2
|
5月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
102 1
|
5月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
52 1

热门文章

最新文章