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

【JAVA】类与对象的重点解析

在这里插入图片描述


个人主页:【😊个人主页】
系列专栏:【❤️初识JAVA】


文章目录

  • 前言
  • 类与对象的关系
  • JAVA源文件有关类的重要事项
  • static关键字


前言

Java是一种面向对象编程语言,OOP是Java最重要的概念之一。学习OOP时,学生必须理解面向对象编程的一般概念,例如封装、继承和多态性。了解这些概念是不够的,还需要学习如何在Java中实现OOP,例如类、对象、接口、抽象类等等。虽然在之前的章节中我们已经粗略的介绍过有关类与对象的概念,但这些知识并不全面与详细,今天让我们更加深入的来了解有关类与对象的内容。
在这里插入图片描述

类与对象的关系

在此之前我们已经介绍过类与对象的概念,这里就不再过多介绍有疑问的同学可以阅读之前的文章。让我们进入正题:
类是对象的抽象,而对象是类的具体实例
类是面向对象程序设计的基本概念,它是一组相关的属性和方法的定义。对象则是类的实例,具有类中定义的属性和方法。换句话说,类是对象的模板或者说蓝图,对象是类的实例化结果。

在程序中,我们通过定义类来表示一个概念或者实体,比如说动物、汽车等等。而通过实例化对象来具体描述这个概念或者实体的具体属性和行为。比如说,我们定义了一个动物类,然后通过实例化对象来表示不同种类的动物,比如猫、狗等等。

类与对象之间的关系可以用类似于模型和实例的比喻来理解。类是一个抽象的模型,它定义了一些变量、属性和方法等。而对象是实际存在的对象,它是基于类创建出来的,具有类中定义的属性和方法。类是对象的模板,而对象则是类的实例化结果。在程序运行时,我们使用对象来执行相关的操作和操作数据。
在这里插入图片描述

JAVA源文件有关类的重要事项

  • 一个源文件中只能有一个 public 类
  • 一个源文件可以有多个非 public 类
  • 源文件的名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Employee,那么源文件应该命名为Employee.java。
  • 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
  • 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。
  • import 语句和 package 语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

类有若干种访问级别,并且类也分不同的类型:抽象类和 final 类等。这些将在访问控制章节介绍。

除了上面提到的几种类型,Java 还有一些特殊的类,如:内部类、匿名类。

static关键字

在这里我要重点提一下关于static关键字,我们通常通过以下代码定义main方法

public static void main(String[] args)

但是大家了解这里为什么要使用static关键字呢?
Java中的static关键字可以用于变量、方法、代码块和内部类中。它的主要作用是为了方便地访问和共享变量和方法。
变量:被声明为static的变量属于类,而不属于实例。因此,多个实例共享同一个类变量,并且可以通过类名来访问它。

  • 方法:被声明为static的方法属于类,不属于实例。因此,它们可以直接通过类名来调用,而不需要创建实例。
  • 代码块:也称静态初始化块,它在类加载时执行,仅执行一次。主要用于初始化类变量和执行一些特殊的操作。
  • 内部类:内部类可以被声明为static,这样它就可以直接访问外部类的静态成员,而不需要创建外部类的实例。

总之,static关键字可以提高代码的重用性可读性,但也要注意它可能会导致线程安全问题和类加载的性能问题。
这样我们就能回答刚才的问题:在main方法中,使用static标识符的意义在于,让Java虚拟机能够在执行应用程序的时候找到该方法,因为Java虚拟机只有在找到静态方法时才能执行该应用程序。因此,main方法需要使用static修饰符。此外,在main方法中,使用static标识符的意义在于,让Java虚拟机能够在执行应用程序的时候找到该方法,因为Java虚拟机只有在找到静态方法时才能执行该应用程序。因此,main方法需要使用static修饰符。

在这里插入图片描述

相关文章:

【JAVA】类与对象的重点解析

个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言类与对象的关系JAVA源文件有关类的重要事项static关键字 前言 Java是一种面向对象编程语言,OOP是Java最重要的概念之一。学习OOP时,学生必须理解面向…...

