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(形参列表)调用其它构造器可以降低代码冗余

相关推荐
科兴第一吴彦祖8 分钟前
基于Spring Boot + Vue 3的乡村振兴综合服务平台
java·vue.js·人工智能·spring boot·推荐算法
ajassi200010 分钟前
开源 java android app 开发(十八)最新编译器Android Studio 2025.1.3.7
android·java·开源
纤瘦的鲸鱼14 分钟前
Spring Gateway 全面解析:从入门到进阶实践
java·spring·gateway
用户32941900421628 分钟前
Java接入DeepSeek实现流式、联网、知识库以及多轮问答
java
Knight_AL32 分钟前
浅拷贝与深拷贝详解:概念、代码示例与后端应用场景
android·java·开发语言
DolphinScheduler社区34 分钟前
# 3.1.8<3.2.0<3.3.1,Apache DolphinScheduler集群升级避坑指南
java·大数据·开源·apache·任务调度·海豚调度
Le1Yu1 小时前
黑马商城微服务项目准备工作并了解什么是微服务、SpringCloud
java·微服务·架构
ZhengEnCi1 小时前
🚀创建第一个 SpringBoot 应用-零基础体验开箱即用的神奇魅力
java·spring boot
宠友信息1 小时前
仿小红书短视频APP源码:Java微服务版支持小程序编译的技术解析
java·微服务·音视频
努力努力再努力wz1 小时前
【C++进阶系列】:万字详解智能指针(附模拟实现的源码)
java·linux·c语言·开发语言·数据结构·c++·python