方法和c++中的函数类似,区别在于java的方法定义不限位置,而c++中的定义在主函数后面的函数调用前要声明:

求矩形面积方法示例:

public class MethodDemo{
public static void main(String[] args){
int area = getArea(5,6);
System.out.println("面积是:"+area);
}
public static int getArea(int w, int h){
return w * h;
}
}

输出:面积是:30

调用过程分析:

1.从main进入,开始执行程序

2.调用getArea方法,传递参数,得到返回值

3.输出

调用过程内存分析:

1.程序运行时期,必须进入内存,运行文件:编译后的class文件进入内存

2.class文件进入方法区

3.main方法进栈运行

4.getArea方法进栈运行

5.计算结果返回给调用者

6.getArea方法运行结束,出栈,释放内存资源

7.main输出后,出栈,释放内存资源,程序结束

注意事项:

1.方法不能定义在另一个方法内

2.方法名严格区分大小写

3.参数不能少传或多传,类型一致

4.return代表结束,不可以在return下面继续写,返回类型一致

方法重载:

具体的重载的概念就不介绍了,这里实现一个最简单的重载

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

再来一个难点:

public class MethodDemo{
public static void main(String[] args){
int[] arr = {1,2,3,4};
System.out.println(arr[2]);//
change(arr);
System.out.println(arr[2]);//
}
public static void change(int[] arr){
arr[2] = 100;
}
}

解释:

1.main方法进栈运行

2.在堆中开空间放入数组ARR并赋值

3.数组首地址传给栈中的ARR,即ARR指向存有这个数组的内存空间

4.调用change传递的参数方法实际上是内存地址,change中的ARR变量的地址和main中的ARR地址相同

5.在change方法运行结束后释放内存,但是通过地址改变的arr[2]彻底变了

通俗地理解:多个人合租房子,都拿到房屋地地址,某个人进入房子装修,以后进入的人看见的都是装修后的房子

Java学习笔记4(方法)的更多相关文章

  1. Java学习笔记之---方法和数组

    Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...

  2. 0019 Java学习笔记-面向对象-方法

    方法属于谁 方法要么属于类,要么属于对象 static修饰的方法属于类 没有static修饰的方法属于对象 方法只能定义在类里面,不能独立定义 不能独立的执行方法,要么通过类调用,要么通过方法调用 一 ...

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

    一.方法重载 如果子类中的方法与它的超类中的方法有相同的方法名,则称子类中的方法重载超类中的方法,特别是当超类和子类中的方法名和参数类型都相同时,在子类中调用该方法时,超类中的方法会被隐藏.考虑下面程 ...

  4. 【原】Java学习笔记008 - 方法(函数)

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 方法/函数 Met ...

  5. Java学习笔记之方法重载

    被重载的方法必须具有不同的参数列表.不能基于不同修饰符或返回值类型来重载方法. package welcome; public class TestMethodOverloading { public ...

  6. Java学习笔记之——方法重载

    方法重载: overload 1. 方法签名 组成:方法名(参数列表) 参数列表不同分为哪些情况? (1)有无参数 (2)参数的类型 (3)参数的个数 (4)参数的顺序(前提是类型不一样) 2.方法重 ...

  7. java学习笔记5(方法)

    方法: 1.如何创建方法 修饰符   返回值类型  方法名(参数){被封装的代码段} 2.方法的定义和使用的注意事项: a:方法不能定义在另一个方法里面: b:方法 名字和方法的参数列表,定义和调用时 ...

  8. Java学习笔记day05_方法重载

    1.方法的重载overload 在同一个类中, 允许出现同名的方法, 只要方法的参数列表不同即可. 参数列表不同: 参数个数不同, 参数类型不同, 顺序不同. public class MethodO ...

  9. Java 学习笔记之 方法内的临时变量是线程安全

    方法内的临时变量是线程安全: 方法内部的私有变量,是线程安全的. public class HasSelfPrivateNum { public void addI(String username) ...

  10. Java学习笔记之方法

     前言:如果把所有代码都写到main方法中,后果是什么?    1,结构混乱 不清晰    2,不能重用 方法:规则:方法写在类中,不能写在其它方法中.方法不能嵌套方法 如何定义方法: 访问修饰符 返 ...

随机推荐

  1. 【分享】iTOP4412开发板-Bluetooth移植文档

    [分享]iTOP4412开发板-Bluetooth移植文档 最近须要把Bluetooth移植到iTOP-4412 开发平台.查阅了相关资料,经过一段时间的研究.调试,最终成功的将蓝牙功能移植到了开发板 ...

  2. 解决Unable to find setter method for attribute: [commandName]

    最近学习springmvc的表单标签库,其中form标签主要用于渲染HTML表单,而form标签有很多属性,可供选择,其中一般来说(以前)最重要的是commandName属性,因为它定义了模型属性的名 ...

  3. Sql去重

    distinct:用于返回唯一不同的值. 注意:1.语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的. 2.distinct必须放在开头 如select disti ...

  4. es6+require混合开发,兼容es6 module,import,export之 加载css及公用date-main

    大家好!上篇文章已经介绍了搭建文件夹,以及加载js文件.现在讲一下加载css ,以及对baseUrl的理解 1.对项目结构的认知 一个项目的结构是根据项目的架构来决定的,当然也可以做到更智能,但是意义 ...

  5. 《程序设计语言——实践之路》【PDF】下载

    程序设计语言--实践之路>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382240 内容简介 本书在美国大学已有使用了十余年,目前被欧 ...

  6. Swift 开源项目练习应用

    小的View.动画实现练习 拥有着苹果先天生态优势的Swift自发布以来,各种优秀的开源项目便层出不穷.本文作者站在个人的角度,将2014年Swift开源项目做了一个甄别.筛选,从工具.存储.网络.界 ...

  7. Python 项目实践二(下载数据)第三篇

    接着上节继续学习,在本章中,你将从网上下载数据,并对这些数据进行可视化.网上的数据多得难以置信,且大多未经过仔细检查.如果能够对这些数据进行分析,你就能发现别人没有发现的规律和关联.我们将访问并可视化 ...

  8. json小结和fastjson包的实际json操作

    工作中,需要处理与另一方系统数据交换的问题,采用的是调用远程接口的方法,数据格式选择的是json,今天就来聊一聊json,主要分析json数据和java Bean之间的转换问题. 一.json是什么 ...

  9. lesson - 4 笔记 /inode / suid / sgid / sbit / chmod /umask / chown / rwx / wc /grep / tr / sort / cut /which / whereis / locate / find / ln /

    一.帮助+基本文件管理+用户管理 1.怎么查看命令帮助 ls --help man ls :查看命令/man 5 file:查看配置文件 二.基本文件管理,通过{查,建,删,改} 四个维度介绍了不同的 ...

  10. Django2中文文档--目录及介绍部分

    Django2文档-文档结构 我是按照官方文档的格式进行翻译,所以格式根官方格式一致 如果大家发现哪些地方有问题可以联系我 2426525089@qq.com 或者加入QQ群跟我一起翻译,群号码: 2 ...