精华内容
下载资源
问答
  • Java 两个class之间相互调用

    千次阅读 2018-11-22 20:25:00
    解决方法:将要调用的方法、属性...原因:Java 两个class之间相互调用导致“init内存溢出” 建议不要使用之间的互相调用,写接口,用接口来进行桥接 转载于:https://www.cnblogs.com/kaka-chen/p/10003696.html...

    解决方法:将要调用的方法、属性,做成静态static

    原因:Java 两个class之间相互调用导致“init内存溢出”

     

    建议不要使用类之间的互相调用,写接口,用接口来进行桥接

    转载于:https://www.cnblogs.com/kaka-chen/p/10003696.html

    展开全文
  • java两个类相互持有引用的小问题

    万次阅读 2016-03-07 13:56:52
    今天在写一个小程序中遇到一个问题,我想在两个类相互持有引用,比如: 1. 一个是画板,另一个是画板中一个图形; 2. 画板必须持有图形的引用才能绘制图形; 3. 图形希望能够根据自身一些属性改变画板中其他的...

    今天在写一个小程序中遇到一个问题,我想在两个类中相互持有引用,比如:

    1. 一个类是画板,另一个类是画板中一个图形;

    2. 画板必须持有图形的引用才能绘制图形;

    3. 图形希望能够根据自身一些属性改变画板中其他的图形,所以需要持有画板的引用来操作画板的资源。


    于是就有如下代码:

    画板:

    public class TankWar extends Frame {	
    	
    	...
    
    	Tank myTank = new Tank(50, 50, this);
    
    	...
    }

    图形:

    public class Tank {
    
    	...
    	
    	/**
    	 *  在Tank中持有TankWar对象的引用,然后在初始化Tank中,通过this传入这个引用
    	 *  便于在Tank中操作TankWar的资源(重要)
    	 *  对于本项目,tank需要操作TankWar中的成员变量bullet
    	 */
    	TankWar tw = new TankWar();
    	
    	public Tank(int x, int y) {
    		this.tank_x = x;
    		this.tank_y = y;
    	}
    	
    	
    	public Tank(int x, int y, TankWar tw){
    		this(x, y);
    		this.tw = tw;
    	}
    	...
    }

    错误提示:

    Exception in thread "main" java.lang.StackOverflowError


    表面上看好像相互持有一个成员变量,然后赋予引用,实际编译却总是报错,原因是内存溢出!


    我根据错误提示发现,两个类在不断的init,最终导致内存溢出,分析上述代码,当TankWar最先初始化时,会调用Tank的构造方法,而Tank又将TankWar的引用传入,在这个过程中,似乎TankWar被重绘了一遍,然后二者又开始相互不断调用....


    我的解决方法就是静态成员变量,在TankWar中将Tank定义为静态成员变量!因为静态对象的数据在全局是唯一的,所以不会重新绘制,也就不会一直init!

    static Tank myTank = new Tank(50, 50);



    因为我对java也不熟悉,具体原因我也没找到,网上说的方法试过也不太管用,如果看到文章的您有见解,欢迎指出!


    展开全文
  • 今天小编就为大家分享一篇关于Java实现不同的的属性之间相互赋值,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • Java 之间的调用

    万次阅读 多人点赞 2018-06-08 17:43:36
    然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问。例如://先定义一类import static java.lang.System.out; public class Son { public void IsSon() { out.append("调用Son类中的IsSon...

    方法1. 新建一个类。

    然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问。

    例如:

    //先定义一个类

    import static java.lang.System.out;
    
    public class Son {
    
    	public void IsSon() {
    		out.append("调用Son类中的IsSon成员方法成功!");
    	}
    }
    
    //实例化,调用
    import java.util.*;
    import java.math.*;
    
    public class Main{ 
        
    	public static void main(String[] args) {
    		Son son = new Son();	//实例化 Son 类
    		son.IsSon();	//通过实例化的 son 对象调用 IsSon 方法
    		
    		/*
    		 程序运行结果:
    		 调用Son类中的IsSon成员方法成功!
    		 */
    	
    	}
    }

    方法2.新建一个类,将该类中需要被调用的方法设置为静态(static),加了static后,就可以用类名直接调用。

    然后在调用类中直接通过类名进行访问。

    调用格式为:

    类名.方法名(参数表);

    例如:

    import static java.lang.System.out;
    
    public class Son {
    
    	public static  void IsSon() {
    		out.append("调用Son类中的IsSon成员方法成功!");
    	}
    }
    

    import java.util.*;
    import java.math.*;
    
    public class Main{ 
        
    	public static void main(String[] args) {
    		Son.IsSon();	//调用 IsSon 方法
    		
    		/*
    		 程序运行结果:
    		 调用Son类中的IsSon成员方法成功!
    		 */
    	
    	}
    }
    展开全文
  • 两个类相互引用的解决方法

    千次阅读 2017-03-09 09:26:14
    1 问题提出 ...在CDealer中包含了一CPoker指针的成员变量,而在CPoker中也包含了一CDealer指针的成员变量,如下所示: //CPoker头文件 #pragma once #include "Dealer.h" class CPo

    1 问题提出

    最近在编写“斗地主”游戏,在程序中有一个“CDealer”类用来实现发牌等等功能,还有一个“CPoker”类,用来表示扑克牌。在CDealer类中包含了一个CPoker类指针的成员变量,而在CPoker类中也包含了一个CDealer类指针的成员变量,如下所示:

    //CPoker类头文件

    #pragma once

    #include "Dealer.h"

    class CPoker

    {

    public:

        CPoker(void);

        ~CPoker(void);

    private:

        CDealer *m_pDealer;

    };

    //CDealer类的头文件

    #pragma once

    #include "Poker.h"

    class CDealer

    {

    public:

        CDealer(void);

        ~CDealer(void);

    private:

        CPoker *m_pPoker;

    };

    程序编译时,错误提示为

    poker.h(10) :error C2143: 语法错误: 缺少“;”(在“*”的前面)

    poker.h(10) :error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int

    2 问题分析

    因为在程序中首先包含的是Dealer.h,所以Dealer.h头文件首先被编译。如图3-1所示。在CDealer类的头文件中,第1步执行了#pragma once之后就进入到第2步,即Poker.h头文件中。在Poker.h头文件中进行第3步,执行#pragma once,之后进入到第4步,也就是Dealer.h中,由于Dealer.h中包含#pragma once,并且此时已经被编译,所以第4步中的#include “Dealer.h”实际上没有执行,继续进行到Poker.h的第5步,定义CDealer类的指针,此时CDealer类实际上还没有定义,因此编译时回报错。

    3 问题解决

    3.1 类的前向声明

    从2中分析可以看到,报错的主要原因是CDealer类没有定义。可以使用类的前向声明(forwarddeclaration)的方式解决这个问题。如

    class CDealer;


    图3-1 头文件执行流程

    在CPoker类定义中映入了类类型CDealer。在类声明之后而定义之前,类CDealer是一个不完全类型(incompetetype),即已知CDealer是一个类,但不知道包含哪些成员,所以使用类的前向定义后,只能声明该类的指针,而不是该类的对象。

    同理,在Dealer.h中加入CPoker类的前向声明。

    classCPoker;

    3.2 将包含头文件的代码放到执行文件

    尽量将包含头文件的语句放到执行文件(.cpp文件)中而不是在头文件中(.h文件)。因此,接下来将#include“Poker.h”语句放到Dealer.cpp文件中,而将#include“Dealer.h”语句放到Poker.cpp文件中。

    4 小结

    对于两个类间相互引用引发的编译错误,可以使用类前向声明的方式解决。类前向声明是一个不完整类型,只能使用其指针。尽量将包含头文件的代码放在cpp执行文件中,而不是h头文件中。

    展开全文
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...
  • Java构造方法的相互调用

    千次阅读 2018-11-29 17:01:10
    Java中,当给一个类创建了多构造方法时,有时想在一构造方法中调用另一构造方法以减少代码量。这时可以使用this关键字来实现。 通常,当使用this关键字时,它意味着“这对象”或者“当前对象”,并且它...
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java ...
  • java后台api间的相互调用

    千次阅读 2017-11-15 11:27:29
    java实现访问后台api包含get与post方式
  • JAVA调用同一包里的不同的方法: import static test.max.max
  • 两个微服务互相调用

    千次阅读 2020-04-27 17:18:57
    两个微服务模块:goods微服务,orders微服务;orders服务调用goods服务。 *通过spring cloud的feign组件进行,此次调用不依赖注册中心。至于feign组件以及注册中心不了解的请自行查阅。 步骤一:创建一个maven工程...
  • JAVA中实现线程相互调用或回调

    千次阅读 2016-06-19 14:57:27
    在工作中,遇到同时两个线程A和B,按照通常的理解,A调用B以后A继续执行,但是在我目前的情况下需要B执行完毕以后才能继续执行A后面的程序,于是有了此文章。 请看代码: 首先定义一个接口: package ...
  • Java中多窗口间调用种方式

    千次阅读 2017-09-09 13:02:17
    WindowBuilder是一很不错的插件。
  • 不同java项目之间接口的相互调用

    万次阅读 热门讨论 2019-05-05 14:17:38
    大致思路就是项目A利用工具类调用项目B的接口进行一功能实现,记录一下 工具 package com.xxx.tools.utils; import jdk.internal.instrumentation.Logger; import net.sf.json.JSONObject; import org.apach....
  • 个类之间的相互调用实现

    千次阅读 2013-08-10 01:22:19
    个类之间的相互调用  由来:在项目开发的时候,定义了三核心(ClassA,ClassB, ClassC),三个类之间存在调用关系如下:ClassC是管理,需要调用ClassA, ClassB的接口;同时作为被管理,ClassA, ClassB...
  • 在使用微服务架构中,可能遇到一些业务情况会涉及服务之间相互调用,下面通过一简单的demo给大家演示下,演示的是oms服务需要调用ump服务。 代码如下: 1、oms服务提供者 主要是这注解: @...
  • 此处的this指向目标对象,因此调用this.b()将不会...在一Service内部,事务方法之间的嵌套调用,普通方法和事务方法之间的嵌套调用,都不会开启新的事务.是因为spring采用动态代理机制来实现事务控制,而动态代...
  • Java中,如果一构造方法想调用另一构造方法,需要是用this(参数列表)的形式,自动调用对应的构造方法。不可以直接使用类名进行调用。public class Person { private String name; private int age; public ...
  • Java 模块间调用 详解

    千次阅读 2019-12-11 21:16:15
    在一应用系统中,无论使用何种语言开发,必然存在模块之间的调用调用的方式分为几种:同步调用、异步调用、回调...
  • Python与Java之间的相互调用——Jython

    万次阅读 2015-04-13 16:25:02
    Jython 是一种可以把种不同的编程语言结合在一起的工具。首先,它使Python 程序员介入到Java 开发环境并让他们能快速开发方案原型,以便...Java 程序员们,再也不用为他们刚写的一个类写一大堆的测试用例或驱动程序。
  • java与c++的相互调用(一)

    千次阅读 2016-09-06 19:45:35
    在很多情况下需要用到java与c++的之间的相互调用,用c++编写的代码一般被编译成dll的方式使用,java是通过jni调用c++程序的。接下来陆续介绍java调用c++、c++调用java以及设计到的其他问题。之前我要吐槽一下,jni...
  • kotlin与Java相互调用

    万次阅读 2018-01-31 15:43:10
    Kotlin和Java种不同的语言,所以在互相调用的时候,会有一些特殊的语法。kotlin中对象属性默认就带有setter和getter方法,所以在kotlin中调用Java时直接变量名点属性就可获取到属性的setter和getter的一些操作。...
  • java与js交互,相互调用传参

    万次阅读 2017-04-25 17:02:57
    前言随着前端技术的发展与H5的广泛使用,移动端采用native+h5的方式越来越多了,对于Android来说就涉及到java与js的交互,相互调用传参等。下面就来看一下java与js交互的简单demo。方式实现js调用java有四种方式:1....
  • 在我自己的Vector中有一构造方法: public Vector(float[] vector) { this.vector = vector; this.length = vector.length; this.size = VectorUtil.computeVectorSize(vector); }这构造方法调用...
  • Java设计模式

    千次阅读 多人点赞 2019-09-03 23:20:31
    Java设计模式 1.工厂模式 工厂模式一般分为简单工厂、工厂、抽象工厂3钟情况,属于创建型设计模式。 2.生成器模式 3.观察者模式 4.桥接模式 5.代理模式 6.状态模式 7.访问者模式 ...
  • 同一个类中不同方法之间的互相调用

    千次阅读 多人点赞 2020-03-11 16:24:29
    这里可能产生一问题:同一个类里不同方法之间相互调用时,不就可以直接调用吗?这里需要指出的是:同一个类的一方法调用另一方法时,如果被调用方法是普通方法,则默认使用this作为调用者;如果被调用方法...
  • java同一包中,之间的的调用

    千次阅读 2018-10-19 19:21:00
    如果是静态方法,直接 ...方法名调用如:public class A{public static void T(){System.out.print("这是A的方法");}public void T2(){System.out.print("这是A的非静态方法");}}class B{static void T(){A.T()...
  • 今天在项目里面遇到要在不同模块之间调用方法的问题,于是到网上搜了一下,很多人的方法步骤不全,导致我弄了很久也没弄成,于是请教旁边的大佬。大佬教了我,只需三步。 第一步,在需要调用的模块的pom文件中添加...
  • Unity与java相互调用

    千次阅读 2015-10-09 19:39:37
    新建Android工程,将Unity中关于编译...project - Properties - Java Build Path - Add External JARs... Jar包路径一般为:%Unity安装目录%\Editor\DataPlaybackEngines\androidplayer\development\bin\classes.j...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 213,860
精华内容 85,544
关键字:

java两个类相互调用

java 订阅