当前位置: 首页 > news >正文

java面向对象(上)

一.面向对象与面向过程

1.面向过程

面向过程(procedure Oriented Programming),简称POP,主要思想就是将问题分解成一个个步骤去解决,把这个步骤称为函数.

典型语言:C语言

优点:可以大大简化代码

缺点:当代码量过大时,不方便维护

2.面向对象

面向对象(Object Oriented Programming),简称OOP,主要思想是首先分析解决该问题需要哪些功能,抽象出事物的特征,再将这些功能和特征封装成类.

典型语言:C++,java,python

优点:适合解决复杂问题,代码的维护性高,扩展性强

总结:面向对象和面向过程两者是相辅相成的,当面向对象对功能具体实现时,利用的也是面向过程的思想

二.类

1.类的结构

类:一些拥有相同特征的事物的抽象,类中可以定义以下内容

(1)成员变量:即事务的属性描述

(2)方法:事务的行为动作进行定义

(3)构造方法:初始化对象

(4)块:一段没有名称的代码块

(5)内部类:即在类中定义的类

2.类的定义

(1)发现类:将问题中的事务抽象成一个个类的过程

类的声明格式:[访问权限修饰符] [修饰符] class [类名]

访问权限修饰符:public,无(默认)

修饰符:final,abstract

关键字class用来定义一个类,类名首字母大写

(2)发现类的共有属性(成员变量)

成员变量的声明格式:[访问权限修饰符] [修饰符]  type 变量名

注意:

(1)成员变量是定义在方法体之外,类当中的变量

(2)成员变量的作用范围是整个类域

(3)成员变量的类型可以是java中的任意类型(基本类型和引用类型)

(4)在定义成员变量时,可以对其进行初始化,如果不初始化,java使用默认值对其初始化

(5)成员变量可以被类中方法、构造方法和特定类的语句块访问.

(3)发现类中的共有行为(成员方法)

成员方法的声明格式:[访问权限修饰符] [修饰符] 返回值 方法名(形参类型 形参名...){方法体}

三.对象

1.什么是对象

对象:是类的具体实例,是以类为模板在内存中创建的实际存在的实例

2.如何创建对象

Car car = new Car();

 java中利用new关键字可以在内存中开辟一个空间用来存储对象的信息,并返回该内存地址,之后利用car引用来指向该内存地址,就可以使用该对象

3.类和对象的关系

类是抽象的模板,对象是具体的实例,现实中是先有对象再有类,而编程时先有类,再有对象

四.构造方法 

构造方法:给成员变量赋初值

(1)方法名与类名相同

(2)无返回值,且不用void修饰

(3)类中会默认生成一个无参的构造函数,给成员变量赋默认值

(4)如果自己定义了有参构造方法,则类中的无参构造方法不会生成,要想使用时,要自己显示写出来

五.方法的重载

方法的重载:在同一个作用域中,可以有多个方法名相同,参数不同的方法,就叫方法的重载

参数不同(主要有三方面不同)

(1)参数的个数不同

(2)参数的类型不同

(3)参数的顺序不同

调用时,会根据参数不同去选择具体调用哪一个方法

注意:方法的重载和返回值无关

六.对象与引用

1.对象与引用的关系

java中除了基本类型,其他的都是引用类型,我们创建的对象就是通过引用对其进行操作的

Car car = new Car();

这句话实际上有三层含义

(1)我们声明了一个引用变量car,它的类型是Car,即Car car;

(2)new Car();在堆中开辟了一个Car类型的对象

(3)car = new Car();将该对象的地址赋给car这个引用变量,相当于car指向了该对象的地址空间,所以我们可以通过car这个引用变量去操作该对象.

引用其实类似C语言中的指针,不过使用上更加方便

2.值传递与引用传递

值传递:基本数据类型在传参时,使用的是值传递,即形参是实参的临时拷贝,形参的改变不会影响实参

引用传递:引用类型和引用类型之间的传参,传的是地址,一方改变了该引用所指向的内容,另一方的也会改变,因为两个引用指向的是同一个地址

