java基础之方法

9.方法

9.1什么是方法?

功能代码只需要输入一遍

要使用这个功能,只需要给这个功能传递具体的数据

这个功能完成之后返回一个最终结果

这样的代码就可以重复使用,提高代码复用性

方法定义在类体当中,在一个类体当中可以定义多个方法,方法编写的位置没有先后顺序,可以随意。

方法体由java语句构成,方法体当中的代码遵守自上而下的顺序一次执行。

方法体当中不能再定义方法。

方法就是一个代码片段,并且这段代码片段可以完成某个指定的功能,并且可以被重复的使用。

9.2方法的定义

9.2.1有具体返回值类型的方法的定义
[修饰符列表] 返回值类型 方法名(形式参数列表){
	方法体;
}

对以上的语法结构进行解释说明:

修饰符列表:

​ public: 访问权限足够大,公共的

​ static: 静态修饰符(面向对象中讲)

返回值类型:

​ 就是数据类型(目前使用的基本数据类型…)

方法名:

​ 见名知意 (小驼峰命名法)

形参列表:

​ 形参中起决定性作用的是形参的数据类型,形参的名字就是局部变量的名字

​ 方法在调用的时候,实际给这个方法传递的真实数据被称为:实参

实参和形参列表必须数量相同,类型对应相同

方法体:

​ 方法体必须由大括号括起来,方法体中你的代码有顺序,遵循自上而下的顺序依次执行。

​ 并且方法由java语句构成,每一个java语句以“;”结尾。

9.2.2有具体返回值类型的方法的定义:
[修饰符列表] void 方法名(形式参数列表){
	方法体;
}	
9.2.3定义一个方法需要明确的两点:

1)明确返回值类型:没有具体返回值类型

2)明确参数类型以及参数个数

9.3方法的调用

类名.方法名(实参列表);//这是一条java语句,表示调用某个类的某个方法,传递这样的实参

方法只有在调用的时候才会执行,只定义不调用是不会执行的。

方法的修饰符列表当中有static

方法调用的时候实参和形参要求能够进行相应的自动个数对应相同,数据类型对应相同

类型不同的时候要求能够进行相应的自动类型转换

调用本类中static修饰的方法时,类名可以省略(只有这种情况可以不加

9.4方法在执行过程当中,JVM中内存的分配和变化

9.4.1.内存的分配

方法只定义不调用,是不会执行的,并且在JVM中也不会给该方法分配“运行所属”的内存空间。只有在调用这个方法的时候,才会动态的给这个方法分配所属的内存空间。

9.4.2.内存的分配

在JVM内存划分上有这样三块主要的内存空间:

方法区内存

堆内存

栈内存

9.4.3关于栈数据结构:

数据结构反映的是数据的存储形态

常见的数据结构:

数组、队列、栈、链表、二叉树、哈希表…

概念:

stack,是一种数据结构

栈帧永远指向栈顶元素

栈顶元素处于活跃状态,其他元素静止

术语:

压栈/入栈/push

弹栈/出栈/pop

特点:

先进后出

后进先出

9.4.4方法执行的时候代码片段存在哪里?方法执行的时候执行过程的内存在哪里分配?

方法代码片段属于.class的一部分,字节码文件在类加载的时候,将其放在方法区中。所以JVM中的三块主要的内存空间中方法区内存最先有数据。存放了代码片段。

代码片段虽然在方法区内存当中只有一份,但是可以被重复调用。每一次调用这个方法的时候,需要给该方法分配单独的活动场所,在栈内存中分配。【栈内存中分配方法运行的所属内存空间】

方法在调用的瞬间,会给该方法分配的内存空间,会在栈中发生压栈(给方法分配内存)动作,方法执行结束之后,给该方法分配的内存空间全部释放,此时发生弹栈(释放该方法的内存空间)动作。

局部变量在方法体中声明,局部变量运行阶段内存在栈中分配。

9.5方法的重载

没有使用重载时:

package 重载;
public class 重载 {

        public static void main(String[] args) {
          int a = sumInt(1,2);
          System.out.println(a);
        
          double b = sumDouble(1.0,2.0);
          System.out.println(b);
        
          long c = sumLong(1L,2L);
          System.out.println(c);
        }
       //定义一个方法,计算int类型的求和
      public static int sumInt(int a, int b){
      return a+b;
}
       //定义一个方法,计算double类型的求和
       public static double sumDouble(double a, double b){
       return a+b;
       }
       //定义一个方法,计算long类型的求和
       public static long sumLong(long a, long b){
       return a+b;
}
}

以上内容方法虽然功能不同,但是功能是相似的,都是求和。在以下程序当中功能相似的方法,分别起了三个不同步名字,对程序员来说,调用方法的时候不方便,程序员需要记忆更多的方法,才能完成调用。【不方便且不美观】

重载:虽然功能不同,但是“功能相似”时,可以让程序员使用这些方法的时候就像在使用同一种方法一样,这样程序员以后编写代码比较方便,也不需要记忆更多的方法名,代码也会很美观。

使用重载后:

重载2public class 重载2 {

      public static void main(String[] args) {
          a.b(true);
          a.b(2.0);
          a.b(null);
      }
}
class a{
       public static void b(byte c){
          System.out.println(c);
  }
    
   public static void b(short c){
          System.out.println(c);
      }
     
       public static void b(char c){
          System.out.println(c);
      }
      
       public static void b(boolean c){
          System.out.println(c);
      }
       
       public static void b(long c){
          System.out.println(c);
      }
        
       public static void b(double c){
          System.out.println(c);
      }
         
       public static void b(String c){
          System.out.println(c);
      }
           
       public static void b(int c){
          System.out.println(c);
      }
}

**

to be continued…

**

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java方法基础实验的介绍和演示: Java方法是一段可重用的代码块,可以接受输入并返回输出。在Java中,方法是类的一部分,可以在类中定义和调用。Java方法的语法如下: ```java 修饰符 返回类型 方法名(参数列表) { // 方法体 return 返回值; } ``` 其中,修饰符可以是public、private、protected或默认,返回类型可以是任何Java数据类型,方法名是标识符,参数列表是一组用逗号分隔的输入参数,方法体是一组执行语句,return语句用于返回方法的输出。 下面是一个Java方法的例子: ```java public class Calculator { public static int add(int a, int b) { return a + b; } } ``` 这个例子定义了一个名为add的静态方法,接受两个整数作为输入,返回它们的和。在另一个类中,可以通过以下方式调用这个方法: ```java int sum = Calculator.add(2, 3); ``` 这个调用将返回5,并将其赋值给变量sum。 现在,我们来进行一个Java方法基础实验。假设我们要编一个程序,计算两个数的平均值。请按照以下步骤进行操作: 1.创建一个名为Average的类。 2.在Average类中定义一个名为calculateAverage的静态方法,接受两个double类型的参数,返回它们的平均值。 3.在calculateAverage方法中,使用以下代码计算平均值: ```java double average = (num1 + num2) / 2; ``` 其中,num1和num2是方法的输入参数。 4.在另一个类中,调用calculateAverage方法,并将其输出到控制台。 下面是完整的Java代码: ```java public class Average { public static double calculateAverage(double num1, double num2) { double average = (num1 + num2) / 2; return average; } } public class Main { public static void main(String[] args) { double num1 = 3.5; double num2 = 4.2; double average = Average.calculateAverage(num1, num2); System.out.println("The average of " + num1 + " and " + num2 + " is " + average); } } ``` 输出结果为: ``` The average of 3.5 and 4.2 is 3.85 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值