首页 > 编程知识 正文

java方法签名详解(java方法签名包括哪些部分)

时间:2023-12-20 16:55:04 阅读:318434 作者:HWWP

本文目录一览:

方法签名定义 Java

方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。

常见的问题应用:重载和重写。

例子(我原来回答过的一个问题):

public class A{

protected int method (int a, int b) {

return 0;

}

}

class B extends A{

private int method(int a,long b){

return 0;

}

}

重写要求 两个方法的方法签名相同。至于修饰符,范围相同或者比父类的范围小即可。

所以 B的method方法根本不是重写的A 的method方法,而是重载。重载要求方法名相同,参数返回值随便改。

所以,参数不一定改成long,随便什么都是重载。也不是必须加@override,写这个表示eclipse会给你去父类检查重写的对不对,不写就自己检查呗。

重写是覆盖,就是子类的替换了父类的,正常用方法,调的是子类的,所以重写完还是一个方法

重载是写多个同名方法,但可以给的参数不同,功能类似,所以正常调哪个方法,要看参数怎么写的,跟继承无关,区别是重载后变成多个方法。

JAVA中 什么是方法签名

方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。

注意,方法签名不包括方法的返回类型。不包括返回值和访问修饰符。

在Java高手请进 什么是方法签名?

不是,方法签名是指方法的返回值、方法名及参数列表。

基本上等同于声明

java的方法签名是什么?

方法签名就由方法名+形参列表构成.所以你这个例子中是:

multiples(int n, int limit)

玉溪java培训学校告诉你Java中方法介绍?

方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void。

方法名:是方法的实际名称。方法名和参数表共同构成方法签名。

参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。

方法体:方法体包含具体的语句,定义该方法的功能。

如:1publicstaticintage(intbirthday){...}

参数可以有多个:1staticfloatinterest(floatprincipal,intyear){...}

注意:在一些其它语言中方法指过程和函数。一个返回非void类型返回值的方法称为函数;一个返回void类型返回值的方法叫做过程。

实例

下面的方法包含2个参数num1和num2,它返回这两个参数的最大值。

/**返回两个整型变量数据的较大值*/

在Java中,方法的定义方式类似于其他语言,尤其与C和C++很类似。定义的一般格式如下:

1修饰符返回类型名字(参数列表)块

其中,名字是方法名,它必须使用合法的标识符。

返回类型说明方法返回值的类型。如果方法不返回任何值,它应该声明为void。

Java对待返回值的要求很严格,方法返回值必须与所说明的类型相匹配。如果方法说明有返回值,比如说是int,那么方法从任何一个语句分支中返回时都必须返回一个整数值。

修饰符段可以含几个不同的修饰符,其中限定访问权限的修饰符包括public,protected和private。玉溪java培训认为public访问修饰符表示该方法可以被任何其他代码调用,而priVate表示方法只能被类中的其他方法调用。

请问这个签名 java 应该怎么解析

楼主好,MD5签名是消息摘要,用于验证是否被篡改,不能解密.方法是接收方用发送方的签名算法,重新计算一次签名,然后比对结果.

请看示例代码(原创,已通过测试):

import java.io.UnsupportedEncodingException;

import java.util.Map;

import java.util.TreeMap;

import org.springframework.util.DigestUtils;

/**

 * 仅用于演示.用于生产需完善细节处理.

 * @author breakenkinfe

 */

public class MD5Sign {

static String md5Sign(MapString,String data) throws UnsupportedEncodingException {

String stringSignTemp="";

for(String key:data.keySet()) {

if("sign".equals(key)) {

continue;//sign不参与签名

}

String value=data.get(key);

if(value==null||value.trim().isEmpty()) {

continue;//值为空不参与签名

}

stringSignTemp+=(key+"="+data.get(key)+"");

}

if(!stringSignTemp.isEmpty()) {

stringSignTemp=stringSignTemp.substring(0, stringSignTemp.length()-1);//去掉最后一个''字符

}

// System.out.println("待签明文:"+stringSignTemp);

return DigestUtils.md5DigestAsHex(stringSignTemp.getBytes("UTF-8")).toUpperCase();

}

static void validSign(MapString,String data) throws UnsupportedEncodingException {

String sign=data.get("sign");

boolean rs= sign.equals(md5Sign(data));

if(rs) {

System.out.println("签名正确:"+sign);

}else {

System.out.println("签名错误:"+sign);

}

}

public static void main(String[] args) throws UnsupportedEncodingException {

//报文数据

MapString,String data=new TreeMapString,String();//保证key按ascii升序排列

data.put("key3", "value3");

data.put("key1", "value1");

data.put("key4", " ");

data.put("key2", "value2");

System.out.println("数据集:"+data);

//发送方增加签名

String sign=md5Sign(data);

System.out.println("MD5签名:"+sign);//output:38727F53497BF85E0BA60DE403C61B83

data.put("sign", sign);

//接收方验证签名

validSign(data);//正确

data.put("sign", "38727F53497BF85E0BA60DE403C61B80");

validSign(data);//错误

}

}

/** 输出:

数据集:{key1=value1, key2=value2, key3=value3, key4= }

MD5签名:38727F53497BF85E0BA60DE403C61B83

签名正确:38727F53497BF85E0BA60DE403C61B83

签名错误:38727F53497BF85E0BA60DE403C61B80

*/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。