public class Test2 {
创新互联公司专注于中大型企业的成都网站建设、网站建设和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户1000+,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!
public void pt(){
System.out.println('X');
}
public int pt(char c){
return c;
}
public String pt(int i,char c){
return c + "=" + i;
}
public static void main(String[] args){
Test2 t = new Test2();
t.pt();
System.out.println(t.pt('X'));
System.out.println(t.pt(88,'X'));
}
}
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
以java为例,我们编写一个方法重载的例子。
参数列表的不同体现在以下两点:
1、参数的类型不同
2、参数的个数不同
具体例子如下:
/iknow-pic.cdn.bcebos.com/54fbb2fb43166d22e1985e864a2309f79052d231"target="_blank"title="点击查看大图"class="ikqb_img_alink"/iknow-pic.cdn.bcebos.com/54fbb2fb43166d22e1985e864a2309f79052d231?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/
在java中完成方法重载需要的具体规范如下:
1、方法名一定要相同。
2、方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
如果参数个数不同,就不管它的参数类型了;如果参数个数相同,那么参数的类型必须不同。
3、方法的返回类型、修饰符可以相同,也可不同。
模拟退火算法
Java基础06-方法的定义、声明、使用、重载
1.方法
方法是Java中一个明名的代码块,如同在数学中用到的函数,其他语言常常直接称为函数。
方法 通常是为了完成某一个特定功能,把程序中特定的代码组合到一起而构成的,其主要好处体现在两个方面:
一个是重用,另一个是使程序结构更加清晰。
方法的声明语法如下:
[修饰符] 返回值类型 方法名(形参列表){
方法体;
}
在Java 中,修饰符为访问者的权限大小,public 、protected、default、private、权限范围不同。
返回值类型 为数据类型 也就是说 你让方法完成了某项功能要不要返回一个结果,或者说你让程序做事
要不要程序给你个结果,所以返回值类型可以写成void即不需要返回什么,
返回值类型可以是基本数据类型也可以是引用类型
如果方法有返回值,那么方法体中必须写上“return 返回值;”,返回值的类型必须和方法上规定的返回值类型一致,
方法名可以重复和但不能使用关键字,方法中的形参其实就是你想让方法完成功能,给方法传输参数,形参是传入参数的类型
的一种表达,就好比你要让方法算两个人年龄的综合,你的传入两个int类型的参数,不然数据无法计算
例如:
public int all(int age1,int age2){
return age1+age2;
}
方法返回的是两个数的和。
无参数方法很简单:
注意:静态方法调用需要加上静态修饰符static
例如:
图中c=function();
说明function()本身就是一个值;
所以可以省略一定的步骤:
直接System.out.print(function());
输出的结果照样是:15
注意:方法有参数不一定有返回值,有返回值不一定有参数,并且方法执行遇到return就结束了,不会执行下面代码,并且return下面写的代码会报错。
例如:
return 0;
int a=0;
语法错误,编译不通过
2.方法的使用。
(1).注意方法的修饰符,决定了方法的使用范围,
(2).方法的调用:方法也可以自己调用自己,(递归)。
(3).方法如果没有返回值也可以return;只不过return后面不加参数
下面将分别讲解重载与重写:
1、重载overloading
1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现。
2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
示例代码:
public class Dog {
Dog()
{
this.bark();
}
void bark()//bark()方法是重载方法
{
System.out.println("no barking!");
this.bark("female", 3.4);
}
void bark(String m,double l)//注意:重载的方法的返回值都是一样的,
{
System.out.println("a barking dog!");
this.bark(5, "China");
}
void bark(int a,String n)//不能以返回值区分重载方法,而只能以“参数类型”和“类名”来区分
{
System.out.println("a howling dog");
}
public static void main(String[] args)
{
Dog dog = new Dog();
//dog.bark();
//dog.bark("male", "yellow");
//dog.bark(5, "China");
}
}
2、重写overriding
1) 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
2) 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
3) 子类函数的访问修饰权限不能少于父类的;
示例代码:
public class Base
{
void test(int i)
{
System.out.print(i);
}
void test(byte b)
{
System.out.print(b);
}
}
public class TestOverriding extends Base
{
void test(int i)
{
i++;
System.out.println(i);
}
public static void main(String[]agrs)
{
Base b=new TestOverriding();
b.test(0)
b.test((byte)0)
}
}
这时的输出结果是1 0,这是运行时动态绑定的结果。