`

实例讲解main()中方法调用的问题

 
阅读更多
public class invokeMethod{
   public void showMsg(){
      System.out.println("this is showMsg");
}
   public void callOther(){
      showMsg();
}
   public static void main(String args[]){
       invokeMethod ob=new invokeMethod();
       ob.callOther();
}
}
在上例中,方法callOther()和方法showMsg()处在同一个类中,所以调用后者时直接使用方法名就可以了。
令人比较疑惑的地方是在main()方法中,此处调用callOther()方法使用了看似比较麻烦的办法,先创建一个对象ob,再用对象名.方法的格式来调用方法,这似乎是多此一举
实际上这里做是必须的。main()方法是一个静态方法,它由系统来调用,系统在调用它的时候并没有创建一个invokeMethod的对象,而callOther和showMsg方法都是实例方法,他们被调用时必须有对象存在,所以必须在main()方法中先创建一个对象ob才能调用这两个方法,从这点来看,main()方法虽然在invokeMethod类的内部,但它的表现如同在类的外部一样。
这么解释可能有的同学还有疑惑,为什么callOther方法又能够直接调用showMsg(),难道它能保证在调用后者时对象已经存在,答案却是如此,因为callOther本身是实例方法,它在执行时一定有对象存在,基于这个前提,它才能够直接调用showMsg方法
分享到:
评论

相关推荐

    java调用动态库实例

    - 直接Java文件main方法调用:在独立的Java应用中,我们可以在主函数中加载库,定义接口,然后直接调用库中的函数。例如,如果DLL有一个名为`addNumbers`的函数,我们创建一个`AddNumbers`接口,声明`addNumbers`...

    C#调用C++代码完整实例

    本实例将详细讲解如何使用C#调用C++代码,通过DLL动态链接库实现功能。 首先,我们需要了解C#和C++之间的互操作性是通过`Platform Invoke (P/Invoke)`和`.NET Framework`的`Common Language Runtime (CLR)`实现的。...

    C#中创建和调用DLL实例

    下面将详细讲解如何在C#中创建和调用DLL实例。 首先,我们需要创建一个DLL项目。在Visual Studio中,选择"新建项目",然后在模板中找到"C#类库"项目。给项目命名,例如"myDLL",并点击"创建"。在新创建的类库项目中...

    C语言调用C++类中的方法

    有时,我们可能需要在C语言项目中调用C++编写的类和方法,这种情况在跨语言交互或维护既有C代码库时尤为常见。本教程将详细讲解如何实现这一目标。 首先,为了使C语言能够调用C++的方法,我们需要确保C++类具备...

    通过反射调用静态方法

    本文将详细讲解如何通过反射调用静态方法,并探讨在特定场景下,如MyBatis中的应用。 首先,理解反射的概念是至关重要的。在Java中,反射API(java.lang.reflect)允许我们获取类的信息,包括类名、构造函数、方法...

    基于maven的scala与java相互调用的简单实例

    标题"基于maven的scala与java相互调用的简单实例"揭示了这个示例的核心:在Maven项目中,使用Scala和Java代码互相调用。Scala是一种强大的静态类型编程语言,它在语法上兼容Java,并且提供了函数式编程和面向对象...

    java远程调用rmi实例

    本实例将深入讲解如何使用Java RMI在Linux环境中启动远程服务,并在Windows环境下进行操作。 首先,理解RMI的基本原理:RMI系统由两部分组成,客户端和服务器端。服务器端暴露远程接口,客户端通过引用这个远程接口...

    Android--调用服务里面的方法

    在`onServiceConnected()`方法中,我们获取到了`MyService`的实例,并通过`doSomethingUseful()`调用了服务的方法。当方法调用完成后,我们通过实现的`IServiceCallback`接口的`onMethodCalled()`方法通知主线程。 ...

    【java基础】调用方法(csdn)————程序.pdf

    本篇将详细讲解如何在Java中调用方法,包括静态方法和非静态方法。 首先,我们来看如何调用静态方法。静态方法是属于类的方法,不依赖于类的任何实例就能被调用。在`Student`类中定义了一个静态方法`say()`,它的...

    在一个类中调用另一个类的数据成员的方法-程序实现

    本文将详细讲解如何在一个类中调用另一个类的数据成员,包括两种主要的方法:对象引用和友元函数。这两种方法都有其特定的应用场景和优缺点,开发者应根据实际需求选择合适的方式。 ### 1. 对象引用 对象引用是一...

    python 怎么调用class中的函数(csdn)————程序.pdf

    要调用一个类中的函数,我们需要首先创建该类的一个实例,然后通过实例来调用相应的方法。下面我们将详细讲解如何在Python中调用类中的函数。 首先,我们来看一个简单的例子: ```python class Test: def ...

    Spring AOP入门及其实例讲解、下载

    **Spring AOP 入门及其实例讲解** 在软件开发中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种编程范式,它旨在提高代码的可重用性,减少冗余,并将关注点分离。Spring框架是Java开发中的一个流行...

    java applet实例讲解

    本文将深入讲解Java Applet的概念、工作原理以及如何通过实例进行学习。 一、Java Applet概述 Java Applet是Java平台的一个组成部分,主要用于在网页中嵌入动态内容。它们由Java编写的类组成,这些类继承自`java....

    OK---C函数实例讲解

    "OK---C函数实例讲解"这份资料显然旨在帮助学习者深入理解和掌握C语言中的函数用法。函数是C语言的核心组成部分,它们允许我们将代码组织成可重用的模块,提高代码的可读性和维护性。以下是一些关于C函数的关键知识...

    实例讲解Java设计模式编程中如何运用代理模式共3页.pd

    本实例将详细讲解如何在Java编程中运用代理模式。 代理模式的核心思想是为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用,可以控制对目标对象的访问,或者在调用目标对象的同时增加...

    js调用oc方法

    本文将详细讲解如何实现`js调用oc方法`,以供开发者参考。 首先,我们需要理解基本的概念。JavaScript是Web前端的主要编程语言,而Objective-C是Apple的iOS和Mac OS X操作系统中的主要后端编程语言。为了使两者能够...

    JS跨域调用WCF服务实例(WCF服务宿主到控制台)

    本文将详细介绍如何实现JS跨域调用WCF服务,并通过一个控制台应用作为服务宿主的实例进行讲解。 首先,我们要理解什么是跨域问题。在Web浏览器的安全策略中,同源策略限制了JavaScript只能访问与当前页面同源(协议...

    详解C++调用Python脚本中的函数的实例代码

    下面详细讲解如何在C++中调用Python脚本函数,以及相关的关键步骤和注意事项。 环境配置是实现C++调用Python脚本的第一步。在编译环境准备阶段,需要在C++工程中包含Python的头文件(include)和库文件(lib)。...

    实例讲解Python中global语句下全局变量的值的修改

    ### 实例讲解Python中`global`语句下全局变量的值的修改 #### Python全局变量的概念与作用 在Python编程语言中,全局变量是指在整个程序范围内都可访问的变量。这意味着无论函数或类如何嵌套,只要没有同名的局部...

Global site tag (gtag.js) - Google Analytics