Java面向对象第6天

精华笔记:

  1. static final常量:应用率高

    • 必须声明同时初始化

    • 常常由类名点来访问,不能被改变

    • 建议:常量所有字母都大写,多个单词用_分隔

    • 编译器在编译时会将常量直接替换为具体的值,效率高

    • 何时用:数据永远不变,并且经常使用

  2. 抽象方法:

    • 由abstract修饰

    • 只有方法的定义,没有具体的实现(连{}都没有)

  3. 抽象类:

    • 由abstract修饰

    • 包含抽象方法的类必须是抽象类

    • 抽象类不能被实例化

    • 抽象类是需要被继承的,派生类:

      • 重写抽象方法(变不完整为完整)-----------一般做法

      • 也声明为抽象类-------------------------------一般不这么做

    • 抽象类的意义:

      • 封装共有的属性和行为--------------------代码复用

      • 为所有派生类提供统一的类型-----------向上造型(代码复用)

      • 可以包含抽象方法,为所有派生类提供统一的入口(造型之后能点出来),同时可以达到强制必须重写的目的(相当于制定一个规则)

笔记:

  1. static final常量:应用率高

    • 必须声明同时初始化

    • 常常由类名点来访问,不能被改变

    • 建议:常量所有字母都大写,多个单词用_分隔

    • 编译器在编译时会将常量直接替换为具体的值,效率高

    • 何时用:数据永远不变,并且经常使用

      public class StaticFinalDemo {public static void main(String[] args) {System.out.println(Aoo.PI); //常常通过类名点来访问//Aoo.PI = 3.1415926; //编译错误,常量不能被改变
      ​
      ​//1)加载Boo.class到方法区中//2)静态变量num一并存储在方法区中//3)到方法区中获取num的值并输出System.out.println(Boo.num);
      ​//编译器在编译时会将常量直接替换为具体的值,效率高//相当于System.out.println(5);System.out.println(Boo.COUNT);
      ​}
      }
      ​
      class Boo{public static int num = 5; //静态变量public static final int COUNT = 5; //常量
      }
      ​
      class Aoo{public static final double PI = 3.14159;//public static final int NUM; //编译错误,常量必须声明同时初始化
      }

  2. 抽象方法:

    • 由abstract修饰

    • 只有方法的定义,没有具体的实现(连{}都没有)

  3. 抽象类:

    • 由abstract修饰

    • 包含抽象方法的类必须是抽象类

    • 抽象类不能被实例化

    • 抽象类是需要被继承的,派生类:

      • 重写抽象方法(变不完整为完整)-----------一般做法

      • 也声明为抽象类-------------------------------一般不这么做

    • 抽象类的意义:

      • 封装共有的属性和行为--------------------代码复用

      • 为所有派生类提供统一的类型-----------向上造型(代码复用)

      • 可以包含抽象方法,为所有派生类提供统一的入口(造型之后能点出来),同时可以达到强制必须重写的目的(相当于制定一个规则)

补充:

  1. 设计规则:

    • 将共有的属性和行为,抽到超类中------------------------抽共性

    • 若派生类的行为都一样,设计为普通方法

      若派生类的行为都不一样,设计为抽象方法

  2. 抽象方法/抽象类的疑问:

    • 抽象方法存在的意义是什么?

      • 保证当发生向上造型时,通过超类的引用能点出来那个方法-------保证能点出方法来

    • 既然抽象方法的意义是保证能点出来,那为什么不设计为普通方法呢?

      • 设计为普通方法,意味着派生类可以重写也可以不重写,但设计为抽象方法,可以强制派生类必须重写--------------强制派生类重写的目的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IWDG和WWDG HAL库+cubeMX

一.IWDG 1.原理 启用IWDG后,LSI时钟会自动开启 2.IWDG溢出时间计算 3.IWDG配置步骤 4.HAL库相关函数介绍 HAL_IWDG_Init //使能IWDG,设置预分频系数和重装载值等 HAL_IWDG_Refresh //把重装载寄存器的值重载到计数器中,喂狗typedef str…

leetcode:2549. 统计桌面上的不同数字(python3解法)

难度&#xff1a;简单 给你一个正整数 n &#xff0c;开始时&#xff0c;它放在桌面上。在 109 天内&#xff0c;每天都要执行下述步骤&#xff1a; 对于出现在桌面上的每个数字 x &#xff0c;找出符合 1 < i < n 且满足 x % i 1 的所有数字 i 。然后&#xff0c;将这些…

linux文件管理命令_切换创建复制移动删除查看修改

1.3 文件管理命令 1.3.1 cd&#xff1a;切换目录&#xff08;change directory&#xff09; cd 绝对路径/相对路径 # 根目录 [rootlocalhost ~]# cd / # 家目录 [rootlocalhost /]# cd [rootlocalhost /]# cd ~ # 父级目录 [rootlocalhost /]# cd .. # 返回上一次目录 [roo…

fabric构建自动部署服务

1. fabric简介 fabric 是python 的一个第三方库&#xff0c;同时它也是一个命令行工具。它提供了丰富的同 SSH 交互的接口&#xff0c;可以用来在本地或远程机器上自动化、流水化地执行 shell 命令。使用 fabric 提供的命令行工具&#xff0c;可以很方便地执行应用部署和系统管…

dcat admin日志扩展 dcat-log-viewer 遇到的问题记录

扩展地址&#xff1a; https://github.com/duolabmeng6/dcat-log-viewer 问题描述&#xff1a; 使用很简单&#xff0c;直接安装扩展包&#xff0c;开启扩展就可以了&#xff0c;会自动生成菜单。 之前在别的系统用过&#xff0c;没问题&#xff0c;今天在一个新的系统用的时…

