java method是什么,java中Method类有什么作用
大家好,今天来为大家解答java method是什么这个问题的一些问题点,包括java中Method类有什么作用也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
java编程中的"方法"是什么意思
在一个类中,程序的作用体现在方法中。方法是JAVA创建一个有名字的子程序的方法。
1、方法的实现包括两部分内容:方法声明和方法体。
[public| protected| private ] [static]
[final| abstract] [native] [synchronized]
returnType methodName([paramList])
[throws exceptionList]//方法声明
{statements}//方法体
——方法体是对方法的实现,它包括局部变量的声明以及所有合法的Java指令。方法体中声明的局部变量的作用域在该方法内部。若局部变量与类的成员变量同名,则类的成员变量被隐藏。
——方法声明中的限定词的含义:
static:类方法,可通过类名直接调用
abstract:抽象方法,没有方法体
final:指最后一个方法
方法声明包括方法名、返回类型和外部参数。其中参数的类型可以是简单数据类型,也可以是复合数据类型(又称引用数据类型)。
对于简单数据类型来说,java实现的是值传递,方法接收参数的值,但不能改变这些参数的值。如果要改变参数的值,则用引用数据类型,因为引用数据类型传递给方法的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。
补充:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
java中Method类有什么作用
java Method类是最终类,不能继承,使用方式如下:
/**
*/
packagecom.timer.demo.objectsocket;
importjava.lang.reflect.Method;
/**
*@author崔冉
*
*/
publicclassInvokeTester{
publicintadd(intparam1,intparam2){
returnparam1+param2;
}
publicStringecho(Stringmesg){
return"echo"+mesg;
}
publicstaticvoidmain(String[]args)throwsException{
ClassclassType=InvokeTester.class;
Objectinvokertester=classType.newInstance();
MethodaddMethod=classType.getMethod("add",newClass[]{int.class,
int.class});
//Method类的invoke(Objectobj,Objectargs[])方法接收的参数必须为对象,
//如果参数为基本类型数据,必须转换为相应的包装类型的对象。invoke()方法的返回值总是对象,
//如果实际被调用的方法的返回类型是基本类型数据,那么invoke()方法会把它转换为相应的包装类型的对象,
//再将其返回
Objectresult=addMethod.invoke(invokertester,newObject[]{
newInteger(100),newInteger(200)});
//在jdk5.0中有了装箱拆箱机制newInteger(100)可以用100来代替,系统会自动在int和integer之间转换
System.out.println(result);
MethodechoMethod=classType.getMethod("echo",
newClass[]{String.class});
result=echoMethod.invoke(invokertester,newObject[]{"hello"});
System.out.println(result);
}
}
Java Method类
首先你应该明确一点,Method类是一个最终类,不可继承。
其实你写的两个类在目前看来是没有可比性的,就像你声明了一个人类,声明了一个汽车类,而你去比较人和汽车,你怎么比较?
一个对像的EQUAL方法是从OBJECT类里面已经继承过来的,但是如果要比较对像的话,应该实现一个可比较的接口compare,当然,已经有好多的类型已经实现的这个接口,例如:String、Integer等,所以你要比较两个对象的时候可以从这些已经实现了这个接口的字段去比较,然后重写equsls()方法,在方法中可以这样写
class A{
public int a;
public boolean equles(Object b)
if(b.class.equal(A.class))
{
return this.a.equles(b.a)
}else if(b.class.equal(B.class))
{
return this.a.equles(b.b)
}
}
class B{
public int b;
}
java 中 invoke()的作用是什么
invoke(调用)就是调用Method类代表的方法。可以实现动态调用,例如可以动态的传人参数,可以把方法参数化。
可以把方法参数化invoke(class, method),比如Test类里有一系列名字相似的方法setValue1、setValue2等等,可以把方法名存进数组v[],然后循环里invoke(test,v[i]),就顺序调用了全部setValue。
此外,invoke()对带有指定参数的指定对象调用,个别参数被自动解包,与基本形参相匹配,基本参数和引用参数都随需服从方法调用转换。如下
public Object invoke(Object obj,Object... args)
throws IllegalAccessException,
IllegalArgumentException,
InvocationTargetException
如果底层方法是静态的,那么可以忽略指定的obj参数。该参数可以为 null。
如果底层方法所需的形参数为 0,则所提供的args数组长度可以为 0或 null。
如果底层方法是实例方法,则使用动态方法查找来调用它,这一点记录在 Java Language Specification, Second Edition的第 15.12.4.4节中;在发生基于目标对象的运行时类型的重写时更应该这样做。
如果底层方法是静态的,并且尚未初始化声明此方法的类,则会将其初始化。
如果方法正常完成,则将该方法返回的值返回给调用者;如果该值为基本类型,则首先适当地将其包装在对象中。但是,如果该值的类型为一组基本类型,则数组元素不被包装在对象中;换句话说,将返回基本类型的数组。如果底层方法返回类型为 void,则该调用返回 null。
扩展资料:语言特点
1.简单性
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。
2.分布性
Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。
网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。
3.编译和解释性
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
参考资料来源:oracle官网——Class Method(invoke()见底部)
OK,本文到此结束,希望对大家有所帮助。