2024Java基础总结+【Java数据结构】(2)

news2024/11/13 15:16:10

面向对象07:简单小结类与对象

1595579342761

面向对象08:封装详解

1595579211406

1595579218097

面向对象09:什么是继承

1595579223673

1595579270900

ctrl+h看类的关系,所有的类都默认的或间接继承Object

面向对象10:Super详解

1595581524390

1595583748334

super注意点:

  1. super调用父类的构造方法,必须在构造方法的第一个
  2. super必须只能出现在子类的方法或者构造方法中!
  3. super和this 不能同时调用构造方法!
    Vs this:
    代表的对象不同:
    this:本身调用者这个对象
    super:代表父类 对象的应用
    前提
    this:没有继承也可以使用
    super:只能在继承条件才可以使用
    构造方法
    this() ;本类的构造
    super():父类的构造!

面向对象11:方法重写

重写:需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表必须相同.
3.修饰符:范围可以扩大但不能缩小: public>Protected>Default>private
4.抛出的异常:范围,可以被缩小,但不能扩大: ClassNotFoundException --> Exception(大)
重写,子类的方法和父类必要一致: 方法体不同!
为什么需要重写:
1.父类的功能,子类不“定需要, 或者不一定满足!
Alt + Insert ; override;

1595930992822

1595931140884

子类重写父类,执行子类方法。

面向对象12:什么是多态

1595932000078

1595932129829

多态注意事项:

  1. 多态是方法的多态,属性没有多态

  2. 父类和子类,有联系 类型转换异常!ClassCastException!

  3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();

    不符合多态:static 方法,属于类,不属于实例;final常量;private方法。

    面向对象13:instanceof和类型转换

1595939583793

类型转化:父子之间,子类转换为父类,可能丢失自己本来的一些方法!

父类引用指向子类的对象;向上转型(子类转父类),向下(父类转子类),强制转换;方便方法的调用,减少重复的代码。

面向对象14:static关键字详解

static关键字一句话:方便在没有创建对象的情况下进行调用。

被static关键字修饰的不需要创建对象去调用,直接根据类名就可以去访问。

image-20200512145153972

image-20200512144535021

image-20200512150055794

可以看到类加载时,还未调用main方法就已经调用了静态代码块(static随着类加载一起加载)。

main方法中每次创建对象都会先执行匿名代码块再执行构造器,而静态代码块始终只执行了一次。

静态导入包

image-20200512151437849

image-20200512151512104

面向对象15:抽象类

abstract关键字,可修饰抽象方法、抽象类。

抽象类:类的抽象,可没有抽象方法,但有抽象方法的类一定要声明为抽象类。

1596091374081

抽象类不能被实例化,只有抽象类的非抽象子类可以创建对象。
抽象类存在的意义:更利于代码的维护和重用,提高开发效率。

1596091427354

编译器给抽象类添加了一个无参构造方法。

面向对象16:接口的定义与实现

接口最能体现oop的精髓,对 对象 的抽象。

在Java编程语言中是一个抽象类型,是抽象对象的集合,对象通常以interface关键字来声明。

  • 普通类:只有具体实现

  • 抽象类:具体实现和规范(抽象方法)共存

  • 接口:只有规范,无法自己实现

    约束和实现分离->面向接口编程

接口就是规范,定义一组规则,它的本质是契约,制定好之后大家都要遵守。

声明

 
[可见度] interface 接口名称 [extends 其他的接口名] {
// 声明变量
// 抽象方法
}
 
/**
* 用户接口,需要实现类
* 锻炼抽象的思维
*/
public interface UserService {
// 定义的属性默认是静态常量:public static final
int age = 10;
// 定义的方法是公共抽象:public abstract
void add(String str);
void delete(String str);
void update(String str);
void query(String str);
}
 
public interface TimeService {
void timer();
}

特性

  • 接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
  • 接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。
  • 接口中的方法都是公有的。

实现

 
/**
* 抽象类用继承:extends
* 接口用实现:implements
* 类可以实现接口,需要现实所有方法!
* 利用接口实现伪多继承~
*/
public class UserServiceImpl implements UserService,TimeService {
@Override
public void add(String str) {
}
@Override
public void delete(String str) {
}
@Override
public void update(String str) {
}
@Override
public void query(String str) {
}
@Override
public void timer() {
}
}

类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。

在实现接口的时候,也要注意一些规则:

  • 一个类只能继承一个类,但是能实现多个接口。
  • 一个接口能继承另一个接口,这和类之间的继承比较相似。

继承

接口的继承使用extends关键字,子接口继承父接口的方法。

 
// 文件名: Sports.java
public interface Sports
{
public void setHomeTeam(String name);
public void setVisitingTeam(String name);
}
// 文件名: Football.java
public interface Football extends Sports
{
public void homeTeamScored(int points);
public void visitingTeamScored(int points);
public void endOfQuarter(int quarter);
}
// 文件名: Hockey.java
public interface Hockey extends Sports
{
public void homeGoalScored();
public void visitingGoalScored();
public void endOfPeriod(int period);
public void overtimePeriod(int ot);
}

多继承

  • 不允许多继承

  • 接口允许多继承。

     
      
    public interface Hockey extends Sports, Event

1596094615952

接口与类相似,一个接口可以有多个方法。

接口与类的区别:

  • 接口不能用户实例化对象。
  • 接口没有构造方法。
  • 接口中所有的方法必须是抽象方法。
  • 接口不能包含成员变量,除了static和final变量。
  • 接口不是被类集成,而是被类实现。
  • 接口支持多继承。

1596094313451

JDK8之后的新特性,支持在接口中实现具体方法,但需要default修饰。default修饰方法只能在接口中使用。

