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

相关推荐
wuxinyan12323 分钟前
Java面试题47:一文深入了解Nginx
java·nginx·面试题
新知图书26 分钟前
搭建Spring Boot开发环境
java·spring boot·后端
冰河团队30 分钟前
一个拉胯的分库分表方案有多绝望?整个部门都在救火!
java·高并发·分布式数据库·分库分表·高性能
洛_尘34 分钟前
Java EE进阶:Linux的基本使用
java·java-ee
宸津-代码粉碎机36 分钟前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python
MaCa .BaKa38 分钟前
47-心里健康咨询平台/心理咨询系统
java·spring boot·mysql·tomcat·maven·intellij-idea·个人开发
木子欢儿1 小时前
Docker Hub 镜像发布指南
java·spring cloud·docker·容器·eureka
Devin~Y1 小时前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
蜡台1 小时前
IDEA 一些 使用配置和插件
java·ide·intellij-idea
磊 子2 小时前
redis详解2
java·spring boot·redis