Java面向对象 一

news2025/5/25 18:58:07

系列文章目录

Java面向对象 二-CSDN博客


目录

系列文章目录

前言

一、初步认识面向对象

1.类和对象的简单理解

2.类的构成

二、类的实例化 

1.对象的创建

2.对象的初始化

三、this引用的作用

四、构造方法

1.构造方法的提供

2.对象的构造

3.构造方法的重载

4.this.() 调用构造方法

五、封装

1. 面向对象的特征

2. 权限关键字 

3. 包的概念

4.封装的概念和意义

六、static 成员

1. static 修饰成员变量

2. static 修饰成员方法

3. 静态成员的特性及访问方式

4.静态成员变量的初始化

七、代码块


前言

java 是一门面向对象的编程语言,本文介绍 java 面向对象编程的基础内容。


一、初步认识面向对象

1.类和对象的简单理解

java 是一门面向对象的编程语言(Object Oriented Program,简称 OOP)。

对象的产生依赖于类,类可以理解为盖房子用的图纸,对象就是根据图纸建出来的房子。

2.类的构成

类中包含属性(成员变量/字段)和方法(成员方法);

成员属性:定义在类内部,方法外部的变量;

成员方法:是写在类里面的函数,用来表示对象的行为;

二、类的实例化 

1.对象的创建

可以通过 new 关键字创建对象,使用类创建对象的过程,就是类的实例化;

2.对象的初始化

可以通过引用访问对象的属性和方法:具体是指“对象名.属性/方法名“的方式来访问;

默认初始化:对象的属性在没有赋值的时候,引用类型的默认值是 null,简单类型就是 0;

注意:局部变量必须初始化才能调用,对象属性/成员变量不需要。

三、this引用的作用

this 引用指向当前对象(成员方法运行时,调用该成员方法的对象);

this 只能在成员方法中使用,通过 this 可以访问对象的成员变量,但静态的成员变量不支持。

this.() :用于调用当前类中的构造方法,只能在构造方法中使用,并且只能在第一行;

this.属性: 用于访问对象的属性;

this.方法名: 用于访问对象的方法;

四、构造方法

1.构造方法的提供

当一个类中没有任何一个构造方法的时候,java 会自动提供一个没有参数的构造方法;

当一个类中有构造方法,Java 就不会提供构造方法了。

2.对象的构造

完成一个对象的构造分两步:1,给对象分配空间;2,调用合适的构造方法。

构造方法只负责对对象的成员进行初始化,不负责给对象开辟空间;

3.构造方法的重载

构造方法没有返回值类型,方法名和类名必须相同,定义不同参数可以构成构造方法的重载;

重载:方法名相同,参数列表不同的多个方法构成方法的重载。

4.this.() 调用构造方法

this.() 可以调用当前类中的其它构造方法,只能在构造方法中使用,并且只能在第一行;

使用 this 调用类中的属性和普通方法不需要放在第一行。

五、封装

1. 面向对象的特征

面向对象的三大特征:封装,继承,多态;

2. 权限关键字 

private: 使用该关键字修饰的属性或者方法,只能在同一包下的同一类中访问;

default:default 不是权限关键字,什么关键字都不加就是 default 权限,同一包中的同一类或者不同类可以访问,也叫做包访问权限;

protected: 权限扩大到不同包中的子类可以访问,访问时需要用到 super 关键字;

public: 权限扩大到不同包中的非子类也可以访问;

3. 包的概念

为了更好得管理类,把多个类收集在一起成为一组,称为软件包;

import:可以使用 import 关键字将包导入;

包名:通常使用公司的域名,类如 com.baidu.www

常见的包:

java.lang: 系统常用基础类,由编译器自动导入;

java.lang.reflect: java 反射变成包;

java.net: 网络编程开发包;

java.sql: 数据库开发支持包;

java.util: java 提供的工具程序包,包含 java 集合类,非常重要;

java.io: I/O 编程开发包;

4.封装的概念和意义

封装就是对类的成员进行隐藏,通过关键字 private, 只对类外提供公开的接口;

封装的意义是可以隐藏类的实现细节,从而达到安全性;

六、static 成员

1. static 修饰成员变量

static 修饰成员变量:静态成员变量,也叫做类变量,静态变量存在于 java 虚拟机内存的方法区;

