JAVA学习-类和接口.类和面向对象

一、Java中的类和接口是面向对象编程的重要概念。

1. 类是一种模板或蓝图,用于创建具有相同属性和行为的对象。类定义了对象的属性(成员变量)和行为(方法)。在程序中,可以通过实例化类来创建对象,并使用对象访问类中定义的属性和方法。

2. 接口是一种抽象类型,定义了一组方法的规范,而不包含实现。接口可以被类实现(`implements`),一个类可以实现多个接口。实现接口的类必须实现接口中定义的所有方法。接口可以用于实现多态性,通过接口可以实现一个类对多个接口的实现。

二、Java中常见的类有:

- String类:用于处理字符串相关的操作。

- Scanner类:用于读取用户输入。

- Math类:提供了各种数学运算方法。

三、Java中常见的接口有:

- Comparable接口:用于实现对象的可比较性,定义了'compareTo()'方法。

- Runnable接口:用于实现多线程,定义了'run()'方法。

- ActionListener接口:用于处理用户界面的事件,定义了'actionPerformed()'方法。

四、类和面向对象的特点和使用方法如下:

- 封装(Encapsulation):将数据和操作封装在类中,隐藏了内部的实现细节,提供对外的接口进行访问。

- 继承(Inheritance):通过继承,一个类可以从另一个类中获取属性和方法,实现代码的重用和扩展。

- 多态性(Polymorphism):可以使用父类类型的引用指向子类的对象,实现统一的调用接口,提高灵活性和可拓展性。

五、与其他编程方式相比,面向对象编程的优势包括:

- 提高代码的重用性和可维护性。

- 提供了更自然的表达方式,更接近人类思维。

- 支持封装和信息隐蔽,提高代码的安全性和可靠性。

下面是一个示例代码,演示了类和接口的使用:

class Animal {String name;public Animal(String name) {this.name = name;}public void speak() {System.out.println("Animal speaks");}}interface Jumpable {void jump();}class Dog extends Animal implements Jumpable {public Dog(String name) {super(name);}@Overridepublic void speak() {System.out.println("Dog barks");}@Overridepublic void jump() {System.out.println("Dog jumps");}}public class ClassInterfaceExample {public static void main(String[] args) {Animal animal = new Animal("Animal");animal.speak();Dog dog = new Dog("Dog");dog.speak();dog.jump();}}

以上代码定义了一个 'Animal' 类和一个 'Jumpable' 接口。'Animal' 类有一个属性 'name' 和一个方法 'speak()'。'Dog' 类继承自 'Animal' 类,并实现了 'Jumpable' 接口。'Dog' 类重写了 'speak()' 方法和 'jump()' 方法。在 'main' 方法中创建了一个 'Animal' 对象和一个 'Dog' 对象,分别调用了它们的方法。

运行程序,可以得到以下输出:

Animal speaksDog barksDog jumps

程序输出了 'Animal' 和 'Dog' 对象的方法执行结果。

