浅析Java类与对象

RV1106边缘AI实战:六种图像分类模型RKNN部署与性能对比 边缘计算场景中,图像分类模型的部署常受限于算力与内存。RV1106芯片集成0.5TOPS NPU,通过RKNN工具链将ONNX模型量化转换为INT8格式,利用NPU硬件加速实现低功耗实时推理。该方案在智能门铃、工业读码器等场景具有显著技术价值。本文基于实测数据,对比MobileNetV2、MobileNetV3-Small等六种模型在RV1106上的帧率、内存占用及量化掉点,为边缘视觉产品选型提供参考。 阅读详情

类的定义

现实世界中有各种各样的事物,它们都被我们归类并命名。例如生物学中将印度象(大象)归为象科;将老虎归为猫科等。Java作为一门面向对象程序设计语言,也在其语法中做了相关的表述,那就是类的概念。

Java的类描述了现实中事物的相同性质,将它们放在一起研究,这也符合了面向对象的程序设计思想。

类的定义也称为类的声明。类中含有两部分元素,分别是成员变量和成员方法。

//这是一个简单的类定义实例
public class Car{
    String color;   //成员变量
    int number;     //成员变量
    public void run(){     //成员方法
        System.out.println(color+number);
    }
}

上面的Car这个类,简单的描述了所有车都具有的属性。

构造方法与对象

构造方法是一类特殊的方法,具有特殊的功能。构造方法名与类名相同,没有返回值,在创建对象实例的时候通过new运算符自动调用。构造方法的作用是用来创建类的对象的。例如在Car类中,我们可以像下面这样创建对象。

Car c = new Car();

但是我们看到,Car类中并没有与Car同名的方法,那为什么能创建对象会成功呢?因为每个类都必须至少有一个构造方法,如果程序员没有为类定义构造方法,系统会自动为该类生成一个默认的构造方法,这个构造方法对于程序员是不可见的。默认的构造方法的参数列表及方法体均为空,所以生成的对象各属性值也为空或者零。

一般来说,构造方法应为所有的成员变量赋初值,成员变量的值也称为对象的属性值。所以我们也可以自定义构造方法,以针对创建对象时遇到的不同情况

public class Car{
    String color;   
    int number;
    public Car(){
    }
    public Car(String c){
        color = c;
    }
    public Car(int n){
        number = n;
    }
    public Car(String c,int n){
        color = c;
        number = n;
    }
    public void run(){     
        System.out.println(color+number);
    }
}
public class Test{
    public static void main(String args[]){
        //下面依次调用四个构造方法来创建对象
        //Car c1 = new Car();
        //Car c2 = new Car("red");
        //Car c3 = new Car(53463);
        Car c = new Car("black",23531);
    }
}

上面的四个构造方法展示了创建对象时所有会发生的情况,我们可以通过构造方法的选择,来对对象中的两个成员变量经行操作。

注意:如果类定义中已经含有一个或者多个构造方法,则系统不会再自动生成默认的构造方法了,所以最好再自己写一个参数列表为空的构造方法,这样调用new Car()时就不会出现编译错误。

实际上,类的定义相当于一个“模子”,对象的创建过程就像是拿着“模子”复制了一个个副本。

Car c;   //声明Car类型的变量,并在内存中建立了一个引用
c = new Car();   //创建对象,并将对象在内存中的首地址赋给c引用

调用new为对象在内存中分配空间,要调用类的构造方法。在Java中,使用构造方法是生成实例对象的唯一途径,这个过程称为对象的实例化。上面的代码说明一个声明一个变量仅仅是“预定”了变量的存储空间,只有进行对象的实例化后,内存中才会有对象的存储空间。

下面我们看一段具体的代码,并简要给出其内存图解:

public class Car{
    String color;   
    int number;
    public void run(){     
        System.out.println(color+number);
    }
}
public class Test{
    public static void main(String args[]){
        Car c = new Car();
        c.color = "red";
        c.number = 678;
    }
}

这里写图片描述
栈内存:运行方法
堆内存:存储对象的容器

下面对图解简单阐述