static 成员变量的生命周期:随着类加载创建,随着类卸载销毁;

2. static 修饰成员方法

static 修饰成员方法:静态成员方法,也叫做类方法;

3. 静态成员的特性及访问方式

静态成员不属于某个对象,是所有对象共享的;

访问方式:通过 “类名.静态成员名” 这种方式访问;

4.静态成员变量的初始化

就地初始化:定义的时候直接赋值,即就地初始化;

静态代码块初始化:使用 static 修饰,静态代码块位于类的里面,方法的外面,在代码块中初始化静态成员变量;

七、代码块

实例代码块:处于类的里面,方法的外面,用于初始化成员属性的代码块;

静态代码块:用 static 关键字修饰的代码块,比实例代码块更先执行;

执行时机:类加载时,静态代码块就会执行;创建对象时,实例代码块才会执行;

执行顺序:静态代码块,实例代码块,构造方法;

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

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

相关文章

leetcode hot100刷题日记——12.反转链表

解答: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(n…

《Python语言程序设计》第4章第8题3个个位数之间比大小。‘a小于b而b大于c’这是最有漏洞的一个对比,请问我如何判断a和c

升序来做这个题 比如123就变成321 需要比对3个数 这不是比对2个数。a和b比对 我们可以直接写 if a>b: print(ab) else print(ba) 但是现在是3个数abc 如果进行if比对呢 if a > b >c: print(a,b,c) elif a < b >c: print(bca) … 简洁的代码变成了复杂的代码段。…

Selenium 测试框架 - Python

🚀Selenium Python 实战指南:从入门到进阶 Selenium 是 Web 自动化测试中最受欢迎的工具之一,支持多种浏览器和语言。本文将从环境搭建到多浏览器兼容、测试框架集成、元素定位方式、常用操作、浏览器配置等多个方面进行详细讲解,并分享常见的最佳实践建议。 📦一、环境…

RNN GRU LSTM 模型理解

一、RNN 1. 在RNN中&#xff0c; 二、GRU 1. GRU是为了解决RNN 梯度消失引入的改良模型&#xff0c; 2. GRU 通过门控 Gamma_r Gamma_u 两个变量&#xff0c;实现了对于过往记忆的筛选&#xff1a;这种机制使得GRU能够灵活地决定何时“忘记”过去的信息以及何时“记住”新的…

【MC】红石比较器

在《我的世界》&#xff08;Minecraft&#xff09;中&#xff0c;红石比较器&#xff08;Redstone Comparator&#xff09; 是一种高级红石元件&#xff0c;主要用于 检测、比较或处理信号强度&#xff0c;同时还能与容器、特定方块互动。 红石比较器有两种模式&#xff1a; 比…

红黑树简单模拟实现

定义成员变量旋转insert以234树的角度来待插入操作具体代码 完整代码 我们前面实现了 二叉搜索树和 AVL树。 其中AVL树是二叉搜索树的改进&#xff0c;但是有些人觉得二叉树搜索的插入调整太频繁了&#xff0c;或者说平衡条件过于苛刻。 于是人们放松了左右子树高度差的限制&…

豪越科技:消防应急装备智能仓储管理新变革

在消防救援工作中&#xff0c;消防装备无疑是消防员们与火灾等灾害顽强对抗的关键“武器”。然而&#xff0c;传统的消防装备管理模式长期以来饱受诸多痛点的困扰&#xff0c;严重影响着消防工作的高效开展和救援效果。 在过去&#xff0c;装备丢失的情况时有发生。由于缺乏有效…

如何设计Agent的记忆系统

最近看了一张画Agent记忆分类的图 我觉得分类分的还可以&#xff0c;但是太浅了&#xff0c;于是就着它的逻辑&#xff0c;仔细得写了一下在不同的记忆层&#xff0c;该如何设计和选型 先从流程&#xff0c;作用&#xff0c;实力和持续时间的这4个维度来解释一下这几种记忆&am…

毕业论文格式(Word)

目录 Word目录怎么自动生成&#xff1f;快速生成试试这3个方法&#xff01; - 知乎https://zhuanlan.zhihu.com/p/692056836目录生成需要先设置标题样式&#xff0c;这个不仅是目录生成需要&#xff0c;和后续的图表也有关系。 最好不要自己创建新的样式&#xff0c;而是在现有…

学习STC51单片机14(芯片为STC89C52RC)

接下来我们进入学会了HC—SR04 还有舵机那么现在我们将他们融合在一起&#xff0c;用超声波来引导舵机的转动 我们这个最后的成果是做一个智能垃圾桶 成品是这样的&#xff0c;是不是可有意思了 成品视频 现在我们将舵机的代码和超声波测距模块的代码整合到一起&#xff0c;实…

基于CodeBuddy实现本地网速的实时浏览小工具

本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 前言 在数字化浪潮席卷全球的今天&#xff0c;网络已成为人们生活和工作中不可或缺的基础设施。无论是在线办公、学习、娱乐&#xff0c;还是进行大数据传输和云计算&…

stable diffusion论文解读

High-Resolution Image Synthesis with Latent Diffusion Models 论文背景 LDM是Stable Diffusion模型的奠基性论文 于2022年6月在CVPR上发表 传统生成模型具有局限性&#xff1a; 扩散模型&#xff08;DM&#xff09;通过逐步去噪生成图像&#xff0c;质量优于GAN&#x…

计算机网络(3)——传输层

1.概述 1.1 传输层的服务和协议 (1)传输层为允许在不同主机(Host)上的进程提供了一种逻辑通信机制 (2)端系统(如手机、电脑)运行传输层协议 发送方&#xff1a;将来自应用层的消息进行封装并向下提交给 网络层接收方&#xff1a;将接收到的Segment进行组装并向上提交给应用层 …

LangChain构建RAG的对话应用

目录 Langchain是什么&#xff1f; LangSmith是什么&#xff1f; ​编辑 使用Python构建并使用AI大模型 数据解析器 提示模版 部署 记忆功能 Chat History -- 记忆 代码执行流程&#xff1a; 流式输出 构建向量数据库和检索器 检索器 代码执行流程 LLM使用检索器…

目标检测DN-DETR(2022)详细解读

文章目录 gt labels 和gt boxes加噪query的构造attention maskIS&#xff08;InStability&#xff09;指标 在DAB-Detr的基础上&#xff0c;进一步分析了Detr收敛速度慢的原因&#xff1a;二分图匹配的不稳定性&#xff08;也就是说它的目标在频繁地切换&#xff0c;特别是在训…

嵌入式培训之系统编程(四)进程

一、进程的基本概念 &#xff08;一&#xff09;定义 进程是一个程序执行的过程&#xff08;也可以说是正在运行的程序&#xff09;&#xff0c;会去分配内存资 源&#xff0c;cpu的调度&#xff0c;它是并发的 &#xff08;二&#xff09;PCB块 1、PCB是一个结构体&#x…

天文数据处理:基于CUDA的射电望远镜图像实时去噪算法(开源FAST望远镜数据处理代码解析)

一、射电天文数据处理的挑战与CUDA加速的必要性 作为全球最大的单口径射电望远镜&#xff0c;中国天眼&#xff08;FAST&#xff09;每秒产生38GB原始观测数据&#xff0c;经预处理后生成数千万张图像。这些数据中蕴含的脉冲星、中性氢等天体信号常被高斯白噪声、射频干扰&…

VS编码访问Mysql数据库

安装 MySQL Connector/C 的开发包 libmysqlcppconn-dev是 MySQL Connector/C 的开发包&#xff0c;它的主要用途是让 C 开发者能够方便地在应用程序中与 MySQL 数据库进行交互。它提供了以下功能&#xff1a; 数据库连接&#xff1a;通过标准的 C 接口连接到 MySQL 数据库。S…

一周学会Pandas2 Python数据处理与分析-Pandas2数据合并与对比-pd.merge():数据库风格合并

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili pd.merge()&#xff1a;数据库风格合并 **核心功能**&#xff1a;基于列值&#xff08;类似 SQL JOIN&#xff09;合…

CodeBuddy 实现图片转素描手绘工具

本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 前言 最近在社交媒体上&#xff0c;各种素描风格的图片火得一塌糊涂&#xff0c;身边不少朋友都在分享自己的 “素描照”&#xff0c;看着那些黑白线条勾勒出的独特韵味&a…