相关文章:

java面向对象(上)

一.面向对象与面向过程 1.面向过程 面向过程(procedure Oriented Programming),简称POP,主要思想就是将问题分解成一个个步骤去解决,把这个步骤称为函数. 典型语言:C语言 优点:可以大大简化代码 缺点:当代码量过大时,不方便维护 2.面向对象 面向对象(Object Oriented Pr…...

揭示SOCKS5代理服务器列表的重要性

在复杂的网络安全领域中,SOCKS5代理在保护在线活动方面发挥着关键作用。本文深入探讨了SOCKS5代理服务器列表的细节,探讨了它们的应用、优势以及在增强在线安全和隐私方面不可或缺的功能。 一、理解SOCKS5代理服务器列表 作为在客户端和服务器之间进行通…...

机器学习python实践——关于ward聚类分层算法的一些个人心得

最近在利用python跟着参考书进行机器学习相关实践,相关案例用到了ward算法,但是我理论部分用的是周志华老师的《西瓜书》,书上没有写关于ward的相关介绍,所以自己网上查了一堆资料,都很难说清楚ward算法,幸…...

从零制作一个docker的镜像

近期docker的镜像仓库不好用了,很多国内的源也无法使用了,所有今天给大家分享一下怎么从零制作一个CentOS镜像。 准备CentOS7最小环境 mkdir /centos7.9-root# 在该目录准备centos的最小环境 sudo yum --installroot/centos7.9-root --releasever7 ins…...

eclipse 老的s2sh(Struts2+Spring+Hibernate) 项目 用import导入直接导致死机(CPU100%)的解决

1、下载Apache Tomcat - Apache Tomcat 8 Software Downloads 图中是8.5.100的版本,下面的设置用的是另一个版本的,其实是一样。 2、先将Server配好,然后再进行导入操作。 2、选择jdk 当然,这里也可以直接“Download and instal…...

《米小圈动画汉字》汉字教育动画化:传统与创新的完美融合!

汉字,作为中华文化的瑰宝,承载着千百年来中华民族的智慧和思想。每一个汉字不仅仅是一个符号,更是一段历史的见证,一种文化的传承。在当今全球化的背景下,汉字教育面临着新的挑战与机遇。在这种背景下,如何…...

【LeetCode最详尽解答】11-盛最多水的容器 Container-With-Most-Water

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 链接: 11-盛最多水的容器 直觉 这个问题可以通过可视化图表来理解和解决。 通过图形化这个…...

redis 缓存jwt令牌设置更新时间 BUG修复

大家好,今天我又又又来了,hhhhh。 上文中 我们永redis缓存了token 但是我们发现了 一个bug ,redis中缓存的token 是单用户才能实现的。 就是 我 redis中存储的键 名 为token 值 是jwt令牌 ,但是如果 用户a 登录 之后 创建一个…...

nginx精准禁止特定国家或者地区IP访问

1、安装依赖 dnf -y install gcc-c libtool gd-devel pcre pcre-devel openssl openssl-devel zlib zlib-devel libmaxminddb-devel pcre-devel zlib-devel gcc gcc-c make git2、获取NGINX安装包并安装 wget https://nginx.org/download/nginx-1.26.1.tar.gz git clone http…...

单片机课设-基于单片机的电子时钟设计(仿真+代码+报告)

基于单片机的电子时钟设计 前言一、课设任务是什么?二、系统总体方案硬件设计2.1 系统硬件总体设计2.2 键盘电路设计2.3 DS1302实时时钟芯片电路设计2.4 复位电路2.5 LCD电路设计 三、软件设计3.1 主程序流程图3.2 主要程序设计代码3.3 修改时间函数3.4 扫描键盘函数 四、仿真…...

.net 6 api 修改URL为小写

我们创建的api项目,url是[Route(“[controller]”)],类似这样子定义的。我们的controller命名是大写字母开头的,显示在url很明显不是很好看(url不区分大小写)。转换方式: var builder WebApplication.Crea…...

Windows电脑部署Jellyfin服务端并进行远程访问配置详细教程

文章目录 前言1. Jellyfin服务网站搭建1.1 Jellyfin下载和安装1.2 Jellyfin网页测试 2.本地网页发布2.1 cpolar的安装和注册2.2 Cpolar云端设置2.3 Cpolar本地设置 3.公网访问测试4. 结语 前言 本文主要分享如何使用Windows电脑本地部署Jellyfin影音服务并结合cpolar内网穿透工…...

rsync同步目录脚本

假设有两台服务器的示例 IP 地址为: Server A: 192.168.1.100Server B: 192.168.1.200 现在来解释如何使用这个脚本进行服务器之间文件夹内容的同步,保留路径和服务器信息的抽象化。 1. 脚本文件位置和权限 假设脚本文件位于 /root/script.sh&#x…...

LeetCode 6. Z 字形变换

LeetCode 6. Z 字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: 之后,你的输出需要从左往右逐行读取,产生…...

RTC实时时钟

一、Unix时间戳 1、Unix 时间戳 (1)Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒 (2)时间戳存储在一个秒计数器中,秒计数器为…...

WHAT - React 学习系列(一)

官方文档 If you have a lot of HTML to port to JSX, you can use an online converter. You’ll get two things from useState: the current state (count), and the function that lets you update it (setCount). To “remember” things, components use state.To mak…...

代理模式(静态代理/动态代理)

代理模式(Proxy Pattern) 一 定义 为其他对象提供一种代理,以控制对这个对象的访问。 代理对象在客户端和目标对象之间起到了中介作用,起到保护或增强目标对象的作用。 属于结构型设计模式。 代理模式分为静态代理和动态代理。…...

Word2Vec基本实践

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…...

IIS配置網站登錄驗證,禁止匿名登陸

需要維護一個以前的舊系統,這個系統在內網運行,需要抓取電腦的登陸賬號,作為權限管理的一部分因此需要在IIS配置一下...

抖音矩阵系统搭建,AI剪辑短视频,一键管理矩阵账号

目录 前言: 一、抖音矩阵系统有哪些功能? 1.AI智能文案 2.多平台账号授权 3.多种剪辑模式 4. 矩阵一键发布,智能发布 5.抖音爆店码功能 6.私信实时互动 7.去水印及外链 二、抖音矩阵系统可以解决哪些问题? 总结&#xff…...

山东大学软件学院创新项目实训开发日志——收尾篇

山东大学软件学院创新项目实训开发日志——收尾篇 项目名称:ModuFusion Visionary:实现跨模态文本与视觉的相关推荐 -------项目目标: 本项目旨在开发一款跨模态交互式应用,用户可以上传图片或视频,并使用文本、点、…...

vue2.7支持组合式API,但是对应的vue-router3并不支持useRoute、useRouter。

最近在做一个项目,因为目标用户浏览器版本并不确定,可能会有较旧版本,于是采用vue2.7而不是vue3,最近一年多使用vue3开发的项目都碰到了很多chrome 63-73版本,而对应UI 库 element plus又问题很多。 为了不碰到这些问…...

摊位纠纷演变肢体冲突,倒赔了500:残疾夫妇与摊主谁之过?

在一个小商贩密集的街区,一起由摊位纠纷引发的肢体冲突事件在当地社区和网络上引起了热议。涉事双方为一名摊主和一对残疾夫妇,他们的争执源自对一个摊位的使用权。本是口头上的争吵,却由于双方情绪激动,迅速升级为肢体冲突&#…...

深入理解和实现Windows进程间通信(消息队列)

常见的进程间通信方法 常见的进程间通信方法有: 管道(Pipe)消息队列共享内存信号量套接字 下面,我们将详细介绍消息队列的原理以及具体实现。 什么是消息队列? Windows操作系统使用消息机制来促进应用程序与操作系…...

Web网页前端教程免费:引领您踏入编程的奇幻世界

Web网页前端教程免费:引领您踏入编程的奇幻世界 在当今数字化时代,Web前端技术已成为互联网发展的重要驱动力。想要踏入这一领域,掌握相关技能,却苦于找不到合适的教程?别担心,本文将为您带来一份免费的We…...

北斗短报文终端在应急消防通信场景中的应用

在应对自然灾害和紧急情况时,北斗三号短报文终端以其全球覆盖、实时通信和精准定位的能力,成为应急消防通信的得力助手。它不仅能够在地面通信中断的极端条件下保障信息传递的畅通,还能提供精准的位置信息,为救援行动提供有力支持…...

Java跳动爱心代码

1.计算爱心曲线上的点的公式 计算爱心曲线上的点的公式通常基于参数方程。以下是两种常见的参数方程表示方法,用于绘制爱心曲线: 1.1基于 (x, y) 坐标的参数方程 x a * (2 * cos(θ) - sin(θ))^3 y a * (2 * sin(θ) - cos(θ))^3 其中&#xff…...

Swift Combine — Operators(常用Filtering类操作符介绍)

目录 filter(_: )tryFilter(_: )compactMap(_: )tryCompactMap(_: )removeDuplicates()first(where:)last(where:) Combine中对 Publisher的值进行操作的方法称为 Operator(操作符)。 Combine中的 Operator通常会生成一个 Publisher,该 …...

Windows11+CUDA12.0+RTX4090如何配置安装Tensorflow2-GPU环境?

1 引言 电脑配置 Windows 11 cuda 12.0 RTX4090 由于tensorflow2官网已经不支持cuda11以上的版本了,配置cuda和tensorflow可以通过以下步骤配置实现。 2 步骤 (1)创建conda环境并安装cuda和cudnn,以及安装tensorflow2.10 con…...

韩顺平0基础学Java——第27天

p548-568 明天开始坦克大战 Entry 昨天没搞明白的Map、Entry、EntrySet://GPT教的 Map 和 Entry 的关系 1.Map 接口:它定义了一些方法来操作键值对集合。常用的实现类有 HashMap、TreeMap 等。 2. Entry接口:Entry 是 Map 接口的一个嵌…...

网站域名攻击/谷歌排名优化入门教程

从XP直接升级到Windows 7后,是否对新的开始菜单感觉不习惯,或者说你就喜欢最原始的Windows开始菜单式样?XP里还能选择使用“经典样式”,可如今Windows 7干脆就没有这个选项了,怎么办呢? 如果你到网上搜索过…...

wordpress用户推广插件/百度浏览器下载安装2023版本

随着平台的容器支持、开发人员工具、培训资源和开发人员社区体验等方面的改善,推动组织采用 Java™ Platform, Enterprise Edition 5(Java EE 5)的动力正在稳定增长。本文从较高层面介绍 Java EE 5 中新的生产率特性和 API 改进,并…...

外面网站怎么做/成人职业技术培训学校

参考回答: 1.设置一个生产者消费者队列,作为临界资源 2.初始化n个线程,并让其运行起来,加锁去队列取任务运行 3.当任务队列为空的时候,所有线程阻塞 4.当生产者队列来了一个任务后,先对队列加锁&#xff0…...

wordpress 主题修改/免费技能培训网

2019独角兽企业重金招聘Python工程师标准>>> 回头再写备注 1、枚举类就是class并且是一个不可被继承的final class,其枚举值都是public static final的。 2、既然枚举类是class其就会有构造、方法、数据域。但是枚举类的构造器有很大不同:首先…...

如何查看小程序的开发公司/seoul什么意思

2019独角兽企业重金招聘Python工程师标准>>> 教程目录 Git教程首页 Git 基本概念 Git 环境设置(安装) Git 生命周期 Git 创建操作 Git 克隆操作 Git 执行更改 Git 审查更改 Git 提交更改 Git 推送操作 Git 更新操作 Git 藏匿操作…...

做网站建设公司哪家好/网站的seo

~~删除线格式~ 最近项目里,application.properties放在根目录下,这导致单元测试读取不到这个配置文件,经过一番折腾,终于找到解决方法 RunWith(SpringJUnit4ClassRunner.class) SpringBootTest TestPropertySource(“file:…/conf…...