当执行创建对象的代码时,对象的成员变量跟随对象进入堆内存中,并赋默认值,系统把对象在堆内存中的首地址(此处假设是0x1234)传给Car类型的变量c,c就会指向相应的堆内存空间,此时变量c就获得了管理堆内存中成员变量的“资格”。所以执行蓝框中的代码,即是通过c变量去间接修改了堆内存中的成员变量值。

在方法中使用成员变量时,其实省略了this关键字(Java用this关键字自动把成员和引用变量结合在一起,所以可以省略this)。this指的是调用run方法的对象,这里run()方法是由变量c调用的,而变量c又指向堆内存中的相应对象,所以方法run()中的color和number值也即是堆内存中相应对象的成员变量的值。

一步一步搭建S32K14x的AutoSar项目----S32DS 代码工程的搭建 一步一步搭建S32K14X的AutoSar项目----S32DS代码工程的搭建 阅读详情

相关推荐

深度解析快递柜管理系统的C++实现:设计与实现

本文详细介绍了一个基于C++的快递柜管理系统的设计与实现,包括系统需求分析、架构设计、数据库设计、关键功能模块实现和测试与验证。通过详细的代码示例和理论分析,读者可以全面了解如何开发一个完整的快递柜管理系统。希望本文能够为读者在实际项目开发中提供有价值的参考。

m0_57781768的博客 713

Java类和对象浅析

类和对象

m0_51765966的博客 719

Unity实时控制佳能单反拍照全流程(附EDSDK 3.6.1配置避坑指南)

本文详细介绍了在Unity中实时控制佳能单反相机进行拍照的完整流程,重点提供了EDSDK 3.6.1的配置与避坑指南。内容涵盖从SDK获取、环境搭建、相机初始化、参数设置到实现拍照控制,并深入探讨了实时取景的延迟优化方案与资源管理,旨在帮助开发者高效集成专业相机,提升AR/VR及摄影测量等应用的视觉输入质量。

go5gopher的博客 184

java定义空调为类_浅析Java编程中类和对象的定义

1,什么是类?答:类是客观存在的,抽象的,概念的东西。2,什么事对象?答:对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。关于类与对象的描述:类是对象的模版,对象是类的一个个体。3,java中定义类的方法?class 类名用Java语法定义人类:public class Person{}4,对象的定义方法?1,对象声明:类名 对象名;2,对象创建也可以合写为:类名 ...

weixin_26789847的博客 312

CoppeliaSim(原V-REP)新手上路

CoppeliaSim(原V-REP)是一个机器人仿真平台,里面有很多来自别的公司的机器人模型以及完备的物理引擎,我们可以通过python,c++,matlab等语言控制里面的机器人。,您也可以在官网中Downloads里找您需要的版本,一般只需要下载EDU版本就可以了,我下载的是v4.1.0 windows EDU版本。在版本V4之前,CoppeliaSim叫V-REP,在官网可以下载到之前的V-REP版本。

qq_37051669的博客 4万+

向量乘法器设计

同样基于Wallace树乘法器,我们来构造向量乘法器。 在一些矩阵运算中经常用到向量的相乘运算,本例以4维向量为例子介绍向量乘法器的verilog HDL设计。 设向量a = (a1, a2, a3, a4), b = (b1, b2, b3, b4)。 则a 与 b的点乘为:a * b = a1 b1 + a2 b2 + a3 b3 + a4 b4, 即向量对应位置的值相乘,再相加...

Reborn Lee 2969

浅析Java编程中类和对象的定义

答:对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。System.out.println("空调的温度是"+kt.tempeture);System.out.println("空调的温度是"+kt.tempeture);2,对象创建 对象名 = new 类名();关于类与对象的描述:类是对象的模版,对象是类的一个个体。也可以合写为:类名 对象名 = new 类名();答:类是客观存在的,抽象的,概念的东西。5,例子:创建一个空调,并调用制冷。1,对象声明:类名 对象名;

api_ok的博客 290

基于STM32的DS1302电子时钟电路与程序设计

