【尚硅谷】第07章:随堂复习与企业真题(面向对象-进阶)

来源:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)

基本都是宋老师发的资料里面的内容,只不过补充几个资料里没直接给出答案的问题的答案。
不想安装markdown笔记的app所以干脆在这里发一遍。

第07章:随堂复习与企业真题(面向对象-进阶)


一、随堂复习

1. this关键字的使用

  • this调用的结构:属性、方法;构造器

  • this调用属性或方法时,理解为:当前对象或当前正在创建的对象。

    public void setName(String name){ //当属性名和形参名同名时,必须使用this来区分this.name = name;
    }public Person(String name){this.name = name;
    }
    
  • this(形参列表)的方式,表示调用当前类中其他的重载的构造器。

2. 面向对象的特征二:继承性

  • 继承性的好处
    • 减少了代码的冗余,提高了复用性;
    • 提高了扩展性
    • 为多态的使用,提供了前提。
  • Java中继承性的特点
    • 局限性:类的单继承性。后续我们通过类实现接口的方式,解决单继承的局限性。
    • 支持多层继承,一个父类可以声明多个子类。
  • 基础:class A extends B{}
  • 理解:子类就获取了父类中声明的全部的属性、方法。可能受封装性的影响,不能直接调用。

3. 方法的重写(override / overwrite)

  • 面试题:方法的重载与重写的区别?
    • 方法的重载:“两同一不同”(同一个类,同名,不同参数列表)
    • 方法的重写:
      • 前提:类的继承关系
      • 子类对父类中同名同参数方法的覆盖、覆写。

4. super关键字的使用

  • super可以调用的结构:属性、方法;构造器
  • super:父类的
  • super调用父类的属性、方法:
    • 如果子父类中出现了同名的属性,此时使用super.的方式,表明调用的是父类中声明的属性。
    • 子类重写了父类的方法。如果子类的任何一个方法中需要调用父类被重写的方法时,需要使用super.
  • super调用构造器:
    • 在子类的构造器中,首行要么使用了"this(形参列表)“,要么使用了"super(形参列表)” →二选一

5. (熟悉)子类对象实例化的全过程

  • 结果上来说:体现为继承性
  • 过程上来说:子类调用构造器创建对象时,一定会直接或间接的调用其父类的构造器,以及父类的父类的构造器,…,直到调用到Object()的构造器。

6. 面向对象的特征三:多态性

  • 广义上的理解:子类对象的多态性、方法的重写;方法的重载

    狭义上的理解:子类对象的多态性。

  • 格式:Object obj = new String(“hello”); 父类的引用指向子类的对象。 左边父类,右边子类。

  • 多态的好处:减少了大量的重载的方法的定义;开闭原则

    • 举例:public boolean equals(Object obj)
    • 多态,无处不在!讲了抽象类、接口以后,会有更好的理解。
  • 多态的使用:虚拟方法调用。“编译看左边,运行看右边”。属性,不存在多态性。

  • 多态的逆过程:向下转型,使用强转符()。

    • 为了避免出现强转时的ClassCastException,建议()之前使用instanceOf进行判断。

7. Object类的使用

  • 根父类
  • equals()的使用
    • 重写和不重写的区别
    • 面试题: == 和 equals()
  • toString()的使用
    • Object中toString()调用后,返回当前对象所属的类和地址值。
    • 开发中常常重写toString(),用于返回当前对象的属性信息。

8. 项目二:拼电商客户管理系统

  • 编写两个类:Customer 、 CustomerList类(封装了对数组的增删改查操作)

二、企业真题

2.1 继承性

1. 父类哪些成员可以被继承,属性可以被继承吗?可以或者不可以,请举下例子。(北京明**信)

父类的属性、方法可以被继承。构造器可以被子类调用。

2.2 重写

1. 什么是Override,与Overload的区别(顺*、软**力、明*数据、阳*科技、中*软)

2. Overload的方法是否可以改变返回值的类型?(新*陆)

public void method(int i){}

public int method(int j,int k){}

前面的返回值类型和重载没关系,愿意改就改,重载记住两同一不同。

3. 构造器Constructor是否可被override?(鸿*网络、深圳德**技、航**普)

不能!构造器可以重载

4. 为什么要有重载,我随便命名一个别的函数名不行吗?谈谈你是怎么理解的。(腾*)

为了见名知意。比如sort()方法,就是排序,所以如果有不同的要求,更改形参列表就行了。

2.3 super关键字

1. super和this的区别(蚂**服)

把两个关键字各自的特点说清楚。

