面向对象查漏补缺3

news/2024/4/25 10:13:02/文章来源:https://blog.csdn.net/qq_53318060/article/details/129249123

抽象类

// 类前面加个abstract关键字就可以
// 抽象类不能new实例化// 抽象类中可以没有抽象方法
// 抽象方法必须放在抽象类中// 抽象类的子类必须实现父类的抽象方法
// abstract不能跟private,static,final搭配

接口

属性必须是public static final(默认也是这样)
方法:
jdk8之前只能声明抽象方法(public abstract)(默认也是这样)
jdk8:static方法,default方法
jdk9:private方法
interface People {void say();
}
interface Animal {void run();
}// 接口可以多继承
interface KKK extends People,Animal{
}
// 实现多个
class FFF implements People,Animal{@Overridepublic void say() {}@Overridepublic void run() {}
}
// 接口匿名实现类的对象
People p = new People() {@Overridepublic void say() {System.out.println("say....");}
};
People s = () -> System.out.println("say....");

抽象类更适合是一种模板,接口是一种能力

class Test{public static void main(String[] args) {Man m = new Man();People.kkk(); // 接口中的static方法只能由接口来调//Man.kkk();//m.kkk(); // error,实现类不能调接口的static方法System.out.println(Man.a + m.a + People.a);// 接口中的属性都可以调// default方法可以被重写m.say(); // default方法只能由实现类对象来调用// 类实现了两个接口,两个接口中定义了同名同参数的default方法// 此时必须进行重写,不然报错// 父类和接口中定义了同名同参数的方法// 子类在调用时,使用的是父类中的}
}class Man implements People{@Overridepublic void say() {System.out.println("lll");}public void fff(){People.super.say(); // 在实现类中调用接口中的default方法}
}
interface People {int a = 2;default void say(){kkk(); // 可以使用静态结构System.out.println(a);}static void kkk(){//say();// error,static方法中不能使用non-static结构sss();}private static void sss(){}
}

内部类

// 在class的內部定义一个class
成员内部类:(static和非static)可以使用四种权限修饰符
局部内部类:声明在(方法内,构造器内,代码块内)(匿名的和非匿名的)
class Test{public static void main(String[] args) {// 创建static成员内部类Man.Female female = new Man.Female();// 创建non-static成员内部类Man man = new Man(); // 要先创建外部类实例Man.Male male = man.new Male();}
}
class Man{String name;// non-static 成员内部类class Male{String name;public void show(String name){System.out.println(name);// 指形参System.out.println(this.name);// 指内部类中的System.out.println(Man.this.name);// 指Man类中的}}// static 成员内部类static class Female{}public Comparable ddd(){// 局部内部类class MC implements Comparable{@Overridepublic int compareTo(Object o) {return 0;}}return new MC();}
}

枚举

// 类的实例是确定个数的
class People{public static void main(String[] args) {// enum 继承了Enum类,所以有一些方法可以使用// 得到所有实例对象for (Season value : Season.values()) {value.show();}}
}
interface XC{void show();
}
enum Season implements XC{// 类的对象是固定的,不能在外面创建对象// 必须在开头声明对象,用逗号隔开,类型都是 public static final Season,()代表创建对象时传的参数// public static final Season ppp = new Season("夏");SPRING("春"){// 这时SPRING其实是Season的一个匿名子类的对象int a = 2;@Overridepublic void show() {super.show();}},SUMMER("夏");String description;// 构造器默认就是privateSeason(String description){this.description = description;}// 这里也可以写方法public void sss(){}// 实现接口中的方法@Overridepublic void show() {System.out.println("重写" + description);}
}

包装类

// 8种基本数据类型都有其包装类
// Byte,Short,Integer,Long,Float,Double 他们的父类是Number
// Character, Boolean
// (装箱)基本数据类型 ---> 包装类
int i1 = 10;
Integer in1 = Integer.valueOf(i1);
float f1 = 12.3F;
Float fl1 = Float.valueOf(f1);
// (拆箱)包装类 ---> 基本数据类型
int i = in1.intValue();
float v = fl1.floatValue();
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);// false// 自动装箱(底层调用valueOf方法)
// 维护一个[-128-127]的Integer数组,数值在这个范围内的会直接从数组中取,并不会新建对象
// 除了Float和Double,其他都有维护的数组
Integer m = 1;
Integer n = 1;
System.out.println(m == n);// trueInteger x = 128;
Integer y = 128;
System.out.println(x == y);// false// int无法转换为Double,因为涉及到先升级再装箱,[拆装箱]一定要在[升降级]前面
// Integer无法转换为Double,因为要先拆箱再升级再装箱,涉及3步操作,不符合上述规律
//Double h = 1;//error
Double h = 1d;

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

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

相关文章

SkyWalking简介和安装

APM系统 早期的监控系统功能比较单一,主要以监控CPU、内存、网络、I/O等基础设置为主(cacti、nagios) 后来随着中间件技术的不断发展,监控系统也开始监控缓存、数据库、MQ等各种基础组件的性能(zabbix、prommethus&a…

【MinIO】文件断点续传和分块合并

【MinIO】文件断点续传和分块合并 文章目录【MinIO】文件断点续传和分块合并0. 准备工作1. 检查文件是否存在1.1 定义接口1.2 编写实现方法2. 检查分块文件是否存在2.1 定义接口2.2 编写实现方法3. 上传分块文件接口3.1 定义接口3.2 编写实现方法4. 合并分块文件接口4.1 定义接…

Python - Opencv应用实例之CT图像检测边缘和内部缺陷

Python - Opencv应用实例之CT图像检测边缘和内部缺陷 将传统图像处理处理算法应用于CT图像的边缘检测和缺陷检测,想要实现效果如下: 关于图像处理算法,主要涉及的有:灰度、阈值化、边缘或角点等特征提取、灰度相似度变换,主要偏向于一些2D的几何变换、涉及图像矩阵的一些统…

java中使用protobuf总结

基本没怎么接触过java编程,别的团队发过来一个用java编写的存储pb的文件,让拆分和解析,硬着头皮做一下,在此将步骤做个记录:下载安装protobufhttps://github.com/protocolbuffers/protobuf/tags?afterv3.6.1.2编译pro…

AI/CV大厂笔试LeetCode高频考题之基础核心知识点

AI/CV互联网大厂笔试LeetCode高频考题之基础核心知识点算法复习1、二叉树的遍历2、回溯算法3、二分搜索4、滑动窗口算法题5、经典动态规划6、动态规划答疑篇6.1、总结一下如何找到动态规划的状态转移关系7、编辑距离8、戳气球问题9、最长公共子序列 Longest Common Subsequence…

系统性能测试指标

性能测试的目的 1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。 2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄…

兴达易控Modbus转Profinet网关将丹佛斯变频器接入西门子1200PLC配置案例

案例简介: 本案例是兴达易控Modbus转Profinet网关连接丹佛斯变频器在西门子1200PLC程序控制实例,实现对变频器频率读写,及工作模式切换。 用到的设备为西门子1200PLC一台,丹佛斯变频器一台,兴达易控Modbus转Profinet网关一个 Modb…

OSPF -- (开放式最短路径优先协议)(公共协议)

OSPF -- (开放式最短路径优先协议)(公共协议) 1、属性:无类别链路状态IGP协议 无类别:更新携带精确掩码 链路状态:共享拓扑(共享LSA)本地计算路由IGP: 基于…

读取/etc/profile时发现错误:

读取/etc/profile时发现错误: /etc/profile:行XX:***************** /etc/profile:行XX:***************** 今天遇到这个错误,发现是首行被我编辑时删错了一个符号导致报错,导致每次开机都会报这个文件错误&#xff0…

SpringBoot解决跨域方式

跨域是指在 Web 应用中,一个服务器资源或应用访问另一个服务器资源或应用的资源时候。由于浏览器的同源策略,一般情况下同一个域中的网站或应用可以互相访问资源,但跨域访问会被浏览器拒绝。浏览器出于安全考虑,会限制跨域访问&am…

Jmeter性能测试 入门

Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。 我将会覆盖Jmeter的各个功能…

亿发软件:钉钉移动ERP业务在线,审批、管理更方便!

钉钉系统是企业级智能移动办公平台,平台覆盖大中小微各量级企业,帮助中国企业移动办公管理。企业无需复杂的部署操作,在对应的功能制定流程和相关负责人即可。 亿发企业ERP管理系统于2022年与钉钉系统做了对接,提供一站式的企业管…

大数据系统重点

第一章 大数据计算系统概述 1 大数据计算框架概述 计算框架: 一种抽象,在其中提供相应的通用功能供用户编写代码以实现具体功能,从而形成面向应用的软件。 大数据计算框架:面向大数据的计算框架。 Hadoop Hadoop的运行过程 Hadoop的详细…

腾讯云轻量应用服务器和云服务器CVM有什么区别?

腾讯云新推出的轻量应用服务器Lighthouse和原来的CVM云服务器有什么区别?轻量应用服务器Lighthouse是一种易于使用和管理、适合承载轻量级业务负载的云服务器,主要用于Web网站应用,轻量服务器使用及后期运维更加简单方便;云服务器…

【数据结构(四)】树

文章目录树1 树的基本概念1.1 树的定义1.2 基本术语1.3 数的性质2 二叉树的概念2.1 二叉树的定义与特性2.1.1 定义2.1.2 二叉树的性质2.2 几种特殊的二叉树2.2.1 满二叉树2.2.2 完全二叉树2.3 二叉树的存储结构2.3.1 顺序存储2.3.2 链式存储3 二叉树的遍历和线索二叉树3.1 二叉…

敏捷-期末

什么是敏捷开发? 敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。 怎么理解呢?它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开…

二叉树路径查找

题目描述:给定一棵二叉树(结构如下),其中每个节点值为整数。给定一个值 K,求所有满足如下条件的路径并将路径上节点的值打印出来: 1、路径方向必须向下,即只能从父节点指向子节点 2、路径并不是必须从根节点开始或在叶…

一起玩转开源数据库!OceanBase DevCon 之开源生态全景解析

​ 2023 年 3 月 25 日,首次 OceanBase 开发者大会将在北京举办,OceanBase 首席科学家阳振坤与 OceanBase CTO 杨传辉领携众多技术专家,将与开发者共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势,OceanBase 开源技术全景生…

【安卓】安卓设备实现wifi display解决方案

看文章前,我们需要知道的几个概念: 1、Wifi Direct技术; 2、Wifi Display技术; 3、Miracast标准; 安卓手机用户都知道我们的安卓手机有一个wifi直连功能,在点击设置–》WIFI–》更多Wifi设置–》Wifi直连&a…

【Linux】操作系统与Linux — Linux概述、组成及目录结构

目录 一、什么是操作系统?都有那些? 二、Linux概述 三、Linux组成 三、Linux目录结构 四、Linux目录结构 💟 创作不易,不妨点赞💚评论❤️收藏💙一下 一、什么是操作系统?都有那些&#x…