当前位置:   article > 正文

java使用方法重载求最大值_java的方法/调用/重载/递归

利用方法重载求最大值

方法

特点:

​ 1.方法不能嵌套,定义在类中方法外

​ 2.不调用不执行

定义:

1.有返回值类型的方法

​ 修饰符 返回值类型 方法名(参数列表){

​ 处理功能的代码段;

​ return 返回的结果;

​ }

​ 修饰符: 访问权限修饰符,先默认为public static

​ 返回值类型: 如果一个方法执行过后需要返回一个结果给调用者,这个方法就应该定义为一个有返回值类型的方法

​ 方法执行过结果的数据类型(基本|引用数据类型)

​ 方法名:方法的名字 调用方法的时候需要根据方法名

​ 标识符符合标识符的命名规范|规则

​ 参数列表:可以没有参数,可以有多个参数

​ 方法定义时候|执行过程中,不确定的数据,可以定义在方法的参数列表上

​ 参数: 数据类型 参数名1,数据类型 参数名2,...(相当于一个局部变量的声明,作用域为当前定义的方法中)

​ {}: 实现功能的代码

​ return: 1)返回值数据给方法的调用者 2)提前结束方法

​ 方法的调用: 方法名(参数) -->执行方法中的代码

​ 1.直接调用 方法名(实际参数) -->无法使用返回值

​ 2.赋值调用

​ 3.输出调用 System.out.println(getPI());

​ 2.没有返回值类型的方法

​ 修饰符 void 方法名(参数列表){

​ 方法体语句;

​ [return;] 可以选择性的添加

​ }

​ void:没有返回值类型的方法

​ return: 提前结束方法

​ 调用方式:

​ 直接调用

参数:​ 形式参数:形参 -->定义方法时候()中的参数 --> 局部变量的声明

​ 实际参数:实参 -->调用方法时候()中的参数 --> 局部变量的赋值

​ 形参和实参要一一对应

​ 数据类型要一致

​ 顺序要一致

​ 个数要一致

//1.直接调用 getPI();

//2.赋值调用 double d=getPI();

System.out.println(d);

//3.输出调用 System.out.println(getPI());

System.out.println(getSum(3,5));

//直接调用没有返回值类型的方法 print();

print();

print();

print();

getSum2(6,5);

}

//返回一个pi的值 //返回值:需要 double 参数:没有 public static double getPI(){

System.out.println("有返回值类型没有参数的方法");

return 3.1415926;

}

//求两个int整数的和 //返回值:int 参数:int a,int b public static int getSum(int a,int b){

System.out.println("有返回值类型有参数的方法");

return a+b;

}

//打印5行5列的星星 //返回值:不需要 参数:没有参数 public static void print(){

for(int i=1;i<=5;i++){

for(int j=1;j<=5;j++){

System.out.print("* ");

}

System.out.println();

}

}

//求某个返回值的所有整数的和 //返回值:没有 参数:需要 int min,int max public static void getSum2(int min,int max){

if(min>max){

System.out.println("第一个参数必须<=第二个参数");

return;

}

int sum=0;

for(int i=min;i<=max;i++){

sum+=i;

}

System.out.println(sum);

}

求两数的大小

public static void main(String[] args){

System.out.println(getMax(7,3));

}

//获取两个数中的较大值 //返回值:有 int 参数:int x,int y public static int getMax(int x,int y){

return x>y?x:y;

}

//获取int类型数组中的最大值和最小值

//比较两个数据是否相同 //返回值:boolean|String 参数:2个 double public static String equals(double d1,double d2){

String str="";

if(d1==d2){

//return "相等"; str="xiangdeng";

}else{

//return "不相等"; str="buxiangdeng";

}

return str;

}

如何判断有无返回值

问:方法定义完成后,w,h有没有默认值?

​ 没有默认值 方法调用时候,通过实参赋值

​ 程序执行过程当中,方法的内存分析:(数据的来源):

​ 看图片

​ return:

​ 根据所在不同类别的方法中作用不同

​ 有返回值方法: 1.带出返回值 2.结束方法

​ 没有返回值方法: 1.结束方法

​ 不可达语句:

​ 1.会执行的break出现的语句

​ 2.会执行的return出现的语句

​ 3.死循环后的语句

​ 4.会执行的continue出现的语句

​ 5.while..false中的内容

