韩顺平0基础学java——第19天

2024-06-09 00:20
文章标签 java 基础 19 顺平

本文主要是介绍韩顺平0基础学java——第19天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

p396-406

final关键字

1.final修饰的为“常量”,需要给初始值。1可以直接定义时赋值,2在构造器中,3在代码块中。

注意静态代码块只能访问静态变量。

2.如果final修饰的关键字是静态的,那就不能在构造器中赋值,只能1定义时,2.在静态代码块中。

        因为构造器不能static,但是静态的在类加载的时候就要生成了,而构造器是在创建对象的时候才调用!

3.final类不能继承,但是可以实例化对象~

4.如果类不是final类,但是含有final方法,则该方法不能重写,但是可以继承。即仍然遵守继承机制。

5.一般来说,如果已经是一个final类了(不能被继承了),里面的方法就不用final了

6.final不能修饰构造器

7.final往往和static搭配,效率更高:不会导致类的加载,底层编译器做了优化 

8.包装类都是final的,不能被继承(如String,Integer,Double)

9.传入参数也可以用final修饰

抽象类

父类的一些方法声明了,但是没有实现,即没有方法体,这个方法就是抽象方法。

当一个类中存在抽象方法时,需要将该类声明为抽象类

设计模式用的比较多

抽象类细节

1.抽象类不能被实例化

2.抽象类不一定要包含abstract方法

3.一旦包含了abstract方法,则必须把类声明为abstract类

4.abstract只能修饰类和方法,不能修饰别的

5.抽象类可以有任意成员(抽象类还是个类)

6.抽象方法不能有方法体

7.如果一个类继承了抽象类,则它必须实现抽象类的所有方法,除非它自己也声明为abstract类

8抽象方法不能使用private、final、和static来修饰,因为这些关键字都是和重写违背的

抽象类最佳实践:模板设计模式

程序执行期间会动态绑定!根据运行类型来找方法。

接口

接口就是给出一些没有实现的方法,封装到一起,到某个类型要使用的时候,在根据具体的需求来把方法写出来。

interface 接口名{

        属性

        方法

}

class 类名 implements 接口名{

        自己属性

        自己方法

        必须实现的接口的抽象方法

}

小结:jdk7之前,接口中所有方法都没有方法体,即都是抽象方法,jdk8之后,接口可以有默认实现方法,要求用default修饰,如default public void kkk(){}。jdk8之后还可以有静态方法

如果一个类implements一个接口,那么必须将该接口的所有方法都实现。

接口的使用细节

应用场景:我要制造飞机,只需要把功能、规格定下来即可,然后让别人实现。(统一一个入口)

细节:

1.接口不能被实例化

2.接口中所有的方法都是public方法(就算你不写它也是public的),接口中的抽象方法可以不用abstract修饰。

3.一个普通类实现接口,就必须将连接接口的所有方法都实现:快捷键alt+enter

4.抽象类实现接口,可以不用实现接口的方法。(即抽象类本身是允许存放抽象方法的!)

5.一个类同时可以实现多个接口.

6.接口中的属性只能是final的,而且是public static final int a = 1;

这篇关于韩顺平0基础学java——第19天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043725

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We