ES6对象扩展

ES6对象扩展是指在ES6中新增的一些对象属性和方法,包括对象属性的简写、计算属性名、对象方法的简写、对象的可迭代性、拓展运算符等。 下面是一些常用的ES6对象扩展: 对象属性的简写 ES6中,当对象的属性名和赋值变量名相同时,…...

docker应用部署---Tomcat的部署配置

1. 搜索tomcat镜像 docker search tomcat2. 拉取tomcat镜像 docker pull tomcat3. 创建容器,设置端口映射、目录映射 # 在/root目录下创建tomcat目录用于存储tomcat数据信息 mkdir ~/tomcat cd ~/tomcatdocker run -id --namec_tomcat \ -p 8080:8080 \ -v $PWD:…...

TestCenter测试管理工具

estCenter(简称TC)一款广受好评的测试管理工具,让测试工作更规范、更有效率,实现测试流程无纸化,测试数据资产化。 产品概述 TC流程图 产品功能 一、案例库 案例库集中化管理,支持对测试用例集中管理&…...

索引切片复习

# loc方法 data2.loc[:4,[ymd, bWendu]]# iloc方法 —— 连续取字段 data2.iloc[:4,1:3]# iloc方法 —— 非连续取字段 data2.iloc[:4,[1,4]]# 直接选取单个字段 —— Series data2[ymd]# 直接选取单个字段 —— DataFrame data2[[ymd]]# 直接选取多个字段 —— DataFrame data…...

想入门网络安全,这些前置准备要做好!

网上有很多关于网络安全如何学习、如何入门的内容,但是仍然有很多小白不懂网络安全要怎么去学习。这是由于网络安全包含的范围确实比较广,学习的内容也比较多,所以在刚开始了解的时候确实会有点搞不清楚状况。 这里有一个方法,不要…...

Spark新特性与核心概念

一、Sparkshuffle (1)Map和Reduce 在shuffle过程中,提供数据的称之为Map端(Shuffle Write),接受数据的称之为Redeuce端(Shuffle Read),在Spark的两个阶段中,总…...

设计模式_状态模式

状态模式 介绍 设计模式定义案例问题堆积在哪里解决办法状态模式一个对象 状态可以发生改变 不同的状态又有不同的行为逻辑游戏角色 加载不同的技能 每个技能有不同的:攻击逻辑 攻击范围 动作等等1 状态很多 2 每个状态有自己的属性和逻辑每种状态单独写一个类 角色…...

css 某个元素被挤的显示不完整,如何显示完整

加一行 flex-shrink: 0;解决...

pve lxc debian 11安装docker遇到bash: sudo: command not解决办法

pve创建LXC容器,使用debian 11模版,安装完成后正常换源、安装依赖 然后添加Docker 的官方 GPG 密钥时出错: $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add - 提示 bash: sudo: command not …...

springboot的缓存和redis缓存,入门级别教程

一、springboot(如果没有配置)默认使用的是jvm缓存 1、Spring框架支持向应用程序透明地添加缓存。抽象的核心是将缓存应用于方法,从而根据缓存中可用的信息减少执行次数。缓存逻辑是透明地应用的,对调用者没有任何干扰。只要使用…...

语雀P0级时间爆发,留给运维的时间不多了?

事件背景 打工人的焦虑,已经延伸到在线文档了。近日,语雀P0级故障想必大家都有所体会,宕机近8小时,笔记、离线同步完全不可用。作为用户尤其担心我的文档资料是否会因此消失。 这泼天的8小时,放眼互联网界也是相当炸裂…...

LeetCode 2401.最长优雅子数组 ----双指针+位运算

数据范围1e5 考虑nlog 或者n的解法&#xff0c;考虑双指针 因为这里要求的是一段连续的数组 想起我们的最长不重复连续子序列 然后结合一下位运算就好了 是一道双指针不错的题目 class Solution { public:int longestNiceSubarray(vector<int>& nums) {int n nums…...

