深入理解Java的面向对象编程

1. 什么是面向对象编程(OOP)?

面向对象编程是一种编程范式,它将程序中的数据与操作数据的方法组织为对象。每个对象都可以接收消息、处理数据以及发送消息给其他对象。在Java中,每个对象都是一个类的实例。

2. 核心概念

2.1 类和对象

类(Class):类是定义对象的蓝图或模板。它描述了对象的属性和方法。

public class Person {private String name; // 名字private int age; // 年龄// 空参构造public Person() {}// 有参构造public Person(String name, int age) {this.name = name;this.age = age;}
}

对象(Object):对象是类的实例,它具体化了类的描述,可以操作和访问对象的属性和方法。

    public static void main(String[] args) {// 创建Person 实例对象Person person = new Person();person.setName("张三");person.setAge(30);}

2.2 封装(Encapsulation)

封装是面向对象编程的核心原则之一,它将数据和方法结合在一起,隐藏了对象的具体实现细节,仅向外部提供公共的访问方式。

public class Person {private String name; // 名字private int age; // 年龄// 空参构造public Person() {}// 有参构造public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void sayHello() {System.out.println("你好 人类");}
}

2.3 继承(Inheritance)

继承允许一个类(子类)基于另一个类(父类)来扩展其属性和方法。子类继承了父类的特征,并可以添加新的特性。

public class Student extends Person{@Overridepublic void sayHello() {System.out.println("你好 同学");}
}

2.4 多态(Polymorphism)

多态允许同一个方法在不同的对象上表现出不同的行为。它通过方法重写(Override)和方法重载(Overload)实现。

public class Main {public static void main(String[] args) {Person person = new Student();person.sayHello(); // 调用Student类中的sayHello方法}
}

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

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

相关文章

保障信息资产:ISO 27001信息安全管理体系的重要性

在当今数字化和全球化的时代,信息安全已经成为企业成功和持续发展的关键因素之一。随着信息技术的快速发展和互联网的普及,企业面临着越来越多的信息安全威胁和挑战,如数据泄露、网络攻击、恶意软件等。为了有效应对这些威胁,企业…

智能升级,监控无界——全新安全生产生态算法一体机上线

安全生产生态算法一体机 安全生产生态算法一体机是万物纵横推出的一款AI算法软硬一体生态产品,重点面向安全生产领域,采用BM1684强劲AI芯片,内置安全生产场景所需的多种专用AI算法,面向各场景的人员监控、规范作业、异常检测等应…

实现ubuntu的任务计划反弹shell

1.实验目的 使用Ubuntu定时任务反弹shell 2实验环境 ubuntu:ip地址:192.168.80.133 kali:ip地址:192.168.80.134 3.编写crontab计划任务 在ubuntu的系统中使用crontab -e命令编写计划任务 作用:是将一个交互式的…

Mysql 左关联(LEFT JOIN)

在左关联(LEFT JOIN)操作中,关于大表和小表的连接顺序,通常建议将小表放在前面,大表放在后面。这种安排方式有助于提高查询效率,原因如下: 扫描效率:在SQL查询中,尤其是…

Java 乐观锁与悲观锁

1. 前言 本节内容主要是对 Java 乐观锁与悲观锁进行更加深入的讲解,本节内容更加偏重于对乐观锁的讲解,因为 synchronized 悲观锁对于大部分学习者并不陌生,本节主要内容如下: 乐观锁与悲观锁的概念,之前有所讲解,这里用很小的篇幅进行知识的回顾,巩固;乐观锁与悲观锁…

Vue +Echarts 二维数组获取最大值和最小值以及索引

实现图例效果 获取最大值方法&#xff1a; maxSecond(array) {let max Number.MIN_SAFE_INTEGER;for (let i 0; i < array.length; i) {const secondElement parseInt(array[i][1]);if (secondElement > max) {max secondElement;}}return max;}, 获取最大值索引&…

【高性能服务器】select模型

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 IO多路复用就是复用…

ES 嵌套查询

背景 一个配方由多种原材料组成&#xff0c;需求是根据各种原材料的用量搜索出对应的配方 配方实体类 class Formula {private long id;private String name;private List<Material> materials;}class Material {JsonProperty("material_id")private long m…

认识不-物联网“六域模型”有哪些有什么作用

如下参考源于苏州稳联授权可见认知域-感知域-网络域-应用域-管理域-安全域-物联网六域模型 苏州稳联 (iotrouter.cn) 认识物联网“六域模型”&#xff1a;构成与作用 “六域模型”是一个有效的框架。这个模型通过将物联网划分为六个相互关联的域&#xff0c;帮助我们更好地理…

论文学习_Critical Variable Guided Mutation for Directed Greybox Fuzzing

1. 引言 研究背景:软件漏洞的出现可能会带来严重的安全隐患,因此对程序进行安全测试非常重要。在程序的数千行代码中,新提交的代码更容易引入漏洞,因为这些代码通常是为了功能升级或 bug 修复而添加的。现有的基于覆盖率的模糊测试方法虽然在发现真实世界软件系统中的安全…

【嵌入式——FreeRTOS】事件标志组

【嵌入式——FreeRTOS】事件标志组 简介相关API代码示例 简介 事件是一种实现任务间通信的机制&#xff0c;主要用于实现多任务间的同步&#xff0c;但是事件通信只能是事件类型的通信&#xff0c;无数据传输。与信号量不同的是&#xff0c;事件可以实现一对多&#xff0c;多对…

Citrix替换:不只是功能拉齐,更是性能体验的超越

用户在选择Citrix替换方案时&#xff0c;除了关注架构和功能的全面性&#xff0c;也期待着国产桌面办公方案带来的惊喜。 深信服桌面云不仅在基础能力和功能上做到了全面对标Citrix&#xff0c;还在用户极为重视的安全、可靠性、智能监控与排障、信创生态等方面做到了全面超越…

如何用SRM管理供应商,轻松又高效?

在企业运营的日常里&#xff0c;你是否常常为那些繁杂的供应商信息而头疼&#xff1f;每当项目紧急需要某个物料时&#xff0c;你是否会为了寻找可靠的供应商而焦头烂额&#xff1f;更别提那些层出不穷的交货延期、质量问题&#xff0c;以及难以追踪的合同条款了。这些问题&…

基于AGX ORIN与FPGA K7实现PCIE高速数据通信/Orin与FPGA高速数据传输/XDMA在linux系统使用教程

因最近想学习AGX orin和FPGA实现数据高速通信&#xff0c;借此机会和大家一起学习AGX orin和FPGA 制作不易&#xff0c;记得三连哦&#xff0c;给我动力&#xff0c;持续更新&#xff01;&#xff01;&#xff01; 完整工程文件下载&#xff1a;AGX orin与FPGA实现PCIE完整…

【深度学习】图形模型基础(5):线性回归模型第一部分:认识线性回归模型

1. 回归模型定义 最简单的回归模型是具有单一预测变量的线性模型&#xff0c;其基本形式如下&#xff1a; y a b x ϵ y a bx \epsilon yabxϵ 其中&#xff0c; a a a 和 b b b 被称为模型的系数或更一般地&#xff0c;模型的参数。 ϵ \epsilon ϵ 代表误差项&#…

如何使用 AI 提高程序猿的工作效率

我们程序猿其实是距离AI最近的一批人 也是别人眼中最有可能被AI代替的人 但是光恐惧或者排斥是没用的 有一句话说得好&#xff1a; 与其想办法跑的AI跑的快 不如考一张AI驾照 - 鲁迅 下面就分享3个我在日常工作中 使用的AI来提高效率的场景 1.使用AI来辅助编码&#xff0c;…

通证经济重塑经济格局

在数字化转型的全球浪潮中&#xff0c;通证经济模式犹如一股新兴力量&#xff0c;以其独特的价值传递与共享机制&#xff0c;重塑着经济格局&#xff0c;引领我们步入数字经济的新纪元。 通证&#xff0c;作为这一模式的核心&#xff0c;不仅是权利与权益的数字化凭证&#xf…

C语言 | Leetcode C语言题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; int robRange(int* nums, int start, int end) {int first nums[start], second fmax(nums[start], nums[start 1]);for (int i start 2; i < end; i) {int temp second;second fmax(first nums[i], second);first temp;}retur…

需求分析分类和层级、分析步骤

需求分析是软件工程和系统开发中至关重要的阶段&#xff0c;它帮助确立和理解系统或软件的需求&#xff0c;为后续的设计和开发工作奠定基础。以下是需求分析的分类、层级和分析步骤的详细讨论&#xff1a; 需求分析的分类和层级 功能需求和非功能需求&#xff1a; 功能需求&…