【Java 基础】08 面向对象

面向对象是一种程序设计范式,它以对象为中心,将数据和操作数据的方法组织在一起。

Java 正是一门面向对象的编程语言,它的设计理念强调代码的重用性、可维护性和可扩展性。

本文将简要介绍Java面向对象编程的基本概念和特性。

1. 对象和类

面向对象编程中,对象是程序中的基本单元。对象可以是现实世界中的实体,也可以是抽象的概念。

Java 中的类是用来把一组属性和行为组装在一起,类通过关键字 class 来定义。

// 定义一个简单的类
class Car {// 定义了两个属性String brand;int year;// 定义了一个行为void run() {System.out.println("The car is running...");}
}

上述代码定义了一个 Car 类,具有品牌和年份属性,以及启动方法。

2. 构造方法

构造方法是一种特殊类型的方法,用于在创建对象时初始化对象的成员变量。

构造方法的名称与类的名称相同,并且没有返回类型。

在对象创建时,构造方法会被自动调用,用于执行对象的初始化工作。

public class ClassName {// 构造方法public ClassName() {// 构造方法的内容}
}

构造方法分为 无参构造 和 有参构造,上例就是无参构造因为没有参数

下面再来看看有参构造,即有参数

public class Car {String brand;int year;// 有参构造方法public Car(String brand, int year) {this.brand = brand;this.year = year;}
}

3.方法重载

方法重载是指在同一个类中可以定义多个同名的方法,但这些方法的参数列表必须不同(类型、顺序、数量)。

方法重载的目的是提高代码的灵活性,让同一个方法名可以根据不同的参数做不同的事情。

方法重载的规则:

  1. 方法名必须相同。

  2. 参数列表必须不同(类型、顺序、数量至少有一个不同)。

  3. 返回类型可以不同。

  4. 可以有不同的访问修饰符。

  5. 可以抛出不同的异常。

public class Calculator {// 两个整数相加public int add(int a, int b) {return a + b;}// 三个整数相加public int add(int a, int b, int c) {return a + b + c;}// 两个浮点数相加public double add(double a, double b) {return a + b;}
}

在这个例子中,Calculator 类包含了多个名为 add 的方法,它们的参数列表分别是不同的。这就是方法重载的体现。

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

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

相关文章

使用 WITH 语句和临时表

文章目录 WITH 语句和临时表员工部门案例(单个 WITH 查询)建表:写入数据:使用WITH查询 扩展案例:员工、部门、薪水和级别(多个 WITH 查询)建表和插入数据:使用多个WITH查询 结语 WIT…

python入门级简易教程

Python是一种高级编程语言,由Guido van Rossum于1991年创建。它是一种通用的、解释型的、高级的、动态的、面向对象的编程语言。 Python的编程哲学是简洁明了,强调代码的可读性和简洁性,使开发人员能够快速开发出正确的代码。Python被广泛用…

Chart 5 性能优化概述

文章目录 前言5.1 可移植性5.2 优化梗概5.3 OpenCL 移植的初始评估5.4 将CPU代码移植到OpenCL GPU5.5 并行化GPU和CPU工作负载5.6 瓶颈分析5.6.1 识别瓶颈5.6.2 解决瓶颈 5.7 API层面性能优化5.7.1 API函数调用的正确安排5.7.2 使用基于事件驱动的pipeline5.7.3 内核编译和构建…

2023-12-04 AIGC-Stable Diffusion和SadTalker-搭建及使用

摘要: 2023-12-04 AIGC-SadTalker-搭建及使用 代码仓库: https://github.com/Stability-AI/stablediffusion https://github.com/camenduru/stable-diffusion-webui-colab https://github.com/OpenTalker/SadTalker https://github.com/adofsauron/SadTalker-Video-Lip-Sync 文…

0基础学习云计算难吗?

很多人经常会问云计算是什么?云计算能干什么?学习云计算能做什么工作?其实我们有很多人并不知道云计算是什么,小知今天来给大家讲讲学习云计算能做什么。 中国的云计算行业目前正处于快速发展阶段,随着互联网和数字化…

人脸识别安卓主板_MTK方案智能闸机门禁工业安卓主板定制开发

人脸识别主板广泛应用于各个领域,包括人脸支付系统、人脸识别监控系统、写字楼办公楼门禁闸机、校园、地铁、住宅门禁、考勤机、智能门锁、广告机、售卖机等。 主板基于联发科MTK方案,并由行业PCBA和MTK的核心板组成。根据产品需求,可以选择…

7、类型转换构造、析构、深拷贝、类的静态成员

1、类型转换构造 |自定义转换 利用一个已定义的对象,来定义另一个不同类型的对象 实现从源类型到目标类型的隐式类型转换的目的 总结下已知构造,包括类型转换构造 如下,如果Person给Human赋值时,Person有私有变量,则需要在Pers…

浅聊JAVA开发下环境部署与使用工具的安装与部署

