java方法引用
‘壹’ java一个方法如何引用另一个方法中的变量
a()b()c()函数可以设置返回值,在gs()里面调用三个函数,得到返回值
‘贰’ java类方法如何实现引用传递和值传递
参数是基本类型就是传值,传对象就是引用传递。
swap(Integer x, Integer y)可以传递引用,但是没办法实现交换。这跟Integer的实现方式有关。所以不是引用传递就一定能改变外面的值。
下面是引用传递,交换的情况,又臭又长。
classUntitled{
intneedFix;
publicstaticvoidswap(Untitledx,Untitledy){
inttemp=x.needFix;
x.needFix=y.needFix;
y.needFix=temp;
}
publicstaticvoidmain(String[]args){
Untitle1=newUntitled();
Untitle2=newUntitled();
u1.needFix=3;
u2.needFix=4;
swap(u1,u2);
System.out.println(u1.needFix+","+u2.needFix);
}
}
另外,你可以考虑一下引用传递,不过也是一种传值,java里面没有事实上的指针。直接交换引用指向的对象是没有作用的。
Untitledtemp=x;
x=y;
y=temp;
无效。
‘叁’ java中方法的调用
一、调用本类中的方法
方法一、被调用方法声明为static ,可以在其他方法中直接调用。
方法二、被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用。
二、调用外部的类的方法,通过类的实例化进行调用。
‘肆’ JAVA 引用其他类的方法
你要通过对象调用,而不是类名调用,因为你的paint方法不是static
首先paint方法是你自己写的,你要在构造器中调用,除非
if(ae.getSource()==bt2)
{
q2dlinecoreabc drawcore=new q2dlinecoreabc();
drawcore.paint(gc);
}
否则,paint方法 无论如何都不会被调用的
//回复
三楼大哥,这个方法我试过 ,但是编译提示找不到符号,是变量的问题吧?如果这样,能教我如何声明这个变量吗?
是不是找不到 gc?
在Applet主类,声明全局变量Graphics gc=this.getGraphics();
其实 这个Graphics gc和你主类里 重写的paint方法里的g是同一个对象
‘伍’ java方法引用问题
public class People
{
//n表示人数!
public static void age(int n){
if(n==1) {
System.out.println("我10岁");
}else {
age(n-1);
System.out.println("我比第"+(n-1)+"个人大2岁,"+"我的岁数为"+(10+(n-1)*2));
}
}
public static void main(String[] args) {
age(5);
}
}
这已经最简单了,递归要在入口函数main方法以外才好做的!主要是看age(int n)方法的算法!
递归的特点是 1.esle句块指向断点!2.由断点向外层执行! 要学递归得先学类和方法!
要核心代码就是 age(int n)方法
‘陆’ Java中的几种引用方式
1)强引用(StrongReference)
强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。
2)软引用(SoftReference)
如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。
所以,软引用可用来实现内存敏感的高速缓存。
软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。
3)弱引用(WeakReference)
弱引用与软引用的区别在于:弱引用的对象拥有更短暂的生命周期。
在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。
弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。
4)虚引用(PhantomReference)
“虚引用”顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。
如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。
虚引用主要用来跟踪对象被垃圾回收器回收的活动。
虚引用与软引用和弱引用的一个区别在于:
虚引用必须和引用队列(ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。
程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动。
‘柒’ java中一个方法调用另一个方法。
如果另一个类中的那个方法是私有的话,就不能直接调用到,如果是其他类型的话看情况,如果是静态的(static)话,直接用类名可以调用到,如果是非静态的,就需要利用另一个类的实例(也就是用那个类生成的对象)来调用。
如
class A{
public static void a(){}
public void b(){}
}
public class B{
public static void main(String[] args){
A.a();//静态
new A().b();//非静态
}
}
‘捌’ 在java中怎样使方法调用同一个类中的方法是什么
1、如果一个类中只有一个名称为a的方法,那么我们可以直接调用即可,如下图所示
‘玖’ java中方法调用时的写法
如果是非静态的方法1调用非静态的方法2,那么
非静态方法2所在类的实例引用.非静态方法2
public class Test{
public void getMethod(){
Test t=new Test();
t.getTwoMethod();
}
public void getTwoMethod(){
}
}
如果静态调用静态:
public class Test{
public static void main(String[]args){
Hello();
}
public void Hello(){
System.out.println("HELLOWORLD")
}
}
如果是继承的话:
public class a{
public void jj(){}
}
public class b extends a {
public void hh(){
super.jj();
}
}
‘拾’ java怎么调用方法
java类有两种方法一种是类方法就是用static修饰的,一种是实例方法,就是没有static修饰的方法。类方法可以同时类名.方法名的方式调用。而实例方法必须先生存类的实例在通过实例.方法名的方式调用。例如: public class MethodCall { public static void main(String[] args) { Test.sayStatic(); Test test = new Test(); test.sayInstance(); } } class Test { public static void sayStatic() { System.out.println("这是一个静态方法。"); } public void sayInstance() { System.out.println("这是一个实例方法。"); }