学java被“劝退”的第七天

本文详细介绍了Java编程中的面向对象特性,包括封装、继承和多态,并重点讲解了方法的概念、作用、特点及定义。通过实例展示了方法如何提高代码复用性和安全性,以及如何进行方法重载。同时,探讨了方法的递归调用,分析其优缺点。本文适合初学者深入理解Java编程基础。
摘要由CSDN通过智能技术生成
前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从“入坑”到“退坑”每一天……
  • 计划任务
  • 完成任务
任务描述:

java是一个面向对象oop的语言,最重要的三大特性封装,继承,多态,在初期
阶段,其实我们也使用到了面向对象的思想,但是我们不自知罢了,今天我开始
学习方法,方法我们从一开始学习java就在频繁使用,
一个类中方法的定义就是封装的体现
一个类方法的方法重载就是多态的一种体现

知识点归纳:
方法是什么?

方法是解决问题的办法,是实现需求和功能的代码段,

方法的作用?
  1. 提高代码复用性
如果我们没有去将这段代码制作成方法,那是不是每次比较两个数大小的
时候,我们都要重新再写一段逻辑去判断呢?但是封装成方法之后,每次遇
到这种需求时,只要调用这个方法就可以了呢!
//需求 : 获取两个数中的较大值
   public static int getMax(int x,int y){
           return x>y?x:y;
  }
  1. 提高代码的安全性
因为这个判断逻辑是我们封装过的,是不会被别人随意篡改的,相对于暴露出
的代码是安全的.
方法的特点

方法是不调用不执行,并且不能嵌套,定义的位置是在类中,主(main)方法外

方法的定义
没有返回值的方法
           修饰符 void 方法名(参数列表){
               方法体;
           }
有返回值的方法
            修饰符 返回值类型 方法名(参数列表){
                实现功能的代码段;
               return 返回值;
           }

分析
返回值 : 方法执行完毕之后,是否需要得到一个结果(值),如果是定义为有返回值的方法并且返回这个结果,如果不需要,定义为没有返回值的方法
修饰符 : 访问权限修饰符 --> 先定义为 public static
返回值类型:如果是有返回值类型的方法,定义的为返回的值的数据类型 --> return后面数据的类型
数据类型:可以为任意类型
方法名:区分方法的标识,调用方法需要根据方法名调用
return: 1)提前结束方法 2)带出返回值,返回给方法的调用处在有返回值类型的方法中必须存在
void: 代表这是没有返回值类型

封装方法的步骤
  1. 分析需求
  2. 返回值(需不需要返回数据给调用者)
  3. 参数(不能确定的参数)
  4. 方法名(见名知意)
方法的调用
  1. 赋值调用 数据类型 变量名 = 方法名(参数列表);
int max = getMax(100,200);//将返回值赋值给变量来接收
System.out.println(max);
  1. 输出调用 System.out.println(方法名(参数列表));
System.out.println(getMax(100,200));//打印语句直接输出
return关键字
  1. 提前结束方法
  2. 同时带出返回值–>返回给方法的调用处
  3. 有返回值类型的方法中必须存在return,而且必须带出返回值
  4. 没有返回值类型的方法中可以存在return,但是不出带出返回值,只能提前结束方法
方法的内存分析

本图出自优极限 殷姐
在这里插入图片描述

方法的重载

同一个类中的多个方法,方法名相同,参数列表不同

  • 方法重载的特征
    • 同一个类中的多个方法
    • 方法名相同
    • 参数列表不同|方法签名不同
      • 参数个数不同
      • 参数类型不同
      • 不同类型的参数顺序不同
同一个方法可以实现多种可能性,我愿称之为方法的重载
//2个int
   public static int getSum(int i,int j){
       System.out.println("2个int");
       System.out.println(i+j);
       return i+j;
   }
   //3个int
   public static void getSum(int x,int y,int z){
       System.out.println("3个int");
       System.out.println(x+y+z);
   }
   //2个double
   public static void getSum(double d1,double d2){
       System.out.println("2个double");
       System.out.println(d1+d2);
  }
  • 重载方法的调用
    1.方法的重载与方法的修饰符无关
    2.方法的重载与方法的返回值类型无关
    3.方法的重载与参数名无关
方法的递归

自己调用自己
优缺点:

  1. 优点 : 简化代码结构
  2. 缺点 : 容易造成内存的溢出
  3. 关于递归: 运行效率慢,吃内存。一般在企业开发中用不到。
  4. 循环的效率远远高于递归。
  5. 递归解决效率慢的方式:
    • 将一些重复计算的中间结果 暂存起来
    • 使用尾递归 (不是所有的递归都可以写尾递归)

结构:

  • 递归头: 停止自己调用自己的条件
  • 递归体: 自己调用自己
  • 临界条件 : 递归头: 停止自己调用自己的条件
  • 递归前进段 : 不停的自己调用自己
  • 递归后退段 : 将结果返回上一层
    本图出自优极限 殷姐在这里插入图片描述
//需求 : 求某个数的阶乘   5!=5*4!=5*4*3*2*1
   //返回值 : int
   //参数 : int i
   public static int recursion(int i){
       if(i==1){
           return 1;
       }
       return i*recursion(i-1);
   }

这是今天的思维导图:
在这里插入图片描述

总结:

今天是愉快的一天……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值