JavaSE第7篇:封装

文章目录

前言

不管学什么都可以按3w: what? why? how?:首页学习的这个技术是什么? 为什么要出现这个技术? 如何使用这个技术?


一、封装

封装就是将类的属性私有化,提供公有的方法访问私有属性

不对外暴露打的私有的方法

单例模式

1、好处:

1.只能通过规定的方法来访问数据

2.隐藏类的实例细节,方便修改和实现

2、使用

1.属性私有化private

2.创建setter和getter方法用于属性的读写

3.setter和getter方法加入属性控制语句,用于对属性的合法值进行判断


二、四种权限修饰符

封装性需要权限修饰符

1、priavte、 缺省default、protected、public

2、修饰 类及类的内部结构:属性、方法、内部类、构造器

修饰类只能用缺省default和public

总结
Java提供了四种权限修饰符来修饰类及类的内部结构、体现了类及类部结构的可见性大小

三、构造器

1、作用

1、创建对象 new + 构造器 new Person()

2、初始化对象的信息

3、一个内中定义的多个构造器构成重载

4、显示的定义了类的构造器、系统不会提供默认的空参构造器

5、一个类中至少存在一个构造器

2、说明

如果没有显示的定义构造器。系统默认提供一个空参的构造器

定义构造器: 权限修饰符 类名(形参列表){}

java 复制代码
    public Person(){}

3、属性赋值的过程

属性赋值的先后顺序

① 默认初始化

java 复制代码
public class Person {

    //属性或成员变量
     String pName;//默认null
 }

② 显示初始化

java 复制代码
public class Person {

    //属性或成员变量  显示初始化值 
     int age=1;
}     

③ 构造器中赋值或初始化

④ 通过对象 . 方法 或者 对象 . 属性单点方式赋值

以上的操作先后顺序:① ② ③ ④

四 、JavaBean的使用

JavaBean符合以下标准:

1、类是公共的

2、有一个无参的公共构造器

3、有属性、并且有对应的get、set方法

五、UML类图

六 、Java关键字

1、this说明

this关键字: 哪个对象调用了this所在的函数,this就代表哪个对象

== this.属性或方法调用当前的属性或方法 封装对象的属性时经常会使用this==

2 、this可以用来修饰属性、方法

this修饰属性和方法

java 复制代码
    public String getName() {
        //this.方法
        this.study();
        //this.属性
        return this.name;
    }

① 在类的方法中 可以使用this.属性或者this.方法的方式 调用当前对象的属性或方法,通常选择省略this.
特殊情况方法形参和类属性同名我们使用this.变量的方式表明此变量是属性 而不是形参

② 在类的构造器中 可以使用this.属性或者this.方法的方式 调用当前正在创建的对象属性或方法,通常选择省略this.
特殊情况构造器的形参和类属性同名我们使用this.变量的方式表明此变量是属性 而不是形参


3、 this调用构造器

如何在构造器中调用另一个构造器?

this();调用空参构造器

this(age);this调用带参构造器

1、我们在类的构造器中显示的使用this(形参列表)调用本类中的其它构造器

2、构造器中不能通过this(形参列表)调用自己

3、如果一个类中有n个构造器,最多有n-1使用了this(参数列表),如果最后一个构造器调用了其它构造器会一直循环形成不了闭环

4、规定:this(形参)必须在首行

5、构造器内部,最多只能声明一个this(形参列表)方式调用其它构造器

以上HashMap源码中this(形参列表)调用其它构造器可以降低代码冗余

相关推荐
颜如玉10 分钟前
🤲🏻🤲🏻🤲🏻临时重定向一定要能重定向🤲🏻🤲🏻🤲🏻
java·http·源码
程序员的世界你不懂1 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
星空寻流年1 小时前
设计模式第一章(建造者模式)
java·设计模式·建造者模式
gb42152872 小时前
java中将租户ID包装为JSQLParser的StringValue表达式对象,JSQLParser指的是?
java·开发语言·python
曾经的三心草2 小时前
Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
android·java·服务器
Metaphor6922 小时前
Java 高效处理 Word 文档:查找并替换文本的全面指南
java·经验分享·word
ChinaRainbowSea3 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程
stormsha3 小时前
飞算JavaAI炫技赛电商系统商品管理模块的架构设计与实现
java·架构·鸿蒙系统
minh_coo3 小时前
Spring框架事件驱动架构核心注解之@EventListener
java·后端·spring·架构·intellij-idea
翻滚丷大头鱼3 小时前
Java 集合Collection—List
java·开发语言