2. this、super关键字分别代表什么?以及他们各自的使用场景和作用。(北京楚*龙)

2.4 多态

1. 谈谈你对多态的理解(三*重工、江*智能、银*数据、君*科技)
类似问法:
> Java中实现多态的机制是什么(国*电网)
> 什么是多态?(上*银行)
> Java中的多态是什么意思?(贝*)
- 广义上的理解:子类对象的多态性、方法的重写;方法的重载狭义上的理解:子类对象的多态性。- 格式:Object obj = new String("hello");   父类的引用指向子类的对象。   左边父类,右边子类。
- 多态的好处:减少了大量的重载的方法的定义;开闭原则- 举例:public boolean equals(Object obj)- 多态,无处不在!讲了抽象类、接口以后,会有更好的理解。
2. 多态new出来的对象跟不多态new出来的对象区别在哪?(万*智能)

Person p = new Man(); //虚方法调用。屏蔽了子类Man类特有的属性和方法。

Man m = new Man();

3. 说说你认为多态在代码中的体现(楚*龙)

无处不在!

2.5 Object类

1. ==与equals的区别(拓*思)
类似问法:
> 两个对象A和B,A==B,A.equals(B)有什么区别(华油**普)

2. 重写equals方法要注意什么?(安**网络科技)
  • 明确判定两个对象实体equals()的标准。是否需要所有的属性参与。
  • 对象的属性,又是自定义的类型,此属性也需要重写equals()
3. Java中所有类的父类是什么?他都有什么方法?(阿*校招)
相关问题:
> Object类有哪些方法?(恒*电子)

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

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

相关文章

k8s的部署管理以及prometheus相关监控

安装运行prometheus和grafana编辑prometheus配置文件,增加采集prometheus自身数据的采集规则grafana上导入prometheus相关图表的dashboard 前面三步主要根据https://blog.csdn.net/shnu_cdk/article/details/132182858?spm1001.2014.3001.5506 用Go编写一个prome…

C# 热键注册工具类