NOIP2023模拟6联测27 无穷括号序列

题目大意 小 C C C有一个括号序列 A A A&#xff0c;其长度为 m m m&#xff0c;且序列元素只包含左右括号。他想生成一个无限长的括号序列 B B B&#xff0c;由于 B B B的长度为正无穷&#xff0c;所以其下标可以为任意整数&#xff08;可以为负&#xff09;。为了由 A A A生…...

java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…...

openEuler 22.03 x86架构下docker运行arm等架构的容器——筑梦之路

为什么要这样做&#xff1f; 随着国产化的普及&#xff0c;国家政策对信创产业的支持&#xff0c;尤其一些金融证券行业、政府单位等&#xff0c;逐渐开始走国产化信创的路线&#xff0c;越来越多接触到国产 CPU &#xff08;arm 平台&#xff0c;比如华为的鲲鹏处理器&#xf…...

【Java】HashMap常见的面试题

HashMap常见面试题 1.HashMap key 是否可以是为 我们自定义对象&#xff1f;——可以 2.HashMap 存储数据 有序还是无序&#xff1f;——无序 3.HashMap key 是否可以存放 null值&#xff1f;如果可以的话 存放在 数组中那个位置&#xff1f;——可以;存放在 index0的位置 4.Ha…...

openpnp - src - 配置文件载入过程的初步分析

文章目录 openpnp - src - 配置文件载入过程的初步分析概述笔记自己编译用的git版本报错截图问题1 - 怎么在调试状态下, 定位到抛异常的第一现场?结合单步调试找到的现场, 来分析报错的原因openpnp配置文件读取的流程END openpnp - src - 配置文件载入过程的初步分析 概述 从…...

中国各城市土地利用类型(城市功能)数据集(shp)

中国各城市土地利用类型(城市功能)数据集 时间:2018年 全国范围的城市用地类型数据(居住/商业/交通用地等共计11类) 分类:居住用地、商业用地、工业用地、医疗设施用地、体育文化设施用地、交通场站用地、绿地等用地类型 含城市编码、一级分类5个、二级分类11个 数据按…...

Linux网络编程:数据链路层

目录 一. 数据链路层概述 二. 以太网 2.1 以太网的概念 2.2 以太网数据帧 2.3 对于MAC地址的认识 2.4 数据碰撞问题 三. MTU和MSS 3.1 什么是MTU 3.2 MTU对UDP的影响 3.3 MTU对TCP的影响&#xff08;MSS的概念&#xff09; 四. ARP协议 4.1 ARP协议的作用 4.2 ARP数…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

比较数据迁移后MySQL数据库和ClickHouse数据仓库中的表

设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

Java高级 |【实验八】springboot 使用Websocket

隶属文章&#xff1a;Java高级 | &#xff08;二十二&#xff09;Java常用类库-CSDN博客 系列文章&#xff1a;Java高级 | 【实验一】Springboot安装及测试 |最新-CSDN博客 Java高级 | 【实验二】Springboot 控制器类相关注解知识-CSDN博客 Java高级 | 【实验三】Springboot 静…...

Ubantu-Docker配置最新镜像源250605

尝试其他镜像加速器 阿里云镜像加速器&#xff1a;登录阿里云&#xff0c;进入容器镜像服务获取专属加速器地址。毫秒镜像&#xff1a;https://docker.1ms.run。DockerHub镜像加速器&#xff1a;https://docker.xuanyuan.me。Docker Hub 镜像加速服务&#xff1a;https://dock…...

PHP 表单 - 验证邮件和URL

PHP 表单 - 验证邮件和URL 引言 在Web开发中&#xff0c;表单是用户与网站交互的重要途径。一个功能完善的表单不仅可以收集用户数据&#xff0c;还能提高用户体验。在表单设计中&#xff0c;验证邮件地址和URL是常见的需求。本文将详细介绍如何在PHP中实现邮件和URL的验证&a…...