首页 > 编程语言 >Java类、对象以及(静态)方法的探讨

Java类、对象以及(静态)方法的探讨

时间:2023-01-12 13:47:41浏览次数:32  
标签:main Java num1 num2 静态 探讨 cal Calc 构造函数

  大家好,这是我的第一篇博客。在这里我想跟大家分享一下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 void main(String args[]){}是初学者包括我都很不解的一个函数形式。实际上,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

标签:main,Java,num1,num2,静态,探讨,cal,Calc,构造函数
From: https://www.cnblogs.com/ldkin2023/p/17034586.html

相关文章

  • Java程序的运行机制
    使用Java语言进行程序设计时,不仅要了解Java语言的显著特点,还需要了解Java程序的运行机制。Java程序员运行时,必须经过编译和运行两个步骤。首先将后缀为.java的源文件进行编......
  • Java程序员必看之:eclipase中maven的配置
     需要准备:apache-maven-3.2.3.zip包  Repository.rar本地仓库                              ......
  • Jenkins部署Java应用到Tomcat服务器
    对于Java程序,Jenkins需要使用构建工具,如maven、ant等,其中maven比较流行。这里就用maven实现Java应用的部署。1GitLab准备Java代码2部署Tomcat并配置apt-get-yinstallto......
  • 【收藏】不可错过的javascript迷你库
    最近看着下自己的githubstar,把我吓坏了,手贱党,收藏癖的我都收藏了300+个仓库了,是时候整理一下了。Unix主张kiss,小而美被实践是最好用的,本文将介绍笔者收集的一些非常赞的......
  • java 程序打包成 exe安装包 兼容性强
    找了很多资料,网上的打包成exe用的最多的是exe4j。确实一段时间我也是用exe直到后来开发一个应用的时候出现了兼容性问题。于是再次研究,如果你是想要吧开发好java桌面应用......
  • 通过事件总线EventBus/AsyncEventBus进行JAVA模块解耦 (史上最全)
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • Java的基础语法
    注释、标识符、关键字Java中的注释有三种单行注释多行注释文档注释publicclassHelloWorld{/*这是第一个Java程序*它将输出HelloWorld*这是一......
  • JavaScript的深拷贝实现
    在实际开发当中,我们经常会遇到要对对象进行深拷贝的情况。而且深拷贝这个问题在面试过程中也经常会遇到,下面就对本人在学习过程中的收获,做以简单的总结。什么是浅拷贝,什么是......
  • java:手动实现一个IOC
    面试官特别爱问SpringIOC底层实现,Spring源码晦涩难懂怎么办呢?跟着老师手动实现一个miniioc容器吧,实现后再回头看Spring源码事半功倍哦~,就算直接和面试官讲也完全可以哦,类......
  • Java核心基础:三元运算符,附三个案例和源码
     格式三元运算符也叫三目运算符,即由三部分组成,格式如下: (关系表达式)?表达式1:表达式2;执行流程先执行关系表达式,看其结果是true还是false.如果是true,则执行表达式1如......