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

相关推荐
程序定小飞5 分钟前
基于springboot的论坛网站设计与实现
java·开发语言·spring boot·后端·spring
ZHE|张恒34 分钟前
Java 泛型详解:类型参数的力量
java
何中应1 小时前
如何使用Spring Context实现消息队列
java·后端·spring
四念处茫茫1 小时前
Rust:与JSON、TOML等格式的集成
java·rust·json
摸鱼仙人~1 小时前
一文深入学习Java动态代理-JDK动态代理和CGLIB
java·开发语言·学习
微知语2 小时前
Cell 与 RefCell:Rust 内部可变性的双生子解析
java·前端·rust
雨过天晴而后无语2 小时前
Windchill10+html使用Lightbox轻量化wizard的配置
java·前端·html
Yeniden2 小时前
设计模式>原型模式大白话讲解:就像复印机,拿个原件一复印,就得到一模一样的新东西
java·设计模式·原型模式·1024程序员节
披着羊皮不是狼2 小时前
HTTP 与 API 入门:理解前后端交互原理
java·网络协议·http·交互
2401_841495642 小时前
【操作系统】模拟真实操作系统核心功能的Java实现
java·操作系统·进程管理·系统调用·并发控制·中断处理·cpu调度