这个示例代码中,我们使用DS1302_GetTime函数从DS1302芯片获取当前时间,并使用DS1302_GetDate函数获取当前日期。在本文中,我们将介绍如何使用STM32微控制器和DS1302实时时钟芯片来构建一个基于STM32的DS1302电子时钟,并提供相应的程序设计。请注意,以上示例代码仅供参考,具体的实现细节可能会根据使用的开发环境和硬件组件有所差异。在实际应用中,你可能需要根据自己的需求进行适当的调整和修改。为了完整实现电子时钟的功能,你还可以添加其他功能,例如闹钟设置、温度显示等。

UbiSqlserver的博客 1324

java 浅析面向对象以及对象和类的思想概念

本文介绍使用通俗易懂的文字描述面向对象三大特征(封装、继承、多态)以及讲述什么是类什么是对象,帮助理解面向对象编程的思想

RuiHe_pan的博客 626

C# USB通信实现

在C#中,我们可以利用.NET框架提供的类库和API来实现与USB设备的通信。本文将介绍如何使用C#进行USB通信,并提供相应的代码示例。以上就是使用C#进行USB通信的基本过程。通过以上代码示例,你可以实现与USB设备的简单通信,具体的实现方式和细节根据你的实际需求进行调整和扩展。命名空间,该命名空间包含了与串口通信相关的类和方法。选择需要通信的USB设备,然后使用。步骤二:获取可用的USB设备列表。首先,在你的C#项目中引入。步骤三:打开USB端口。步骤六:关闭USB端口。步骤一:引入命名空间。

PixelProX的博客 4383

RISC-V CPU设计(三)---多周期CPU的设计与实现

基本情况 本多周期CPU支持RV32I指令集(fence,ecall,ebreak除外),已通过部分指令的测试,如代码有bug,欢迎指出。 模块划分 代码将CPU划分为以下几个模块: 1.控制单元:ControlUnit 用于产生控制信号,是CPU的大脑,指挥中枢。 2.分支决策单元:BranchUnit 用于决定B型指令是否发生跳转 3.立即数单元:ImmUnit 用于从指令中解析出立即数. 4.寄存器堆:RegisterFile RISC-V的32个寄存器,其中x0寄存器恒为0,不可更改。 5.指令存储

qq_40268672的博客 5542

java 对象的定义是_浅析Java编程中类和对象的定义

1,什么是类?答:类是客观存在的,抽象的,概念的东西。2,什么事对象?答:对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。关于类与对象的描述:类是对象的模版,对象是类的一个个体。3,Java中定义类的方法?class 类名用Java语法定义人类:public class Person{}4,对象的定义方法?1,对象声明:类名 对象名;2,对象创建 对象名 = ne...

weixin_33044131的博客 347

YOLOv11改进 | 注意力篇 | YOLOv11引入24年ECCV的自调制特征聚合注意力模块(SMFA),并构建C2PSA_SMFA

1.SMFA介绍1.1 摘要:基于Transformer的图像复原方法由于Transformer的自注意(self-attention,SA)特性能够更好地挖掘非局部信息,从而获得更好的高分辨率图像重建效果,因此具有重要的应用价值。然而,关键点积SA需要大量的计算资源,这限制了其在低功耗器件中的应用。此外,模拟退火机制的低通特性限制了其捕获局部细节的能力,从而导致平滑的重建结果。

tsg6698的博客 952

浅析java.lang.Class类及其对象

