当前位置: 首页 > news >正文

Java学习记录day8

类与对象

继承例题

https://www.bilibili.com/video/BV1PU4y1E7nX?p=55&vd_source=8f80327daa664c039f5c342a25bcbbae(B站千峰马剑威Java基础入门视频第P55,记录的重要学习内容之一)

final关键字

作用:

  1. 声明一个常量(常用规范命名建议全大写),修饰属性或修饰局部变量(最终变量),也成常量(不能改变);
  2. 声明一个方法,该方法为最终方法,且只能被子类继承,但是不能被子类重写;
  3. 声明一个类,该类为最终类,没有子类的类,无法被继承;
  4. 在方法参数中使用,在内部类中不能修改参数值,在内部类中详解。
public class Test{public static void main(String[] args){System.out.println(Constant.TEN_NUM);}
}
//常量类,常量可以另起一类定义防止访问时出问题
public final class Constant{public static final int TEN_NUM = 10;//常量通常这么定义(权限自定义)
}

抽象类

很多具有相同特征的和行为的对象可以抽象为一个类,很多和相同特征和行为的类可以抽象为一个抽象类;使用abstract关键字声明类为抽象类。
抽象类中有抽象方法、成员变量、构造方法和其他成员方法。
抽象类中的抽象方法,即只有定义没有实现,也就是没有大括号的内容直接把大括号换位了分号,然后在具体类中重写方法实现方法的具体功能,也就是说抽象类本身并不能运行也不能被实例化,就是用来作为父类被继承的。
抽象类不能个被声明为final