食谱菜谱大全API接口

食谱菜谱大全API接口 一、食谱菜谱大全API接口二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、食谱菜谱大全API接口 包含所有家用或者商用的食谱菜谱的API接口 二、使用步骤 1…

Vue3-VueRouter4路由语法解析

1.创建路由实例由createRouter实现 2.路由模式 1&#xff09;history模式使用createWebHistory()&#xff1a;地址栏不带# 2&#xff09;hash模式使用createWebHashHistory()&#xff1a;地址栏带# 3&#xff09;参数是基础路径&#xff0c;默认/ 括号里的就是设置路径的前…

微服务--04--SpringCloudGateway 网关

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.网关路由1.1 认识网关在SpringCloud当中&#xff0c;提供了两种网关实现方案&#xff1a; 1.2.快速入门1.3.路由过滤 2.网关登录校验2.1.鉴权思路分析2.2.网关过滤…

图解系列--Web服务器,Http首部

1.用单台虚拟主机实现多个域名 HTTP/1.1 规范允许一台 HTTP 服务器搭建多个 Web 站点。。比如&#xff0c;提供 Web 托管服务&#xff08;Web Hosting Service&#xff09;的供应商&#xff0c;可以用一台服务器为多位客户服务&#xff0c;也可以以每位客户持有的域名运行各自不…

【古月居《ros入门21讲》学习笔记】07_创建工作空间和功能包

目录 说明&#xff1a; 1. 工作空间(workspace) 结构&#xff1a; 2. 创建工作空间和功能包 创建工作空间 编译工作空间 创建功能包 设置环境变量 3. 注意 同一个工作空间下&#xff0c;不能存在同名的功能包&#xff1b; 不同工作空间下&#xff0c;可以存在同名的功…

淘宝详情API接口:一键获取商品信息的实践探索

一、引言 淘宝作为中国最大的电商平台&#xff0c;拥有庞大的商品信息库。为了更好地利用这些数据&#xff0c;开发者可以通过淘宝提供的API接口来获取商品详情。本文将深入探讨如何使用淘宝详情API接口一键获取商品信息&#xff0c;通过实践操作和代码示例&#xff0c;带领读…

Metasploit框架(2), MSF信息搜集

Metasploit框架(2), MSF信息搜集 路径以auxiliary开头的都是辅助模块, 比如auxiliary/scanner/smb/smb_version. 信息搜集一般使用nmap和辅助模块下的各种扫描器. 1. db_nmap db_nmap参数的用法与nmap命令相同. db_nmap -sn 192.168.112.1/24 # 扫描存活主机 db_nmap --scr…

Spine深入学习 —— 动画

SkeletonAnimation 继承于SkeletonRenderer 播放动画 spTrackEntry* SkeletonAnimation::setAnimation (int trackIndex, const std::string& name, bool loop) {spAnimation* animation spSkeletonData_findAnimation(_skeleton->data, name.c_str());if (!animati…

docker-compose替代者

Process Compose 是一个简单而灵活的调度程序和编排器&#xff0c;用于管理非容器化应用程序。 它深受docker-compose的启发&#xff0c;但不需要容器。不必处理 docker 文件、卷定义、网络和 docker 注册表 配置语法尝试遵循 docker-compose 规范&#xff0c;进行了一些小的…

【python】——组合数据类型(单选练习题)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

达索系统3DEXPERIENCE WORKS 2024 结构仿真功能增强

simulia结构仿真是什么&#xff1f; 不仅能对结构进行力学、热学、声学等多学科计算&#xff0c;辅助于设计方案的优化&#xff1b;还能采用数字化技术模拟产品性能&#xff0c;大幅节约试验和样机迭代成本。达索系统3DEXPERIENCE WORKS 2024 结构仿真为企业提供随需应变、精准…

centos7-docker安装与使用

文章目录 一、docker简介1.1docker应用场景1.2docker的优点1.2.1快速&#xff0c;一致地交付应用程序1.2.2响应式部署和扩展1.2.3在同一硬件上运行更多工作负载 1.2docker的架构 二、docker的安装2.1新系统的环境搭建2.1.1更换yum源 2.2安装docker与卸载2.2.1yum安装docker2.2.…

看懂YOLOv7混淆矩阵的含义,正确计算召回率、精确率、误检率、漏检率

文章目录 1、准确率、精确率、召回率、误报率、漏报率概念及公式1.1 准确率 Accuracy1.2 精确率 Precision1.3 召回率 Recall1.4 F1-Score1.5 误检率 false rate1.6 漏检率 miss rate 2、YOLOv7混淆矩阵分析 1、准确率、精确率、召回率、误报率、漏报率概念及公式 重点参考博文…

唯创知音WT588F02A-16S录音语音芯片在宠物喂食器中的应用:小芯片,大功能

在现代社会中&#xff0c;宠物已经成为人们生活中的一部分&#xff0c;而宠物喂食器作为宠物养护的重要工具&#xff0c;也越来越受到人们的关注。为了满足人们对宠物喂食器的多样化需求&#xff0c;唯创知音的WT588F02A-16S录音芯片在其中发挥着重要作用。 唯创知音的WT588F0…

.net7.0中把exe和dll分开打包

之前写过 C#把dll分别放在指定的文件夹_wpf core dll 放文件夹-CSDN博客 C#把dll打包到exe_c# 打包exe_故里2130的博客-CSDN博客 这都是老技术了&#xff0c;可以进行参考。 现在的.netcore系列有单独支持把exe和dll分开打包的功能了&#xff0c;当然也支持.net7.0和.net8.…