聊一聊基础

基础

1、面向对象编程是什么?

面向对象编程在解决问题的时候,会先抽象出对象,再使用对象去解决问题。

面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。

面向对象编程有三大特性,继承、封装、多态 使得面向对象编程更易于维护、复用、扩展

2、分别说说

封装:先来说说封装,封装是指对象里面的一些属性或方法,我们是不希望外界去访问的,比如定义私有属性或方法,从而达到一个与外界隔离的效果,或者是限制外界的访问,我们可以通过设置set方法或get方法,来对外界的访问加以限制

继承:在 Java 中,子类通过 extends 关键字继承父类,继承父类的所有属性和方法,当然父类的私有属性只是拥有;

子类还可以有自己的属性和方法,也就是子类可以有自己的拓展

另外子类还可以对父类方法进行重写。

多态

多态,顾名思义,表示一个对象具有多种的状态,具体表现为父类的引用指向子类的实例。

如果子类重写了父类的方法,那么执行的是子类重写之后的方法。如果子类没有重写父类的方法,那么执行的是父类的方法

3、权限修饰符

private : 同类才可以访问

default : 同包类可以访问

protected : 同包类可以访问,不同包中的子类可以访问

public : 都可以访问

4、接口和抽象类的区别

共同点

  • 都不能被实例化。
  • 都可以包含抽象方法。
  • 都可以有默认实现的方法(Java 8 可以用 default 关键字在接口中定义默认方法)。

区别

  • 接口主要用于对类的行为进行约束,你实现了某个接口就具有了对应的行为。抽象类主要用于代码复用,强调的是所属关系。
  • 一个类只能继承一个类,但是可以实现多个接口。
  • 接口中的成员变量只能是 public static final 类型的,不能被修改且必须有初始值,而抽象类的成员变量默认 default,可在子类中被重新定义,也可被重新赋值

5、Object 类的常见方法

/*** native 方法,用于返回当前运行时对象的 Class 对象,使用了 final 关键字修饰,故不允许子类重写。*/
public final native Class<?> getClass()
/*** native 方法,用于返回对象的哈希码,主要使用在哈希表中,比如 JDK 中的HashMap。*/
public native int hashCode()
/*** 用于比较 2 个对象的内存地址是否相等,String 类对该方法进行了重写以用于比较字符串的值是否相等。*/
public boolean equals(Object obj)
/*** native 方法,用于创建并返回当前对象的一份拷贝。*/
protected native Object clone() throws CloneNotSupportedException
/*** 返回类的名字实例的哈希码的 16 进制的字符串。建议 Object 所有的子类都重写这个方法。*/
public String toString()
/*** native 方法,并且不能重写。唤醒一个在此对象监视器上等待的线程(监视器相当于就是锁的概念)。如果有多个线程在等待只会任意唤醒一个。*/
public final native void notify()
/*** native 方法,并且不能重写。跟 notify 一样,唯一的区别就是会唤醒在此对象监视器上等待的所有线程,而不是一个线程。*/
public final native void notifyAll()
/*** native方法,并且不能重写。暂停线程的执行。注意:sleep 方法没有释放锁,而 wait 方法释放了锁 ,timeout 是等待时间。*/
public final native void wait(long timeout) throws InterruptedException
/*** 多了 nanos 参数,这个参数表示额外时间(以纳秒为单位,范围是 0-999999)。 所以超时的时间还需要加上 nanos 纳秒。。*/
public final void wait(long timeout, int nanos) throws InterruptedException
/*** 跟之前的2个wait方法一样,只不过该方法一直等待,没有超时时间这个概念*/
public final void wait() throws InterruptedException
/*** 实例被垃圾回收器回收的时候触发的操作*/
protected void finalize() throws Throwable { }

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

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

相关文章

containerd管理命令ctr常用操作 —— 筑梦之路

Containerd ctr、crictl、nerdctl客户端命令——筑梦之路_crictl login-CSDN博客 镜像常用操作 1. 拉取镜像 ctr images pull docker.io/library/nginx:alpine 注意&#xff1a;containerd支持oci标准的镜像&#xff0c;所以可以直接使用docker官方或dockerfile构建的镜像 需…

RabbitMQ--04--Spring Cloud Stream(消息驱动)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.Spring Cloud Stream1. 基本介绍https://spring.io/projects/spring-cloud-stream#overview 2.Spring Cloud Stream 解决的痛点问题3.设计思想Stream为什么可以统…

2024网络安全-自学笔记

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防…

新火种AI|国产手机抢滩“AI+折叠屏”赛道,行业洗牌大战就此开启?

作者&#xff1a;小岩 编辑&#xff1a;彩云 从2023年到2024年&#xff0c;随着新一波人工智能浪潮的加速&#xff0c;消费电子产品也迎来了全新的话题——AI。更重要的是&#xff0c;这场战争看似没有硝烟&#xff0c;但各大厂商都已经暗自角力了许久&#xff0c;特别是手机…

Java二阶知识点总结(八)Linux和Docker

Linux 1、常用命令&#xff1a; cat&#xff1a;查看文件内容cd&#xff1a;切换目录ifconfig或ip addr&#xff1a;用于查看网络接口的地址和参数pwd&#xff1a;显示当前目录的绝对路径ls/ll&#xff1a;查看当前目录下的所有文件touch&#xff1a;创建文件mkdir&#xff1…

Windows 11 鼠标右键可选择 cmd 命令行选项

