首页IT科技java静态对象在哪分配内存(Java类、对象以及(静态)方法的探讨)

java静态对象在哪分配内存(Java类、对象以及(静态)方法的探讨)

时间2025-05-05 00:08:18分类IT科技浏览3621
导读: 大家好,这是我的第一篇博客。在这里我想跟大家分享一下Java最基础的Class and Object,也就是我们熟说的类和对象,以及对Java方法的探讨。...

  大家好          ,这是我的第一篇博客          。在这里我想跟大家分享一下Java最基础的Class and Object                  ,也就是我们熟说的类和对象     ,以及对Java方法的探讨                  。

  初学时的我因为没有对这里面的每一行代码思考透彻       ,在学习Java中级时感到愈加困难                  ,像是在搭建一栋地基不断摇晃的大楼        ,越往上盖    ,越是觉得自己轻浮     。因此                 ,我决定用相较初学时不同的眼界           ,回过头来看最基础的代码       。也希望我的随笔能帮助到你们  ,或是得到你们的不一样的看法                  。

  完整代码请见下图        。首先                ,我用大楼来解释一下类Class和对象Object之间的关系    。

  如果对象Object是一栋大楼              ,那么类Class就是大楼的建造图纸                 。在图纸里面,我们需要写上:大楼里面的东西例如地板          、玻璃等(variables变量)             ,以及大楼的安全保障怎么做(methods方法)           。如以下代码所示  。

  相信你们已经懂了大楼的图纸应该怎么去写                 ,接下来我将创建一个计算器类和一个(public)测试类                。计算机类有三个变量:num1, num2, result, 同时还有一个方法void Perform()用以计算num1+num2;测试类中没有定义新变量  ,但是它有一个主方法(我们将在后面详细说这个主方法)

  在主方法中          ,我们将引用计算器类                  ,创建一个新的object即cal              。这里我们需要用到关键字new(用以分配内存)和构造函数constructor:Calc cal; cal = new Calc();(构造函数也将在后面详细讲解)Calc cal;为引用     ,cal = new Calc();为创建新的object       ,也可以直接写成Calc cal = new Calc();

  创建好新的对象之后                  ,我们就可以引用Calc类中的变量:cal.num1, cal.num2, cal.result 以及方法:cal.Perform();如果我们声明cal.num1=3;cal.num2=5;那么经过cal.Perform()方法之后        ,cal.result = cal.num1+cal.num2 = 8    ,再经过

System.out.println输出cal.result                 ,在控制台console得到结果8。

  相信你们已经大致了解了如何引用类并创造一个新的对象           ,并引用类中的变量和方法进行计算             。不过我们还剩有两个未解释清楚的问题:主方法main()和构造函数constructor  ,我们将一一进行解释                 。

  public static voidmain(Stringargs[]){}是初学者包括我都很不解的一个函数形式  。实际上                ,Java运行时首先会执行main()方法              ,就和c语言一样          。而main方法是由Java虚拟机调用的,所以必须是public             ,虚拟机调用的main()方法的时候                 ,不需要产生任何对象  ,所以main()方法声明为static          ,且不需要返回值                  ,所以必须声明为void                  。String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数     。

  接下来我们解释构造函数constructor       。我们在主方法中的对象 cal 就是由Calc()构造函数创建的                  。实际上     ,无需我们进行定义       ,每一个类会自动生成与类同名的构造函数(方法)        。一个类中能有多个构造函数    。它们没有函数类型                  ,不返回任何值        ,且默认类中定义的变量为0                 。因此    ,如果我们不在主方法中声明cal.num1=3;cal.num2=5                 ,那么输出结果将会是0           。如下图:

  当然           ,我们还可以自行定义构造函数以改变变量的默认值  ,甚至是函数的参数  。

  如下图所示                。我们取消了声明cal.num1=3;cal.num2=5                ,而是在构造函数Calc()中直接将3              ,5分别赋值给num1, num2,在另外一个构造函数Calc(int number1,int number2)中将number1             ,number2分别赋值给num1, num2                 ,而在主函数中  ,对象cal2的构造函数中的3          ,4将分别赋值给number1                  ,number2              。分别输出cal1.result和cal2.result     ,得到的结果大家肯定也知道了。

好了这就是这次博客的全部内容       ,谢谢你们能够看完             。更详细的关于main()函数的解释可以看https://www.cnblogs.com/wannianma/archive/2011/04/03/wannianma.html

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
css背景透明度怎么设置(CSS实现背景图片模糊——毛玻璃效果 | 浅谈CSS属性 filter、backdrop-filter)