java学习笔记 --- 方法

一、方法
   (1)方法:就是完成特定功能的代码块。
      注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。
   (2)格式:
      修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
       方法体语句;
       return 返回值;
      }

     修饰符:目前就用 public static。
      返回值类型:就是功能结果的数据类型
      方法名:就是起了一个名字,方便我们调用该方法。
      参数类型:就是参数的数据类型
      参数名:就是变量

    参数分类:
         实参:实际参与运算的数据
         形参:方法上定义的,用于接收实际参数的变量

     方法体语句:就是完成功能的代码块
        return:结束方法
        返回值:就是功能的结果,由return带给调用者。
   (3)两个明确:
      返回值类型:结果的数据类型
      参数列表:参数的个数及对应的数据类型
  
   (4)方法的注意事项
      A:方法不调用不执行
      B:方法之间是平级关系,不能嵌套定义
      C:方法定义的时候,参数是用,隔开的
      D:方法在调用的时候,不用在传递数据类型
      E:如果方法有明确的返回值类型,就必须有return语句返回。

二、方法的重载

  在同一个类中,方法名相同,参数列表不同,与返回值无关。

  说明:参数列表不同(3种情况)

      a:个数不同

      b:顺序不同

      c:数据类型不同

三、权限修饰符

  

修饰符 当前类 同一包内 子孙类 其他包
public Y Y Y Y
protected Y Y Y N
default Y Y N N
private Y N N N

  说明:public修饰符,对所有类可见

     protected(指受保护的)当前类,同一包下其他类及其子类能访问

     default(默认修饰符,不写表示默认)只能当前类或者同一包下的其他类访问

     private(私有)只能当前类访问

四、方法的执行过程

五、方法的内存加载

class MethodDemo
{
    public static void main(String[] args)
    {
        int a = 3;
        int b = 4;
        int sum = getSum(a,b);
        System.out.println("sum="+sum);
    }
    public static int getSum(int a , int b)
    {
        return a + b;
    }
}

内存示意图

  

说明:首先会加载main方法加载进栈内存中,并执行main方法中的代码,分别给a变量开辟空间并存放3,给b变量开辟空间存放4。当程序执行到int sum = getSum(a,b);时,会将getSum函数加载进栈内存中,同样在getSum所属的栈区域中开辟a和b变量空间,接受main方法中的getSum(a,b);传递的值。然后执行getSum函数中的代码,当getSum函数执行结束后,函数会出栈(弹栈)。程序回到main方法的调用语句int sum = getSum(a,b);处,并将getSum方法执行完返回的结果赋值给sum变量,程序继续往下执行。打印sum的值。

时间: 2024-10-06 09:03:25

java学习笔记 --- 方法的相关文章

Java学习笔记-方法总结

1.程序模块化和可重用性是软件工程的中心目标之一.Java提供了很多有助于完成这一目标的有效结构.方法就是一个这样的结构.2.方法头指定方法的修饰符,返回值类型,方法名和参数.3.方法可以返回一个值.返回值类型是方法要返回的值的数据类型.如果方法不返回值,则返回值类型就是关键字void.4.参数列表是指方法中参数的类型,次序和数量.方法名和参数列表一起构成方法签名.参数是可选的,也就是说,一个方法可以不包含参数.5.return语句也可以用在void方法中,用来终止方法并返回到方法的调用者.在方

Java学习笔记-方法引用

方法引用(Method Reference) 上一篇中记录了Lambda表达式,其可以创建匿名方法.当Lambda表达式只是调用一个存在的方法时,可以采用方法引用(JDK8具有的特性).如下: 1 public class Person { 2 3 public enum Sex { 4 MALE, FEMALE 5 } 6 7 String name; 8 LocalDate birthday; 9 Sex gender; 10 String emailAddress; 11 int age;

Java学习笔记之方法重载,动态方法调度和抽象类

一.方法重载 如果子类中的方法与它的超类中的方法有相同的方法名,则称子类中的方法重载超类中的方法,特别是当超类和子类中的方法名和参数类型都相同时,在子类中调用该方法时,超类中的方法会被隐藏.考虑下面程序: 1 class A 2 { 3 int i, j; 4 A(int a, int b) 5 { 6 i = a; 7 j = b; 8 } 9 10 // display i and j 11 void show() 12 { 13 System.out.println("i and j: &

java学习笔记10--泛型总结

java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note10.html,转载

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

java学习笔记8--接口总结

接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note8.html,转载请注明源地址. 生活中的接口: 什么是接口? 一个Java接口是一些方法特

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

Junit4学习笔记--方法的执行顺序

package com.lt.Demo.TestDemo; import java.util.Arrays; import java.util.Collection; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; im

java学习笔记(三)java中的修饰符abstract、static与final

一.四种访问级别的访问范围 访问级别 访问修饰符 同类 同包 子类 不同的包 公开 public 受保护 protected 默认 没有访问修饰符 私有的 private 二.使用abstract修饰符需要遵守的语法规则 1.抽象类中可以没有抽象方法,但是包含抽象方法的类必须定义为抽象类,即用abstract修饰: 2.抽象类跟抽象方法不能被final修饰符修饰: 3.抽象类中可以有非抽象方法,因为继承抽象类的子类必须重写父类中所有的抽象方法,因此抽象类中不能有抽象构造方法和抽象静态方法: 4.