Java开发环境的部署涉及到安装Java Development Kit(JDK)、配置系统环境变量、选择一个集成开发环境(IDE)等步骤。以下是一般情况下的Java开发环境部署步骤: 安装Java Development Kit (JDK): 访问 Oracle JDK下载页面…

qt creator配置opencv库 (MSVC版本)

目录 1. MSVC版本 1.1 使用cmake编译opencv 1.2 再使用visual studio 2019生成opencv的lib,dll 1.3 配置opencv的系统环境变量 1.4 新建qt项目 1. MSVC版本 1.1 使用cmake编译opencv 1.2 再使用visual studio 2019生成opencv的lib,dll 1.3 配置opencv的系统环境变量 D:…

Educational Codeforces Round 159 (Div. 2) A~E

A.Binary lmbalance(思维) 题意: 给出一个01字符串,你可以对字符串进行无限次下列操作: 选择一个位置 i ( 1 ≤ i ≤ ∣ s ∣ − 1 , |s|为字符串s的长度 ) i(1 \le i \le |s| - 1,\text{|s|为字符串s的长度}) i(1≤…

深度学习实战66-基于计算机视觉的自动驾驶技术,利用YOLOP模型实现车辆区域检测框、可行驶区域和车道线分割图

大家好,我是微学AI,今天给大家介绍一下深度学习实战66-基于计算机视觉的自动驾驶技术,利用YOLOP模型实现车辆区域检测框、可行驶区域和车道线分割图。本文我将介绍自动驾驶技术及其应用场景,并重点阐述了基于计算机视觉技术下的自动驾驶。自动驾驶技术是一种利用人工智能和…

Linux报too many open files的解决方案及 lsof、sysctl 命令介绍

Too many open files in system 问题处理 服务器异常: 一串的etc下的shell文件报 /etc/profile.d/bash_completion.sh: Too many open files in system 查看当前操作系统允许打开的文件数 # 用户级查看: ulimit -n # 系统级查看: cat /pro…

Java实现屏幕截图程序(二)

本文是继Java实现屏幕截图程序(一)之后进行加工的,主要逻辑是依靠javafx界面进行屏幕范围选择和截图图片显示,在日常工作中较为适用,下面把代码分享给大家。 以下是JavaFX实现的简单选择界面截图程序代码: 屏幕拖动监听器,截图后的界面可拖动就靠它: import javafx.e…

LeetCode刷题--- 计算布尔二叉树的值

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏:http://t.csdnimg.cn/ZxuNL http://t.csdnimg.cn/c9twt 前言:这个专栏主要讲述递归递归、搜索与回溯算法,所以下面题目主要也是这些算法做的 我讲述…

cache教程1.LRU 缓存淘汰策略

这一节实现LRU算法,要理解明白其使用的数据结构。 FIFO/LFU/LRU 算法简介 Cache的缓存全部存储在内存中,内存是有限的,因此不可能无限制地添加数据。当占用内存超过了给定的内存大小时候,就需要从缓存中移除一条或多条数据了。我…

计算机网络(二)| 物理层上 | 数据通信基础知识 调制 频率范围 信噪比

文章目录 1 物理层基本概念2.数据通信基础知识2.1 数据通信基本概念2.2 信道基本概念2.2.1 基带调制(编码)方式2.2.2 带通调制方式 2.3 信道的极限速率影响因素2.3.1 **频率范围**2.3.2 **信噪比** 内容笔记来源于谢希任老师《计算机网络》 物理层重点 …

Xilinx FPGA平台DDR3设计详解(三):DDR3 介绍

本文介绍一下常用的存储芯片DDR3,包括DDR3的芯片型号识别、DDR3芯片命名、DDR3的基本结构等知识,为后续掌握FPGA DDR3的读写控制打下坚实基础。 一、DDR3芯片型​号 电路板上的镁光DDR3芯片上没有具体的型号名。 ​如果想知道具体的DDR3芯片型号&#…

rename--一些例子与问题

指令 A 和指令 B之间存在先写后读(RAW)的相关性 指令 B 的源寄存器 r0 来自于指令 A 产生的结果因此在进行寄存器重命名的时候,指令 B 的 r0 对应的物理寄存器应该直接来自于指令A所对应的P30,而不应该来自于从RAT读取的值。指令A,B,D之间存在先写后写(WAW)的相关性…

阿里云效部署前后端

静态站点到OSS 阿里云-云效,阿里云企业级一站式 DevOps,可以免费使用(会限制人数、流水线数量等,个人项目够用了)。相关文章 CI 持续集成 - 阿里云云效 OSS 是对象存储的意思,一般一个项目对应一个 Bucke…

20231202年江西省“振兴杯”网络信息行业(信息安全测试员)职业技能竞赛

C1-xor chall.py from flag import flagdef encrypt(x, y):keyzxbresultfor i in range(len(x)):resultchr(ord(x[i])^ord(y[i])^ord(key[i%3]))return result x flag y flag[1:] flag[0]enc open(flag.enc, wb) enc.write(encrypt(x, y)) enc.close()简单的异或&#xf…