(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

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

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

相关文章

Odoo迈入开源第一低代码开发平台的重要里程碑

Odoo17的正式发布已经过去好几个月了,通过一段时间的运用,最大的感触就是,Odoo会成为企业管理软件低代码开发平台的重要一员,而V17则会成为这个过程中具有里程碑意义的版本。 时隔四个月,让我们回头来看看Odoo17带来的…

基YOLOV5实现的AI智能盒子

基于yolov5实现的AI智能盒子框架 开发背景技术实现产品效果源码预览功能介绍 2021-2023是沉淀的几年,经济不景气,各行各业都不太好混,所以这几年也没有太多心思花在csdn上为各大网友写一些技术文章,2024年初,也算是给自…

光栅化算法

多数计算机图形图像,是通过光栅显像显示给用户的,这种系统将图像作为像素阵列进行显示,像素(pixel)即图像元素(picture element)的简称。这些像素采用RGB颜色空间。本文讨论光栅显像的基本原理&…

蓝牙耳机哪个好用性价比高?2024热销蓝牙耳机大测评!选购不焦虑

​近年来,蓝牙耳机已经成为了一个非常热门的选择,不仅因为它们小巧便捷,还因为它们的防水性能、音质和佩戴体验已经逐渐超越了有线耳机。随着越来越多的品牌加入蓝牙耳机的市场竞争,各种类型的蓝牙耳机层出不穷。特别是对于运动爱…

2024年全国乙卷高考理科数学备考:十年选择题真题和解析

今天距离2024年高考还有三个多月的时间,今天我们来看一下2014~2023年全国乙卷高考理科数学的选择题,从过去十年的真题中随机抽取5道题,并且提供解析。后附六分成长独家制作的在线练习集,科学、高效地反复刷这些真题,吃…

GEE数据集——GLC_FCS30D - 全球 30 米土地覆被变化数据集(1985-2022 年)

GLC_FCS30D - 全球 30 米土地覆被变化数据集(1985-2022 年) 注 本数据集是正在提交的论文的一部分,因此没有引用和 DOI 信息。请在使用本数据集时注意这一点。 GLC_FCS30D 数据集是全球土地覆被监测领域的一项开创性进展,它以 30…

SpringBoot 整合WebService

文章目录 WebService1.简单介绍WebService1.1. 类型1.2. 架构1.3. 主要特点1.4. 使用场景1.5. Web服务标准和技术 2.案例-WebServiceDemo2.1.引入配置文件2.2.创建接口2.3.创建接口实现类2.4.创建WebService配置类2.5.测试 WebService Web服务(Web Services&#xf…

2024年腾讯云优惠券/代金券领取三个方法整理(收藏级)

腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

CentOS系统上安装幻兽帕鲁/Palworld服务端的详细步骤是什么?

CentOS系统上安装幻兽帕鲁/Palworld服务端的详细步骤是什么? 首先,需要确认Docker是否已经安装。如果未安装,则需要进行安装。接下来,运行Docker容器。这一步是为了创建一个可以运行幻兽帕鲁服务端的环境。然后,在容器…

民爆5G智能制造工厂数字孪生可视化平台,推进民爆工业数字化转型

民爆5G工厂智能制造数字孪生可视化平台,推进行业数字化转型。民爆行业作为国家经济发展的重要支柱产业,其数字化转型对于提高生产效率、降低成本、保障安全等方面具有重要意义。而民爆5G工厂智能制造数字孪生可视化平台正是推进行业数字化转型的关键技术…

Flutter中Future和Stream关系

Future和Stream类是Dart异步编程的核心。 Future 表示一个不会立即完成的计算过程。与普通函数直接返回结果不同的是异步函数返回一个将会包含结果的 Future。该 Future 会在结果准备好时通知调用者。 Stream 是一系列异步事件的序列。其类似于一个异步的 Iterable,…

AutoEncoder和 Denoising AutoEncoder学习笔记

参考: 【1】 https://lilianweng.github.io/posts/2018-08-12-vae/ 写在前面: 只是直觉上的认识,并没有数学推导。后面会写一篇(抄)大一统文章(概率角度理解为什么AE要选择MSE Loss) TOC 1 Au…

1907_Arm Cortex-M3的基本了解

1907_Arm Cortex-M3的基本了解 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) 我发现Arm Coretex-M3有一个专门的DataSheet,看起来这个的确是被当做了一个设计的产品来对待的。正好,基于这个文件来看看M3具备哪些基本的特性&…

GO—变量

Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。 我们从计算机系统的角度来讲,变量就是一段或者多段内存,用于存储数据 1.1 标准格式 var 变量名 变量类型 1 …

vue 使用vue-scroller 列表滑动到底部加载更多数据

安装插件 npm install vue-scroller -dmain.js import VueScroller from vue-scroller Vue.use(VueScroller)<template><div class"wrap"><div class"footer"><div class"btn" click"open true">新增</d…

多层控制上身姿态的方法

1选择要施加的clip并调出层控制窗口 2点选motion层控制 3选择并复制pose&#xff08;注意在哪个层中选中的情况下复制的是那个层中的pose&#xff09; 4在新建层中分别选择头帧粘贴pose和尾帧粘贴pose因是上半身&#xff0c;因此mask中把下半身去掉即变灰

提升工作能力的方法

1.接受工作&#xff0c;只问标准 2.请示工作&#xff0c;必带方案&#xff1b; 3.汇报工作&#xff0c;突出成果&#xff1b; 4.分享工作&#xff0c;细说流程&#xff1b; 5.复盘工作&#xff0c;总结SOP 如果能这么做&#xff0c;那将是一个非常通透的高手&#xff0c;所以高…

如何使用 takeUntil RxJS 操作符来声明性地管理订阅

简介 Angular 处理取消订阅可观察对象的操作&#xff0c;比如从 HTTP 服务返回的可观察对象或者使用 async 管道时。然而&#xff0c;对于其他情况&#xff0c;管理所有订阅并确保取消长期存在的订阅可能会变得困难。而且&#xff0c;取消大部分订阅的策略也会带来自己的问题。…

2024年春招小红书前端实习面试题分享

文章目录 导文面试重点一、方便介绍一下&#xff0c;你之前实习都做了什么嘛&#xff1f;二、 可以讲一下封装组件相关逻辑嘛&#xff1f;1. 为什么要封装组件&#xff1f;2. 封装组件的步骤3. 封装组件的原则4. 组件的复用和扩展5. 组件的维护和文档 三、项目的性能优化你有什…

python数据结构学习系列

在Python编程中&#xff0c;数据结构是组织、管理和存储数据的方式&#xff0c;以便能够有效地执行特定的操作。数据结构的选择对于算法的效率、代码的清晰度和可维护性都至关重要。以下是对Python中常见数据结构的学习总结。 列表&#xff08;List&#xff09; 列表是Python中…