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.值传递与引用传递

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

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

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

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

相关文章

酷开科技丨引领家庭娱乐新潮流,酷开系统带你开启多彩生活新篇章

在繁忙的都市生活节奏中,人们对生活品质的追求从未停歇。家庭娱乐作为提升生活质量的重要部分,随着科技进步和个性化需求的增长,已经发生了翻天覆地的变化。多样化的娱乐方式不仅为家庭生活增添了色彩,也为家庭成员间的相聚带来了…

一站式家装服务管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修风格管理,主材管理,用户管理,基础数据管理 前台账户功能包括:系统首页,个人中心,装修风格&#xff0…

亲测5个电脑浏览器高效技巧,保证让你搜索效率倍增!

虽然我们每个人的电脑基本每天都会用到浏览器,但你会发现有的人用起浏览器就是噼里啪啦的,找他要个什么网站他都能快速找到,而有的人,经常打开的是广告搜索的网页,找不到搜索的答案非常慢。小编今天就来跟你分享一下我…

系统架构设计师 - 数据库系统(1)

数据库系统 数据库系统数据库模式 ★分布式数据库 ★★★数据库设计阶段 ★★ER模型 ★关系模型 ★ ★结构约束条件完整性约束 关系代数 ★ ★ ★ ★概述自然连接 大家好呀!我是小笙,本章我主要分享系统架构设计师 - 数据库系统(1)知识,希望内…

Kimichat使用案例023:7个提示词案例(Kimichat炒股)

文章目录 一、了解股票投资基本概念和知识二、寻求投资建议三、如何做长期投资四、找出某只股票的潜在缺点五、多个视角看股票或投资策略沃伦巴菲特视角:彼得林奇视角:埃隆马斯克视角:结论:六、比较两只股票七、总结研报或公司公告、财报等文件一、了解股票投资基本概念和知…

SpringBoot的迭代史,SpringBoot和Spring和Java和Maven和Gradle版本兼容介绍

文章目录 系统环境要求:Spring Boot 3.1.xSpring Boot 3.0.xSpring Boot 2.7.xSpring Boot 2.6.xSpring Boot 2.5.xSpring Boot 2.4.xSpring Boot 2.3.xSpring Boot 2.2.xSpring Boot 2.1.xSpring Boot 2.0.xSpring Boot 1.5.xSpring Boot 1.4.xSpring Boot 1.3.xSp…

深入分析 Android BroadcastReceiver (四)

文章目录 深入分析 Android BroadcastReceiver (四)1. 广播接收器的深入优化与应用1.1 实时性要求高的应用1.1.1 示例:音乐播放器中处理耳机插拔事件1.1.2 动态注册接收器 1.2 处理耗时操作1.2.1 示例:使用 IntentService 处理耗时操作 1.3 安全性管理1.…

1964springboot VUE 智慧社区可视化平台系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE社区可视化平台系统是一套完善的完整信息管理类型系统,结合springboot框架和VUE完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码…

网络安全:SQL注入防范

文章目录 网络安全:SQL注入防范引言防范措施概览使用参数化查询示例代码 输入验证和过滤示例代码 使用ORM框架示例代码 其他防范措施结语 网络安全:SQL注入防范 引言 在上一篇文章中,我们介绍了SQL注入攻击的基础知识。本文将重点讨论如何防…

如何解决虚拟仿真教学中的设备限制和卡顿问题?|点量云流技术解决方案

在数字化时代背景下,高校虚拟仿真教学模型成为重要的教学辅助工具,通常基于UE或U3D引擎开发。尽管当前多数采用Webgl方案,且具备一定优势,但实践中仍存在不少问题。以下是常见问题分析及点量云流实时渲染技术如何提供解决方案的探…

Lynred在欧洲防务展上将展出新品——“HOT”红外传感器Seegnus。

Lynred在即将举办的巴黎欧洲防务展上将展出其令人瞩目的新品——“HOT”红外传感器Seegnus。这款专为战术视觉设计的大型阵列传感器,以其紧凑的封装和高分辨率的中波红外成像能力,无疑将为航空航天、国防和商业市场带来革命性的突破。 Seegnus传感器拥有…

Cookie、Session、Token的关系和区别

关系 Session与Cookie:Session通常依赖于Cookie来工作。当服务器为客户端创建一个Session时,它会在服务器上存储与客户端相关的信息,并将一个唯一的SessionID通过Cookie发送给客户端。客户端在后续的请求中会携带这个Cookie(包含…

【面试干货】Java中的访问修饰符与访问级别

【面试干货】Java中的访问修饰符与访问级别 1、public2、protected3、默认(没有访问修饰符)4、private 💖The Begin💖点点关注,收藏不迷路💖 在Java中,访问修饰符用于控制类、变量、方法和构造器…

基于CST的PCB通孔三维建模实例

CST的Via Wizard流程在其Help文件中的描述如下,流程将经历5个创建模块,最后生成三维模型: 首先,创建一个新的MWS工程文件,在主菜单栏中逐一点击Macros-->Wizard-->Via Wizard,启动创建流程; CST会自动打开基于Excel的创建表格,如下图所示,设计者需要点击“启用宏…

【初阶数据结构】深入解析带头双向循环链表:探索底层逻辑

🔥引言 本篇将介绍带头双向循环链表底层实现以及在实现中需要注意的事项,帮助各位在使用过程中根据底层实现考虑到效率上问题和使用时可能会导致的错误使用 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔…

加密的记事本app哪个好用 记事本哪款好用能上锁

随着科技的进步,越来越多的人开始倾向于使用记事本app来记录生活中的点点滴滴。相较于传统的纸质记事本,这些app不仅记录内容丰富,而且安全性更高。其中,敬业签就是一款备受好评的记事本软件。 敬业签以其强大的功能和出色的安全…

HTTP详细总结

概念 HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 特点 基于TCP协议: 面向连接,安全 TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在…

“Docker入门指南:概念与安装详解“

目录 # 概念 1. Docker常见问题 2. docker概念和安装 2.1 Docker的组成 2.2 Docker 组件及关系表 2.3 docker核心思想 2.4 docker镜像与容器两个核心概念 2.5 容器概念图 2.6 docker核心技术 2.6.1 镜像 (Image) 概述 关系 示例 2.6.2 容器 (Container) 概述 关…

高考志愿填报,如何避免报错专业?

高考志愿填报绝对是关键一环节,分数高低暂且不论,因为这个填报志愿,大概率是决定了余生的职业,也有人说,大学可以转专业,毕业还可以跨行就业,工作了还可以转行.....确实有这个可能性&#xff0c…

如何选择合适的半桥栅极驱动芯片?KP8530X,KP85402,KP85211A满足你对半桥栅极驱动一切需求

半桥栅极驱动系列KP8530X,KP85402,KP85211A在功率电子领域展现出卓越的性能和可靠的品质。具备诸多显著优势。首先,半桥栅极驱动系列KP8530X,KP85402,KP85211A拥有出色的耐压性能,可承受高达数百伏的电压&a…