public class Test{public static void main(String[] args){Villa villa = new Villa();villa.color();villa.buildFloor();villa.buildTepy();}
}
public abstract class Building{private String name;private int age;public Building(String name) {this.name = name;}	// 抽象方法    没有方法的实现public abstract void buildTepy();//成员方法public void color() {System.out.println("colorful");}
}
//抽象方法可以继承抽象方法
public abstract class House extends Building{public abstract void buildFloor();
}
public class Villa extends House{@Overridepublic void color() {// TODO Auto-generated method stubSystem.out.println("red");}//在子类中实现@Overridepublic void buildTepy(){System.out.println("别墅");}@Overridepublic void buildFloor(){System.out.println("3层");}
}

接口

接口方便我们拓展代码,如果写好的系统想去添加功能,不用去找代码的相关模块并修改,直接使用接口添加,然后在主函数中电泳即可。
接口相当于特殊的抽象类,接口里面都是抽象方法,通过接口不能创建对象。
定义格式:
修饰符 interface 接口名 {
常量
抽象方法
default修饰的方法
static 修饰的方法
}

public class Test{public static void main(String[] args){Villa villa = new Villa();villa.color();villa.buildFloor();villa.buildTepy();}
}//与抽象类类似,接口类也可以被继承,这里不再写出,有兴趣可以尝试
public abstract class House{void buildFloor();//接口方法中可以不用修饰符,默认为public abstractvoid buildTepy();void color();//JDK1.8之后可用public default void print(){System.out.println("default");}
}
public class Villa extends House{@Overridepublic void color() {// TODO Auto-generated method stubSystem.out.println("red");}//在子类中实现@Overridepublic void buildTepy(){System.out.println("别墅");}@Overridepublic void buildFloor(){System.out.println("3层");}
}

多态

多态性是对象在运行的过程中的多种形态。父类变量可以引用子类的对象,调用相同的方法,展示多种形态(表现不一样),方法的重载和重写也是多态。
例:Dog dog = new SingleDog();
对象的多态性:
**向上转型:**将子类实例转为父类引用,会自动转换:父类 父类对象 = 子类实例 例:int i = ‘a’;
**向下转型:**将父类实例转为子类引用,强制转换: 子类 子类对象 = 父类实例 例:char c = (char)97;

instanceof关键字

用于检查对象是否为指定的类型,通常把父类强制转换为子类引用时要使用,以避免发生类型转换异常。
对象 instanceof 类型 返回boolean类型值
例:

if(singleDog instanceof Dog){}

一般用于判断一个对象是否为某个类的实例。

相关文章:

Java学习记录day8

类与对象 继承例题 https://www.bilibili.com/video/BV1PU4y1E7nX?p55&vd_source8f80327daa664c039f5c342a25bcbbae(B站千峰马剑威Java基础入门视频第P55,记录的重要学习内容之一) final关键字 作用: 声明一个常量&…...

Solon2 开发之容器,三、注入或手动获取 Bean

1、如何注入Bean? 先了解一下Bean生命周期的简化版: 运行构建函数尝试字段注入(有时同步注入,没时订阅注入。不会有相互依赖而卡住的问题)Init 函数(是在容器初始化完成后才执行)…释放&#…...

微信小程序_调用openAi搭建虚拟伙伴聊天

微信小程序_调用openAi搭建虚拟伙伴聊天背景效果关于账号注册接口实现8行python搞定小程序实现页面结构数据逻辑结速背景 从2022年的年底,网上都是chagpt的传说,个人理解这个chatgpt是模型优化训练,我们在用chatgpt的时候就在优化这个模型&a…...

硬件工程师入门基础知识(一)基础元器件认识(一)

硬件工程师入门基础知识 (一)基础元器件认识(一) 今天水一篇hhh。介绍点基础但是实用的东西。 tips:学习资料和数据来自《硬件工程师炼成之路》、百度百科、网上资料。 1.贴片电阻 2.电容 3.电感 4.磁珠 1.贴片电…...

TCP的运输连接管理

TCP的运输连接管理 文章目录TCP的运输连接管理TCP报文格式简介首部各个字段的含义控制位(flags)TCP的连接建立抓包验证一些细节及解答TCP连接释放抓包验证一些细节及解答参考TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP运输连接的建立和释放时每一次面向连接的通信…...

地级市用电、用水、用气数据指标

用电用水量和煤气及液化石油气供应及利用情况可以反映出城市基础设施的建设情况!之前我们基于历年的《中国城市统计年鉴》整理了1999—2020年的人口数量数据指标、人口变动数据指标、用地相关数据指标、污染物排放和环境治理相关数据指标、地区生产总值及一二三产构…...

安装deepinlinuxV20.8配置docker和vscode开发c语言

# 重装的原因 某个开发任务时,发现需要glibc2.25,本机版本比较低,就下载源码configure make makeinstall,结果失败了, 看来与系统用的glibc有冲突,造成部分库版本不一致,打开终端出现段错误&#x…...

java08-面向对象3

一:static 关键字:静态的 1.可以用来修饰的结构:主要用来修饰类的内部结构 属性、方法、代码块、内部类 2. static 修饰属性:静态变量(或类变量) 2.1 属性,是否使用static修饰,又分为静态属…...

【Spark分布式内存计算框架——Spark Core】8. 共享变量

第七章 共享变量 在默认情况下,当Spark在集群的多个不同节点的多个任务上并行运行一个函数时,它会把函数中涉及到的每个变量,在每个任务上都生成一个副本。但是,有时候需要在多个任务之间共享变量,或者在任务(Task)和…...

C++多态常见面试题

1.什么是多态 简单点说,就是多种形态,具体就是完成某个行为,当不同的对象去完成时产生的不同形态。多态分为静态多态和动态多态,静态多态一般指的是函数重载,在编译阶段通过函数名修饰规则,不同类型调用不同…...

字母板上的路径 题解,力扣官方出来挨打(小声)

字母板上的路径 我们从一块字母板上的位置 (0, 0) 出发,该坐标对应的字符为 board[0][0]。 在本题里,字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”],如下所示。 我们可以按下面的指令规则行动&#xff1a…...

代码随想录算法训练营第二十六天 | 39. 组合总和,40.组合总和II,131.分割回文串

一、参考资料组合总和题目链接/文章讲解:https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html 视频讲解:https://www.bilibili.com/video/BV1KT4y1M7HJ 组合总和II题目链接/文章讲解:https://programmercarl.com/004…...

vueday01-脚手架安装详细

一、vue脚手架安装命令npm i -g vue/cli 或 yarn global add vue/cli安装上面的工具,安装后运行 vue --version ,如果看到版本号,说明安装成功或 vue -V工具安装好之后,就可以安装带有webpack配置的vue项目了。创建项目之前&#…...

初识cesium3d(一)

使用ViteVue3.2Cesium。Vite需要Node.js版本14.18及以上版本。Vite命令创建的工程会自动生成vite.config.js文件,来配置一些相关的参数。 1、使用Vite创建vue3项目 # npm npm init vitelatest cesium-app -- --template vue # yarn yarn create vite cesium-app…...

点云转3D网格【Python】

推荐:使用 NSDT场景设计器 快速搭建 3D场景。 在本文中,我将介绍我的 3D 表面重建过程,以便使用 Python 从点云快速创建网格。 你将能够导出、可视化结果并将结果集成到您最喜欢的 3D 软件中,而无需任何编码经验。 此外&#xff0…...

【OpenCV图像处理系列一】OpenCV开发环境的安装与搭建(Ubuntu + Window都适用)

🔗 运行环境:OpenCV,Ubuntu,Windows 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### &#x…...

【代码随想录】-动态规划专题

文章目录理论基础斐波拉契数列爬楼梯使用最小花费爬楼梯不同路径不同路径 II整数拆分不同的二叉搜索树背包问题——理论基础01背包二维dp数组01背包一维数组(滚动数组)装满背包分割等和子集最后一块石头的重量 II目标和一和零完全背包零钱兑换 II组合总和…...

c++数据类型 输入输出

C++语法 //常用包: iostream:cin cout endl cstdio:scanf printf algorithm:max min reverse swap cstring:memset memcpymemset(a,-1,sizeof a) 填充数组memcpy(b,a,sizeof a) 将a数组复制到b数组,长度是a数组字节长度 cmath:sin sqrt pow abs fabs编程是一种控制计…...

【设计模式-11】责任链模式

认识设计模式(十一)---责任链模式【一】责任链模式【二】介绍(1)意图(2)主要解决(3)何时使用(4)如何解决(5)关键代码(6&am…...

SpringBoot+Vue实现智能物流管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…...

【MT7628】MT7628如何修改串口波特率、调试串口物理口、使用UART3口

环境说明 sdk版本:Mediatek_ApSoC_SDK_4320_20150414.tar.bz2 芯片方案:MT7628A Uboot修改串口波特率方法 修改rt2880.h文件 修改include/configs/rt2880.h文件CONFIG_BAUDRATE宏的值 - #define CONFIG_BAUDRATE 57600 +#define CONFIG_BAUDRATE 115200 Kernel中修改串口波特…...

css盒模型介绍

在使用CSS进行网页布局时,我们一定离不开的一个东西————盒子模型。盒子模型,顾名思义,盒子就是用来装东西的,它装的东西就是HTML元素的内容。或者说,每一个可见的 HTML 元素都是一个盒子,下面所说的盒子…...

onetab 谷歌插件历史数据清除

文章目录方法1:测试也可以步骤1:批量执行点击步骤2:python 脚本模拟点击确定操作方法2:成功【推荐】步骤1:修改confirm,类似于hook操作步骤2:批量点击删除操作:onetab 谷歌插件历史数…...

GRBL源码简单分析

结构体说明 GRBL里面的速度规划是带运动段前瞻的,所以有规划运动段数据和微小运动段的区分 这里的“规划运动段”对应的数据结构是plan_block_t,前瞻和加减速会使用到,也就是通过解析G代码后出来的直接直线数据或是圆弧插补出来的拟合直线数据…...

第一部分:简单句——第一章:简单句的核心——二、简单句的核心变化(谓语动词的情态)

二、简单句的核心变化 简单句的核心变化其实就是 一主一谓(n. v.) 表达一件事情,谓语动词是其中最重要的部分,谓语动词的变化主要有四种:三态加一否(时态、语态、情态、否定),其中…...

软考高级考试中有五大证书,其中哪个更值得考?

计算机软考属于专业技术人员职业资格水平评价类,是职业资格、专业技术资格(职称)和专业技术水平"三合一"的考试,是目前IT行业仅有的国家级考试。考试不受学历、专业、资历等条件限制。软考高级考试中有五大证书&#xf…...

FlexRay™ 协议控制器 (E-Ray)-04

网络管理 累积的网络管理 (NM) 向量位于网络管理寄存器 1 到网络管理寄存器 3 (NMVx (x = 1-3)) 中。【The accrued Network Management (NM) vector is located in the Network Management Register 1 to Network Management Register 3 (NMVx (x = 1-3)).】 网络管理向量 x…...

container_of 根据成员变量获得包含其的对象的地址!

写在前面 本系列文章的灵感出处均是各个技术书籍的读后感,详细书籍信息见文章最后的参考文献 CONTAINER_OF 在书中发现一个很有意思的宏,以此可以衍生出来其很多的用法,这个宏可以根据某个成员变量的地址得到包含这个成员变量地址的对象的…...

Linux进程概念

Linux进程概念前言冯诺依曼体系操作系统设计操作系统的目的如何理解OS是一款搞“管理”的软件?系统调用和库函数的概念进程的概念描述进程组织进程查看进程fork()前言 本篇博客主要介绍一些:冯诺依曼体系、OS的理解、进程的一些概…...

算法设计与分析

两个例子:调度问题与投资问题 例1:调度问题 问题 有 n 项任务,每项任务加工时间已知.从 0时刻开始陆续安排到一台机器上加工. 每个任务的完成时间是从 0 时刻到任务加工截止的时间. 求: 总完成时间(所有任务完成时间之和)最短…...

焦作 做 网站/seo教程网站优化

我司(东识科技DONWIT)RFID文件管理系统是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 近年来,电子化、网络化长足进步,电子政务不…...

如何做影视网站的标题/网站维护需要学什么

通过使用zabbix 日志监控 我发现一个问题 例如oracle的日志有报错的情况 ,通常不会去手动清理 这样的话当第二次有日志写进来的时候 zabbix的机制是回去检查全部日志,这样的话之前已经告警过的错误日志,又会被检查到,这样就会出现重复告警,而…...

校园微网站建设方案ppt模板/广东云浮疫情最新情况

一、单项选择题 1、法定的证据种类是法律按照证据事实的( ),对证据所作的具体分类。 A、特点 B、来源 C、表现形式 D、本质属性 2、物证是能够证明案件真实情况的物品或者( )。 A、工具 B、痕迹 C、票证 D、枪支 3、对…...

那里可以做网站的吗/b2b网站平台

1. 简介(The caret package ) 2. 可视化(The caret package) 3. 预处理(The caret package) 4. 数据分割(The caret package) 5. 模型训练和调参(The caret package) 6. 可用模型(The caret package ) 7. train的模型标签…...

哪个网站教做ppt/互联网营销的优势

本篇博客参考Laravel China 吴坷麟的文章 人人为我,我为人人!向社区发布自己的 Composer 包 主要讲解如何上传Composer包到Packagist,并在Thinkphp5.0中使用。 1.Github上创建仓库,并pull至本地。在本地cmd运行: git c…...

推荐几个免费的网站/网站的推广方式有哪些

原文:How to use the SocketAsyncEventArgs class. by Marcos Hidalgo Nunes Download client - 4.09 KB Download server - 7.5 KB引言 我一直在探寻一个高性能的Socket客户端代码。以前,我使用Socket类写了一些基于传统异步编程模型的代码(…...