写在前面 介绍一个验证过的热键注册工具类,使用系统类库user32.dll中的RegisterHotkey函数来实现全局热键的注册。 代码实现 [Flags]public enum KeyModifiers{Alt 1,Control 2,Shift 4,Windows 8,NoRepeat 0x4000}public static class HotKeyHelper{[DllImp…

01、pytest:帮助你编写更好的程序

简介 ​pytest框架可以很容易地编写小型、可读的测试,并且可以扩展以支持应用程序和库的复杂功能测试。使用pytest至少需要安装Python3.7或PyPy3。PyPI包名称为pytest 一个快速的例子 content of test_sample.py def inc(x):return x1def test_ansewer():assert i…

OpenCV-Python:图像卷积操作

目录 1.图像卷积定义 2.图像卷积实现步骤 3.卷积函数 4.卷积知识考点 5.代码操作及演示 1.图像卷积定义 图像卷积是图像处理中的一种常用操作,主要用于图像的平滑、锐化、边缘检测等任务。它可以通过滑动一个卷积核(也称为滤波器)在图像…

MySQL之时间戳(DateTime和TimeStamp)

MySQL之时间戳(DateTime和TimeStamp) 文章目录: MySQL之时间戳(DateTime和TimeStamp)一、DateTime类型二、TimeStamp类型三、DateTime和TimeStamp的区别 当插入数据时,需要自动记录一个时间时候&#xff0c…

MT4下载常见问题解答:解决安装过程中的技术难题

MetaTrader 4(简称MT4)是全球广泛使用的外汇交易平台,它以强大的功能、用户友好的界面和高度定制性获得了众多金融交易者的青睐。然而,对于初次接触MT4的用户来说,下载和安装MT4软件可能会遇到一些技术难题。本文作为一位资深金融技术专家的分…

人工智能_机器学习059_非线性核函数_poly核函数_rbf核函数_以及linear核函数效果对比---人工智能工作笔记0099

人工智能_机器学习059_非线性核函数介绍---人工智能工作笔记0099 那么我们应该如何调整这个SVC的参数,也就是我们应该使用哪种核函数,比较合适呢?这取决于我们的数据,适合使用哪个核函数,正好我们有 提供的score = accuracy_score(y_test,y_pred) 这样的评分函数,我们可以根据…

ffmpeg 实现多视频轨录制到同一个文件

引言 在视频录制中,有时会碰到这样一个需求,将不同摄像头的画面写入到一个视频文件,这个叫法很多,有的厂家叫合流模式,有的叫多画面多流模式。无论如何,它们的实质都是在一个视频文件上实现多路不同分辨率视…

记录66666

为了在两台运行RHEL 8的服务器上配置PostgreSQL 14的主从架构,你需要按照以下步骤操作。这里,假设你有两台服务器,主服务器的IP为192.168.1.100,从服务器的IP为192.168.1.101。我们将设置数据目录为/data/,归档日志目录…

保护你的数据:深入了解安全测试!

安全测试是一种非功能性测试。与功能测试不同,功能测试关注的是软件的功能是否正常工作(软件做什么),非功能测试关注的是应用程序是否被正确设计和配置。 安全测试的主要目标: 识别资产-需要保护的东西,如…

STM32单片机项目实例:基于TouchGFX的智能手表设计(1)项目介绍及GUI界面基础

STM32单片机项目实例:基于TouchGFX的智能手表设计(1)项目介绍及GUI界面基础 一、项目介绍 1.1方案提供 1.2主控选择 1.3硬件平台 1.4 开发环境 1.5 关于华清 二、GUI界面基础 2.1.1 嵌入式绘图系统 2.1.1 色彩格式 2.1.1帧缓冲区 …

力扣374周赛

力扣第374场周赛 找出峰值 模拟 class Solution { public:vector<int> findPeaks(vector<int>& mountain) {vector<int>ans;for(int i 1 ; i < mountain.size() - 1; i ){if(mountain[i] > mountain[i-1] && mountain[i] > mountai…

CleanMyMac X2024最新免费Mac中文版安装包下载

CleanMyMac X for Mac中文2024版只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉&#xff0c;节省宝贵的磁盘空间。cleanmymac x个人认为X代表界面上的最大升级&#xff0c;功能方面有更多增加&#xff0c;与最新macOS系统更加兼容&#xff0c;流畅地与系统性…

【Vulnhub 靶场】【Prime (2021): 2】【简单 - 中等】【20210509】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/prime-2021-2,696/ 靶场下载&#xff1a;https://download.vulnhub.com/prime-2021/Prime-2.ova 靶场难度&#xff1a;简单 - 中等 发布日期&#xff1a;2021年5月9日 文件大小&#xff1a;3.7 GB 靶场作者&am…

Json.NET 单个对象Json字符串反序列成两个不同实体对象

本文主要介绍Newtonsoft.JSON(Json.NET)中&#xff0c;将一个对象的Json字符串反序化成两个不同的实体对象的方法代码。具体效果如下&#xff1a; Json字符串&#xff1a; [{"guardian_id": "1453","guardian_name": "Foo Bar",&quo…

能源企业管理ERP系统都有哪些?可以帮助企业解决哪些难点

能源企业在不同的发展阶段面对的经营压力以及遇到的管理问题各异&#xff0c;随着部分产品结构的复杂化&#xff0c;日常经营管理工作也愈加繁琐。 有些能源企业内部存在信息传递不畅、经营数据统计不及时、部门协作效率低、多仓库和多平台数据不统一等情况&#xff0c;而这些…

GPT3年终总结

User You 程序员年度绩效总结 ChatGPT ChatGPT 程序员年度绩效总结通常包括以下几个方面&#xff1a; 目标达成情况&#xff1a; 回顾年初设定的目标&#xff0c;评估在项目完成、技能提升等方面的达成情况。 工作贡献&#xff1a; 强调在项目中的个人贡献&#xff0c;包括…

Flask 快速入门

引言 Flask 是一个轻量级的Web框架&#xff0c;以简洁和灵活而著称。它提供了构建Web应用所需的基本工具&#xff0c;同时保持了足够的可扩展性&#xff0c;使其成为初学者和有经验的开发人员的首选。本系列专栏将带领大家逐步深入学习 Flask&#xff0c;从最基础的概念开始&a…

RH850P1X芯片学习笔记-Overview

文章目录 Outline产品列表功能框图特点Pin和引脚功能CPU系统CPUFPU浮点运算单元中断处理保护机制指令缓存Local RAMGlobal RAM处理器间通信和相互排斥机制 操作模式中断功能DMA电源供电Reset控制单元时钟控制单元CSIH-SPIMCAN看门狗计时器系统计时器GTM通用定时器模块外设互联P…

openCV在Visual Studio2019下的集成使用

文章目录 下载OpenCV工具选择合适库文件使用visual studio创建空项目测试运行运行结果 下载OpenCV工具 官网下载实在太慢&#xff0c;还老实下不下来。下面从网上找到些别人分享的一些版本&#xff08;从3.4到4.7&#xff09;放到了网盘里&#xff0c;请按需下载使用。 链接&a…