1.Class类及其对象简介 Class类位于java.lang包中,父类是Object,该类的对象表示正在运行的 Java 应用程序中的类和接口。Class 类没有公共构造方法,Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。通俗来讲就是JVM会为每一个被加载的类创建一个对应的对象(即字节码文件在jvm中也是以对象的形式被jv

IT_GJW的博客 726

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java中的对象、接口、类、方法等概念浅析for(菜鸟)

最近学习了java基础知识,遇到了一系列概念,包括对象,接口,类,方法等!下面对这些概念做个简单的阐述。 类:类是具备某些共同特征的实体的集合,它是一种抽象的概念,比如“汽车”这类事物就是一个类。 //定义一个类(以汽车为例) class Car { String color="red"; String bind ="ao di"; void run() { System.o

camel@Y blog 3523

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java定义空调为类_java_浅析Java编程中类和对象的定义,1,什么是类? 答:类是客观 - phpStudy...

浅析Java编程中类和对象的定义1,什么是类?答:类是客观存在的,抽象的,概念的东西。2,什么事对象?答:对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。关于类与对象的描述:类是对象的模版,对象是类的一个个体。3,Java中定义类的方法?class 类名用Java语法定义人类:public class Person{}4,对象的定义方法?1,对象声明:类名 对象名;...

weixin_36074359的博客 205

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java里的for概念_java中的对象、接口、类、方法等概念浅析for(菜鸟)

最近学习了java基础知识,遇到了一系列概念,包括对象,接口,类,方法等!下面对这些概念做个简单的阐述。类:类是具备某些共同特征的实体的集合,它是一种抽象的概念,比如“汽车”这类事物就是一个类。//定义一个类(以汽车为例)class Car{String color="red";String bind ="ao di";void run(){System.out.println("行驶");}}对...

weixin_29062255的博客 338

浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象...

最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应的页面响应操作,在每一个类的构造方法中都传入了主类的引用,在主类中提供了所有类的get()方法,这样的做法显得十分的臃肿,就像这样: 打开主页面后会显示窗体...

b068742459863074的博客 274

Java存储任意对象_浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象...

最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应的页面响应操作,在每一个类的构造方法中都传入了主类的引用,在主类中提供了所有类的get()方法,这样的做法显得十分的臃肿,就像这样:打开主页面后会显示窗体B,窗体B的按钮支持我们打开窗体A,窗体A按钮...

weixin_28961225的博客 164

java可以存储属性的对象类型_浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象...

最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应的页面响应操作,在每一个类的构造方法中都传入了主类的引用,在主类中提供了所有类的get()方法,这样的做法显得十分的臃肿,就像这样:打开主页面后会显示窗体B,窗体B的按钮支持我们打开窗体A,窗体A按钮...

weixin_39850787的博客 149

Java进阶知识点

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。缺点会制造大量垃圾,由于他们不能被重用而且对于它们的使用就是”用“然后”扔“,字符串就是一个典型的例子,它会创造很多的垃圾,给垃圾收集带来很大的麻烦。这样做得好处做到了单一职责,并且提高了复用性,解耦了之后,任你如何实现,使用接口的引用调用的方法,永远不需要改变。...

m0_67392811的博客 152

总结一——浅谈Java的类与对象

                         浅谈Java的类与对象     Java,是面向对象的编程语言。那么,什么是对象呢?根据我的理解,Everything is Object(万物皆对象,在现实世界中所有事物都被视为对象)。对象是面向对象编程的核心,它具有明确定义的状态和行为。     而由很多对象的共有特点就可以抽象成为Java的基本单位类。那在类中由两个关键部分组成:方法和属性...

xiangpin125的博客 224

Java中的基本操作单元 - 类和对象

文本关键字:类、属性、行为、实例化、对象。说到类和对象,这都是两个比较抽象的词,如果用在程序中,那就更不知道是什么意思了。其实大家可以先不联系程序,我们在对一大堆东西分类的时候自然是有一个标准的,符合某些特征的分到一类,符合另外一些特征的分到另外一类。在每个类别中,每一样东西都有相同的特征,但是又有所差别,每一样东西就好比一个一个的对象,是一个切切实实的东西,而分类的类别就好似是一个标准或者描述,会更抽象一些。

微光点亮星辰 9510

浅析类与对象&封装

1、访问权限修饰符:在代码编译期间作用代码可以使用的范围 ,限制代码的使用范围public : 整个项目下都可以访问private : 只能在类的括号中使用访问protected : 只能在同包下 / 不同包的子类中可以访问缺省不写: 只能在同包下访问权限修饰符可以修饰:类 : public 缺省不写接口:public 缺省不写属性: 四种皆可方法: 四种皆可构造方法: 四种皆可比如,我创建了一个学生类,在学生类中定义一些私有的属性。

Windsky_jxj的博客 234

深入浅析Java面向对象编程

面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将现实世界的事物抽象为程序中的对象,通过对象之间的交互来完成程序的功能。面向对象编程的核心思想是将数据和处理数据的方法封装在一起,形成一个具有独立功能的实体。

2302_79319046的博客 2177
下一篇: Java多线程总结(一)
KKSJS
博客等级 码龄9年 16粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值