Java中方法的学习
目录
- 概述
- 第一章:Java中的方法是什么意思
- (1)Java中方法的定义
- ①方法的修饰符
- ②方法的返回值类型
- ③方法名
- ④方法的参数列表
- ⑤方法体
- 第二章:方法的重载和重写
- (1)方法的重载
- (2)方法的重写
- 第三章:Java中方法的调用
概述
Java的基本单位是类,类中包含五个部分,这篇写的是方法。
(1)变量
(2)方法
(3)构造器
(4)初始化块
(5)内部类
第一章:Java中的方法是什么意思
①方法是代码语句的集合体,这些语句集合起来实现一些特定功能。
②联系生活我们可以这样理解:一个个代码是文章中的词语,词语(代码)组成句子(代码语句);句子(代码语句)组成段落(方法);段落(方法)组成文章(类)。
(1)Java中方法的定义
自定义方法的五要素:修饰符,返回值类型,方法名,参数列表,方法体
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){Java语句
}
如下:
public static int myMethod(int num1, int num2) {return num1 > num2 ? num1 : num2;}
①方法的修饰符
修饰符的作用:
1)如public,访问权限修饰符的作用:public是公开的意思,代表其他类和方法可以访问(使用)被public修饰的方法。
2) 如static,静态修饰符的作用:static是静态的意思,修饰后可直接访问;不被static修饰,就需要用对象来访问了。
3)如final,final有最终的意思,final修饰的方法为最终的方法,该方法不能被重写;
②方法的返回值类型
1)无返回值的类型 void:void表示调用方法后无返回数据。return后面没有写返回数据时,仅仅表示方法体的结束。
2)有返回值:如果方法中需要得出的结果(返回值),。那么定义方法时必须根据结果指定返回数据的数据类型。返回值类型可以是基础类型数据,也可以是引用类型数据并且在方法执行的最后一句必须是return语句
例子:无返回值方法
public static void m1() {System.out.println("方法有五要素组成"); //①/*在没有返回值的方法内部,如果有需要也可以定义return关键字,语法没有任何问题,但是使用的情况并不多。*/return;}
例子:有返回值方法
public static String m2() {//自定义方法内部发起对别的自定义方法的调用m1();return "method";//错误: 无法访问的语句//分析:在同一作用域中,return语句的后面不能定义任何代码,因为永远不可能被执行到//System.out.println("我可以被执行吗?");}
③方法名
1)方法名可以自己定义,也就是自己取名字需要尽量做到望文生义。
2)命名规范:首字母小写。多个单词时第一个单词首字母小写,后续单词首字母大写。
④方法的参数列表
1)方法中可以带参数也可以不带参数
2)形参:形式参数,定义方法时写在括号里的都是形参。被调用时才会被分配内存空间,调用结束就会释放,属于局部变量。
3)实参:实际参数,可以是常量、变量或表达式。在调用有参方法时,方法名后面括号中的参数就是“实际参数”,实参变量对形参变量的数据传递是“值传递”,也就是只能由实参传递给形参,而不能由形参传递给实参。
例子:无参数方法
public static String m2() {//自定义方法内部发起对别的自定义方法的调用m1();return "method";}
例子:有参数方法
//有参方法public static int m4(int num1, int num2) {return num1 > num2 ? num1 : num2;}
⑤方法体
1)声明方法时大括号和大括号中的语句内容。
public class Test {public static void main(String[] args) {System.out.println("{大括号和它之间的内容就是main方法的方法体}");}
}
第二章:方法的重载和重写
(1)方法的重载
满足方法重载的要求:
1).重载的方法必须被定义在同一个类中
2).重载方法的名字必须相同
3).重载方法的形参列表必须不同(类型、个数、位置)
例子:方法的重载
4)重载是静态绑定,编译时就根据实参类型确定了调用哪个方法。
//自定义方法:计算两个整数的和值public static void sum(int a,int b){System.out.println("两个整数求和");}//自定义方法:计算两个小数的和值public static void sum(double d1,double d2){System.out.println("两个小数求和");}//自定义方法:计算三个整数的和值public static void sum(int num1,int num2,int num3){System.out.println("三个整数求和");}//上述三个sum方法彼此之间构成方法的重载现象
(2)方法的重写
1)重写(override):也称覆盖。重写是子类对父类非静态,非private,非final,非构造方法的实现过程进行重新编写,重写的目的在于根据对象的类型不同而表现出多态,而静态方法不需要创建对象就可以使用。没有了对象,重写所需要的“对象的类型”也就没有存在的意义了。
2)修饰符,返回值类型,方法名,参数列表要完全一致,返回值(JDK7以后,被重写的方法返回值类型可以不同,但是必须是具有父子关系的)即外壳不变,核心重写。
3)重写的方法不能使用限制更严格的访问权限修饰符。比如被重写的方法修饰符是 protected,那么重写的方法只能是 protected 或者 public修饰。
4)重写后的方法不能抛出比父类中更高级别的异常。
5)子类中通过 super 关键字来调用父类中被重写的方法。
6)分四点
1.子类继承普通类,并非一定要重写父类方法
2.子类继承抽象类,子类是抽象类,不要求重写父类方法。子类是普通类要全部重写。
3.接口实现。子接口可以继承父接口的所有常量和抽象方法,子接口还可以继承其他父接口也就是可以扩展父接口的方法;
4.如果是一个子抽象类,可以部分或全部实现父接口的方法;如果子类不是抽象类,则要求子类一定要实现父接口中定义的所有方法(接口中的所有方法均为抽象方法)。
第三章:Java中方法的调用
太长了直接点链接看这篇==》方法之间的调用
Java中方法的学习相关推荐
- Java中 方法引用、Stream流、及方法实例 D190401
Java中 方法引用.Stream流.及方法实例 D190401 01.第三章:方法引用_什么是方法引用 1).什么是"方法引用":指引用现有的方法代替Lambda表达式--当我们 ...
- java中转义字符的学习---(多看几遍就会了系列)
java中转义字符的学习-(多看几遍就会了系列) java中常见的转义字符– 符号 含义 \n 换行 \t 制表符 \r 回车 \b 退格 代码演示: public class a {public s ...
- 大数据笔记2019.5.9 Java中方法的使用
方法: 1.方法的概念:(函数/过程) 封装了一段特定的业务逻辑功能 尽可能的独立,一个方法只让干一件事: 方法可以被反复的重新的调用 减少代码的重复,有利于代码的维护,减少团队开发的成本提高开发的效 ...
- java中方法的参数传递
java中方法的参数传递方式只有一种:值传递: 对于基本类型来说,传递的是实参的副本(值传递),故在方法内修改传递进来的值并不会影响实参本身: 对于引用类型来说,传递进来的是引用变量的副本(也是值传递 ...
- Java中方法重载和方法重写的区别
文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...
- Java中方法参数的传递
Java中方法参数的传递: 众所周知,Java语言中只有值传递,看起来很好理解的一句话,那么来看一个例子: 输出结果: 这是一个经典问题,我想说说自己的理解: 首先,变量sa和sb分别包含一个字符串对 ...
- 两种参数类型_深入理解Java中方法的参数传递机制
形参和实参 我们知道,在Java中定义方法时,是可以定义参数的,比如: public static void main(String[] args){ } 这里的args就是一个字符串数组类型的参数. ...
- java中方法的命名_Java方法中的参数太多,第5部分:方法命名
java中方法的命名 在上一篇文章 (有关处理Java方法中过多参数的系列文章的 第4部分 )中,我将方法重载视为一种向客户提供需要较少参数的版本的方法或构造函数的方法. 我描述了该方法的一些缺点,并 ...
- java中gettext方法_深入理解Java中方法的参数传递机制
形参和实参 我们知道,在Java中定义方法时,是可以定义参数的,比如: public static void main(String[] args){ } 这里的args就是一个字符串数组类型的参数. ...
最新文章
- HttpClient基础教程
- ip地址开头结尾不能为0
- STL 二分查找 upper_bound和lower_bound用法
- windows系统下 VUE cli手脚架环境安装
- .NET 和 Mono 的一点历史
- 简单的Flash GUI工具(Simple Flash GUI Tool)
- maple里面怎么搜索_教你用Maple全局优化工具寻找最值
- 文献挖掘:SATI文献题录信息统计分析工具初试
- mysql创建视图失败_mysql无法创建视图怎么办
- latex插图\begin{minipage}强制左移\hspace命令
- BioVendor MxA 蛋白人 ELISA说明书
- DNS(二)--dns的双向解析 内外网访问得到不同ip
- [转]Maven查看当前生效配置、pom、环境变量等命令(mvn help用法)
- 细说社交化经销商服务的十大典型应用场景
- 自如上线分期支付,租金贷发展受限后充分利用流量变现
- 2021年最新WHQL认证申请流程
- ESLint+Prettier+Vetur 统一Vue项目代码风格
- microbit测试题
- 短视频社交应用系统开发-节省人力、物力成本,快速拥用短视频社交主流功能
- linux-mariadb
热门文章
- QQ付费群,如何玩转,如何通过群月入1000零用钱
- C++游戏基础: 根据坐标判断方向
- RPA技巧-禁止远程电脑共用剪贴板方法
- c语言调用bool函数,C语言中 bool的用法
- 地理模块化施工的优点_安徽省宣城市2018届高三第二次调研测试文综地理【解析】...
- clickonce发布的安装包运行报错
- 将音乐变成html程序,音乐变成伴奏软件 怎么把歌曲变成伴奏、消除人音
- Javascript节点
- 以太坊的发展阶段、特点、组成部分、重要概念
- 遇到问题--hadoop---cdh识别不到服务器状态