【小沐学Java】VSCode搭建Java开发环境_vscode java-CSDN博客  https://blog.csdn.net/hhy321/article/details/138250174?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-10-138250174-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-10-138250174-null-null.nonecase

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

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

相关文章

白小白为波司登新品创作歌曲《登峰之路》,穿越风雨守护前行者

随着天气渐凉,波司登品牌推出全新新品——轻薄羽绒叠变系列,作为波司登品牌的新品推荐官,歌手白小白为波司登创作并演唱《轻薄羽绒叠变》系列主题曲《登峰之路》。歌曲中,白小白以激昂澎湃,明快有力的旋律以及深情又充…

【Unity小技巧】物体遮挡轮廓描边效果

前言: 效果展示: 遮挡描边 Demo下载 所用插件 QuickOutline描边插件(在Demo里) 实现步骤 物体挂载Outline组件,做如下处理 Outline Mode(描边模式):Outline Hidden(遮挡模式显示…

让中学生也能一下子认识5000年都无人能识的无穷大自然数

黄小宁 5000多年来数学一直未能证明存在>N一切数的标准无穷大自然数及其倒数,从而一直否定存在这类数,正如西医否定人体存在经络系统那样。 x轴各元点的坐标x变为的有序数对 ( x , y2 x)是平面点p的坐标,点p的全体是直线y2x。 x可变成一…

HOT100(八)动态规划

1、爬楼梯 ①动态规划 (1)时间复杂度 O(n) ,空间复杂度 O(n)的做法 开辟一个长度为 n1 的状态数组f,f[i]表示走到第i个台阶的方案数。初始化f[0]1(在台阶底部,不需要移动也视为一种方法),f[1…

HNU-2023电路与电子学-实验3

写在前面: 本次实验是完成cpu设计的剩余部分,整体难度比上一次要小,细心完成就能顺利通过全部测评 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能…

Oracle再度发起开发人员调查,细节满满

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

GO学习笔记(4) strconv/time

目录 strconv包1、string与bool之间的转换2、string与int之间的转换 time包1、常用常量定义2、Now()获取当前年月日时分秒3、Format()时间格式化4、Parse()/ ParseInLocation()解析时…

anaconda启动jupyter notebook

1.在Windows搜索框搜索anaconda prompt点击打开 2.然后输入命令jupyter notebook 3.在这个页面编写你的程序

基于Java的宿舍报修管理系统的设计与实现(论文+源码)_kaic

基于Java的宿舍报修管理系统的设计与实现(论文源码)_kaic 摘  要 随着教育改革‎‏的不断‎‏深入,‎‏学校宿‎‏舍的管‎‏理体系‎‏也在不‎‏断地完‎‏善,校园后勤服务是学校管理的重要工作,学校提供优秀的后勤服务,能提…

【Jupyter Notebook】安装与使用

打开Anaconda Navigator点击"Install"(Launch安装前是Install)点击"Launch"点击"File"-"New"-"Notebook"​ 5.点击"Select"选择Python版本 6.输入测试代码并按"Enter+Shift"运行代码: 代码如下: …

C++万字解析类和对象(上)

1.类的定义 class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数。 为了区分成员变量&…

Linux(RedHat或CentOS)下如何开启telnet服务

一、Telnet服务介绍 Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入…

【STM32】串口

1.串口-printf 使用printf函数向串口发送东西 使用微库,用到了printf, 但是我们发现是不能发送的 因为底层printf是fputc,我们需要自己实现 后面FILE*P不用管,在fputc中调用 第一个参数为uart1的句柄 第二个为要输出的字符 第三个为一次要发送几…

【c++进阶[五]】list相关接口介绍及list和vector的对比

💓博主CSDN主页::Am心若依旧💓 ⏩专栏分类c从入门到精通⏪ 🚚代码仓库:青酒余成🚚 🌹关注我🫵带你学习更多c   🔝🔝 1.前言 本章重点 本章重点讲解list的接口函数的熟悉&#xf…

W11系统电脑便捷设置

1【win11】取消右键菜单“更多选项”,直接展示完整右键菜单 取消右键菜单“更多选项”,直接展示完整右键菜单 (本质上是修改注册表,通过命令行的方式更加直接快捷) 只需要使用 winR 输入cmd 打开命令行,然后输入以下指令&#xf…

使用ChatGPT润色论文的10大分步技巧,效果立竿见影

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。 撰写学术论文确实是一项非常具有挑…

HTML 转 PDF API 接口

HTML 转 PDF API 接口 网络工具 / 文件处理 支持网页转 PDF 高效生成 PDF / 提供永久链接。 1. 产品功能 超高性能转换效率;支持将传递的 HTML 转换为 PDF,支持转换 HTML 中的 CSS 格式;支持传递网站 URL,直接转换页面成对应的 …

C++笔记20•数据结构:哈希(Hash)•

哈希 1.无序的关联式容器(unordered_map&unordered_set) unordered_map与unordered_set几乎与map与set是一样的,只是性能unordered_map与unordered_set比map与set更优一些。还有就是unordered_map与unordered_set是无序的,…

梳理2024年,螺丝钉们爱用的3款剪辑软件

这年头,视频到处都是,就跟天上的星星一样数不清。不管你是公司里的新面孔,还是职场上的老狐狸,学会怎么剪视频,就好比找到了赢的秘诀。不管是给上司汇报工作,展示你的产品,还是自己搞点小视频记…

C#顺序万年历自写的求余函数与周位移算法

static int 返回月的天数(int 年, int 月){return (月 2 ?(((年 % 4 0 && 年 % 100 > 0) || 年 % 400 0) ? 29 : 28) :(((月 < 7 && 月 % 2 > 0) || (月 > 7 && 月 % 2 0)) ? 31 : 30));}static int 返回年总天数(int 年, int 标 …