当前位置:首页 » 编程语言 » 方法引用java

方法引用java

发布时间: 2023-11-28 04:47:54

1. java中方法之间是如何调用的

1.与其他语言不同,Java语言不允许编程人员选择采用值传递还是引用传递来传递参数。基本数据类型总是采用值传递。不能把对象传递给方法,而只能传递对象的引用。引用本身也是采用值传递将引用的拷贝传递给方法。当方法收到对象的应用后,他就可以直接操作这个对象。


2.当通过return语句从方法返回信息时,基本数据类型的变量总是以值的形式返回(即返回拷贝),而对象总是以应用的方式返回。


方法调用过程:


1.为调用方法的内存中开辟空间。


2.将实参传递给形参。


3.程序流程跳转到方法里,并执行方法。


4.执行完方法,程序流程跳转到main方法,带回返回值如果有的话,为方法开辟的空间被销毁。

列如:

publicclassTest{
publicstaticvoidmain(Stringargs[]){
inta=10,b=20;
Stringstr1="abc";
Stringstr2="def";
swap(a,b);
swap(str1,str2);
System.out.println(a+"/t"+b);
System.out.println(str1+"/t"+str2);
}

publicstaticvoidswap(inta,intb){
inttemp=a;
a=b;
b=temp;
}

publicstaticvoidswap(Stringstr1,Stringstr2){
Stringtemp=str1;
str1=str2;
str2=temp;
}
}

结果:


1020
abcdef


注意结果中整型和字符串都没有交换。

2. Java如何调用内部类的方法

在其他类中创建内部类的对象时,必须要使用外部类的实例来创建。比如类B是类A的内部类,则语句A.B=new A.B()将是错误的。正确的方法是先创建一个类A的对象,比如A ma=new ma();然后再用这个对象来创建内部类的实例,比如A.B mab=ma.new B();这里要注意后面的语法ma.new B()。也可以把这两步合为一步,比如A.B mab=new A().new B();注意,这里使用了两个new运算符,如果只有一个将是错误的,比如A.B mab=new A().B();是错误的,new A().B()语句JAVA会理解为创建一个无名的引用,然后由这个引用调用类A中的B()函数。如果需要调用的构造函数不是默认的,则可以这样创建比如A.B mab=new A(2).new B();或者分为两步A ma=new A(2); A.B mab=ma.new B();

而且我也怕是不是会重新建个棋盘,那就不行了!
这个你可以放心,不会创建两个棋盘,下面举例验证

public class A2 extends JFrame {
public static void main(String[] args) {
A ma=new A(); //可以看到在这里并没有创建内部类,也就是说内部类中的bbb并没有输出
A.A1 ma1=ma.new A1(); //调用内部类的方法,当然内部类如果有带参数构造函数,则还应在内部类中加上参数。
ma1.f();
}}

class A{
A(){System.out.println("aaa");}
class A1{
A1(){System.out.println("bbb");}
public void f(){System.out.println("kkk");}}

}

3. 在Java中要引用对象的属性和方法,需要怎么实现

属性:第一种就是自己定义一个public的公共属性,然后调用就行了(不安全),第二种就是创建一个private的私有的属性,生成公共的set和get方法(封装),然后调用;
方法:同类中方法为静态方法可以直接调用,不为静态方法需要new和不同类中要new出对象,然后调用其方法;
左上角有我头像,有很多朋友在一起相互交流学习。

4. 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();
}
}

热点内容
安卓游戏和最好玩的游戏叫什么 发布:2025-01-25 07:57:39 浏览:509
隐身访问空间什么心态 发布:2025-01-25 07:42:12 浏览:251
qq推荐上传照片取消 发布:2025-01-25 07:36:22 浏览:139
windows2012服务器电脑重启 发布:2025-01-25 07:35:13 浏览:725
eval与php 发布:2025-01-25 07:24:28 浏览:37
服务器电脑初次上网 发布:2025-01-25 07:21:42 浏览:670
升级android6 发布:2025-01-25 07:17:59 浏览:780
多人直播源码 发布:2025-01-25 07:16:38 浏览:467
机房服务器如何安装系统 发布:2025-01-25 07:03:02 浏览:938
linux命令for循环 发布:2025-01-25 06:58:07 浏览:269