** Windows 11 鼠标右键可选择 cmd 命令行选项 ** 在文件夹内打开命令行&#xff0c;只能使用 Windows 自带的 PowerShell &#xff0c; 作为一个 cmd 重度使用用户来说很是折磨&#xff0c;需要打开 cmd 然后切换盘符再 cd 。。。 现在咱们自己创建一个可以打开 cmd 的方法…

Qt调用内置图标

int IconIndex0; QIcon icon QApplication::style()->standardIcon((QStyle::StandardPixmap)IconIndex);按以上代码可以调用Qt内置的71个图标&#xff0c;只要变换IconIndex就可以了&#xff0c;IconIndex为[0,70]。显示如下&#xff1a;图标index名称。

图论中的最小生成树:Kruskal与Prim算法深入解析

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;アンビバレント—Uru 0:24━━━━━━️&#x1f49f;──────── 4:02 &#x1f504; ◀️ ⏸ ▶️ ☰ …

游戏客户端-面经

做一道题&#xff1a;一副牌&#xff0c;能不能全凑成顺子和同花对C是什么级别的认知。内联函数可不可以是虚函数New和malloc有什么区别多态有几种静态多态是什么&#xff0c;动态多态是什么&#xff1f;什么是拷贝构造函数什么情况下要自己写拷贝构造函数什么是移动构造函数深…

Meta分析:如何为生态环境领域提供可靠结论

Meta分析&#xff0c;又称元分析&#xff0c;是一种统计方法&#xff0c;用于整合多个独立研究的结果&#xff0c;从而得出更为全面、可靠的结论。在生态领域&#xff0c;Meta分析发挥着越来越重要的作用&#xff0c;它有助于解决单个研究样本量小、结果不一致等问题&#xff0…

西井科技与安通控股签署战略合作协议 共创大物流全新生态

2024年3月21日&#xff0c;西井科技与安通控股在“上海硅巷”新象限空间正式签署战略合作框架协议。双方基于此前在集装箱物流的成功实践与资源优势&#xff0c;积极拓展在AI数字化产品、新能源自动驾驶解决方案和多场景应用&#xff0c;以及绿色物流链等领域的深度探索、强强联…

洛克王国卡小游戏2

kaijiang1.setBackground(Color.WHITE);/*去除按钮背景kaijiang1.setContentAreaFilled(false);*///添加到界面getContentPane().add(kaijiang1);}private void extracted1() {JLabel beijin new JLabel(new ImageIcon("D:\\bc2\\kaixinge\\wendang\\2266.png"));be…

视频号下载助手失效了?如何解决下载视频问题!

在刷短视频的时候难免会遇到部分的视频号视频下载不下来&#xff0c;那我们该如何解决视频号下载问题呢&#xff1f; 视频号下载助手解决方案 视频号下载助手失效分为两种情况! 1、可以解析&#xff0c;但不能下载 根据使用视频号下载助手常见的问题&#xff0c;我们发现会有…

MATLAB/Simulink 学习路径

chhttty个人博客总目录 参见

Linux本地部署TeslaMate结合内网穿透实现公网访问内网车辆信息

文章目录 1. Docker部署TeslaMate2. 本地访问TeslaMate3. Linux安装Cpolar4. 配置TeslaMate公网地址5. 远程访问TeslaMate6. 固定TeslaMate公网地址7. 固定地址访问TeslaMate TeslaMate是一个开源软件&#xff0c;可以通过连接特斯拉账号&#xff0c;记录行驶历史&#xff0c;统…

编程参考 - stdint.h头文件的使用

在嵌入式系统软件开发上&#xff0c;对不同的平台&#xff0c;其每个机器字长都可能不同。在这个硬件平台上使用int&#xff0c;可能是4个字节&#xff0c;你做一个很大整数的运算也没问题。 但换个硬件平台&#xff0c;int可能变成了2个字节&#xff0c;那你运行一个大整数运…

代码随想录算法训练营第30天|332.重新安排行程 |51. N皇后 |37. 解数独

代码随想录算法训练营第30天|332.重新安排行程 |51. N皇后 |37. 解数独 今天这三道题都非常难&#xff0c;那么这么难的题&#xff0c;为啥一天做三道&#xff1f; 因为 一刷 也不求大家能把这么难的问题解决&#xff0c;所以 大家一刷的时候&#xff0c;就了解一下题目的要求…

【Flask开发实战】学习web和url开发基础

Web&#xff08;World Wide Web&#xff09;是一种全球性的信息系统&#xff0c;它通过互联网连接了世界各地的计算机和网络&#xff0c;使用户能够访问和共享各种资源&#xff0c;如网页、图像、视频等。URL&#xff08;Uniform Resource Locator&#xff09;则是一种用于标识…

YOLOv3学习

YOLOv3仅使用卷积层&#xff0c;使其成为一个全卷积网络&#xff08;FCN&#xff09;。文章中&#xff0c;作者提出一个新的特征提取网络&#xff0c;Darknet-53。正如其名&#xff0c;它包含53个卷积层&#xff0c;每个后面跟随着batch normalization层和leaky ReLU层。没有池…

【网络原理】HTTP 请求 (Request)详解

文章目录 &#x1f38d;请求格式&#x1f384;认识URL&#x1f338;query string&#x1f338;关于 URL encode &#x1f340;认识 “方法” (method)&#x1f338;GET方法&#x1f338;POST 方法&#x1f338;GET 和 POST 的区别 &#x1f332;认识请求 “报头” (header)&…