​ 兼容的问题:

​ 1.形参和实参: 实参<=形参

​ 2.返回值数据的类型,返回值类型,结束数据类型:

​ 接收数据的类型>=返回值类型>=结果的类型

方法的重载:

重载是方法重要的特性

​ 一个类中多个方法,方法名相同,参数列表不同|方法签名不同,这些方法就构成方法的重载特性

​ 方法签名: 方法名+参数列表 方法名(参数)

​ 参数列表不同:

​ 参数的类型不同

​ 参数的个数不同

​ 不同类型的参数的位置|顺序不同

​ 重载方法与修饰符无关

​ 重载方法和返回值类型|有无返回值无关

​ 方法的重载和参数的名字无关

​ 重载方法如何调用:

​ 根据实参进行决定

​ 类中的方法其实是封装的一种体现

​ 方法的重载就是多态的体现

public static void main(String[] args){

//test(1,""); test("",1);

}

public static void test(int a){

System.out.println(" test(int a)");

}

/*public static boolean test(int a){return false;}*/

public static void test(int i,String s){

System.out.println(" test(int i,String s)");

}

public static void test(String s,int x){

System.out.println(" test(String s,int x)");

}

方法的递归:(理解)

/* 自己调用自己递归头: 停止自己调用自己的条件递归体: 自己调用自己临界条件: 递归头递归前进段:从弟子调用自己到临界条件之间递归后推段:结果返回给调用的上一层方法的定义和使用 *****方法的内存分析 理解方法的重载 ***方法的递归(了解)*/

public static void main(String[] args){

//System.out.println(rec(-1));//错误

print(7);//调用并且打印7行

}

//阶乘: 求 某个数的阶乘 5! = 5*4*3*2*1 //返回值:要int 参数:int i public static int rec(int i){

if(i==1){

return 1;

}

return i*rec(i-1);// }

//打印几行乘法表:参数传几,打印前几行乘法表 //返回值:不需要 参数:需要 int i 行数 public static void print(int i){

if(i==1){

System.out.println("1*1=1");

return;

}

print(i-1);

//打印当前行 for(int j=1;j<=i;j++){

System.out.print(j+"*"+i+"="+i*j+"\t");

}

System.out.println();

}

递归的展示图面向过程与面向对象之间的区别:

都是思想,思维方式

面向过程:"我该如何实现?" 然后一步一步完成就可以了

面向对象:"我该找谁来完成?"只关注对象,不关注实现步骤

面向对象是依托于面向过程的

面向对象的优点:

1.可以将复杂的问题简单化

2.更贴近与现实生活的的思维方式

3.面向对象更贴近于管理者的角度,面向过程贴近与执行者

面向对象提出2个概念:

让生活与程序建立联系,类,对象

类: 一系列事物的模板|图纸 ,一系列事物|对象抽取出共性定义在类中,根据这个类创建的对象都具有这些特性

对象: 生活中真实存在的每一个事物 粉色 路虎 先定义类,才能根据类构建对象 先有图纸才有车

自定义类: 1.狗能做什么? 功能: 跑 叫 摇尾巴 跳 动词 -->成员方法定义功能

2.手机都有什么特点|特征? 属性: 品种 颜色 价格 大小 名词 -->成员变量定义属性

class dog{ //成员变量 修饰符 数据类型 变量名;

//不加static的方法就是成员方法

}

//创建一个.java文件建立Phone方法

public class Phone{

//颜色 public String color;

//品牌 public String brand;

//价钱 public double price;

//打电话 public void call(){

System.out.println("从前有一个长得像电话,出门就被打了..."); }

}

//创建文件并用Phone包

public class PhoneTest{

public static void main(String[] args){

//1.创建对象 根据Phone07这个类创建了一个手机对象,对象名是p1|p1代表这个手机对象|根据p1找到使用这个对象

Phone p1=new Phone(); //1个

Phone p2=new Phone(); //2个

Phone p3=new Phone(); //3个

//成员属性不赋值存在默认值

p1.color="粉色";

p1.brand="苹果";

p1.price=10000;

System.out.println(p1.color);

System.out.println(p1.brand);

System.out.println(p1.price);

//使用功能 p1.call();

}

}

因为该Phone包在同文件夹中,所以直接用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/468135
推荐阅读
相关标签
  

闽ICP备14008679号