Java09-java语法基础(八)java中的方法
Java09-java语法基础(八)java中的方法
一、方法(函数/过程):是一个程序块,可以完成某种功能
1、java中方法的定义格式
[访问控制修饰符] 返回值类型 方法名(参数列表){
方法体;
}
注意:
(1)返回值类型:方法运算结果的类型,若方法没有结果值,返回值类型为void
(2)方法名:用户标识符(字母、_、$开头),建议用动词开头,做到见名知意,首字母小写。如:setName、printInfo。
(3)参数列表:方法可以有参数,可以没有参数。但是“()”不能省略。如果有多个参数,参数之间用“,”分隔。
强调:java的主方法
public static void main(String[] args) {
方法体语句;
}
// 访问控制符:public static
// 返回值类型:void
// 方法名:main,所有的java应用程序都是从main方法开始执行。
java程序分类:
(1)java应用程序:Java Application
(2)java小程序:Java Applet
(3)java web
参数:是一个String类型的一维数组,从命令行项main方法传递参数
示例一:无参方法,计算0到100的和
public int getSum(){
int sum = 0;
for(int i=0; i<=100; i++){
sum = sum +i;
}
return sum;
}
强调:方法的返回值类型必须和方法体中return后的表达式一致;若方法体中没有return语句,则该方法的返回值类型为void
示例二:有参方法,计算某个数的阶乘,数由参数传递
public int getValue(int n){
int s = 1;
for(int i=1; i<=n; i++){
s = s*i;
}
return s;
}
2、方法的调用
(1)无参方法
有返回值:类型名 变量名 = 对象名.方法名();
无返回值:对象名.方法名();
(2)有参方法
有返回值:类型名 变量名 = 对象名.方法名(实参);
无返回值:对象名.方法名(实参);
强调:
形参(形式参数):在方法定义的时候出现在方法首部的参数为形参,该参数没有确定的值;
实参(实在参数):在方法调用时出现在方法首部的参数,该参数有确定的值。
参数的传递方向是单向的:只能从实参将数据传递给形参,形参的改变不影响实参。
二、方法的重载
1、面向对象编程的特性:封装、多态、继承(例子:现实生活)
(1)封装性:对象的属性和行为封装在一起,某些属性和方法无法在外部直接访问。
(2)多态性:对象在接收到同一信息时,做出的反应是不同的。
(3)继承性:子类可以继承父类的属性和方法,而不需要重新再写属性和方法。
2、方法的重载
相同的方法名,在接收到不同的参数后,能实现不同的功能。
强调:不同参数:个数或类型不同
示例:实现不同类型方法的求和运算
public int getSum(){
int sum = 0;
for(int i=0; i<=100; i++){
sum = sum + i;
}
return sum;
}
public int getSum(int a, int b){
return a+b;
}
public double getSum(double a, double b){
return a+b;
}
public String getSum(char c1, char c2){
return c1+","+c2;
}
三、递归调用:方法自己调用自己
1、前提条件
(1)问题可以进行分解,分解后新问题的解法和原问题的解法相同
(2)必须有明确的结束条件
2、递归的过程
(1)自上而下分解问题
示例:递归计算阶乘
5!—— > 5*4!
4!—— > 4*3!
3!—— > 3*2!
2!—— > 2*1!
(2)自下而上解决问题
5! <—— 5*4!
4! <—— 4*3!
3! <—— 3*2!
2! <—— 2*1!
Java09-java语法基础(八)java中的方法的更多相关文章
- Java语法基础(1)
Java语法基础(1) 1. Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...
- Java语言基础(八)
Java语言基础(八) 一.数学运算 + - * / % (1)凡是byte short char类型都按int类型的计算 看看上面的代码,为什么出错! 我已经将100转成byte类型,( ...
- Java 多线程基础(九)join() 方法
Java 多线程基础(九)join 方法 一.join() 方法介绍 join() 定义 Thread 类中的,作用是:把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.如:线 ...
- JAVA语法基础作业——动手动脑以及课后实验性问题 (八)
一.动手动脑 运行AboutException.java示例,了解Java中实现异常处理的基础知识. 1)源代码 import javax.swing.*; class AboutException ...
- Java语法基础(一)----关键字、标识符、常量、变量
一.关键字: 关键字:被Java语言赋予特定含义的单词.组成关键字的字母全部小写.注:goto和const作为保留字存在,目前并不使用.main并不是关键字. 二.标识符: 标识符:就是给类,接口,方 ...
- Java语法基础学习DaySeven
---恢复内容开始--- 一.包装类——Wrapper 1.定义:针对八种基本数据类型定义相应的引用类型——包装类(封装类) boolean——Boolean byte——Byte ...
- java语法基础
Java的基本符号(token) Java的单词符号有五种:关键字.标识符.常量.分隔符和操作符. Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见 ...
- idea中,发现某个java语法在低版本中不支持时的解决办法
比如,在某个工程中,准备用java.util.Objects#equals语法,发现提示版本不支持. F4查看Module的配置,发现原来是1.6版本. 当我手动修改为1.8时,提示我:Module是 ...
- Java语法基础学习DayEighteen(常用类)
一.String类 1.特点 String代表不可变的字符序列,底层用char[]存放. String是final的. 2.内存解析 3.常用方法 int length() char charAt(i ...
- Java语法基础学习DaySix
一.JavaBean——可重用组件 1.JavaBean是指符合以下标准的Java类: (1)类是公共的 (2)有一个无参的公共的构造器 (3)有属性,且有对应的get.set方法 2.好处 用户可以 ...
随机推荐
- ACM__搜素之BFS与DFS
BFS(Breadth_First_Search) DFS(Depth_First_Search) 拿图来说 BFS过程,以1为根节点,1与2,3相连,找到了2,3,继续搜2,2与4,相连,找到了4, ...
- Redis学习笔记一(Redis的详细安装及Linux环境变量配置和启动)
Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 我使用的是下面这个版本: 若没有资源的话,我在 ...
- Visual SVN Server备份脚本
set tt=%date:~0,4%%date:~5,2%%date:~8,2% mkdir D:\SVN_BACKUP_%tt%\Repositories xcopy C:\Repositories ...
- ReactiveX 学习笔记(8)错误处理和 To 操作符
Error Handling Operators Operators to Convert Observables 本文的主题为对 Observable 进行错误处理的操作符以及转换 Observab ...
- springmvc简单教程
IDEA建立Spring MVC Hello World 详细入门教程(转自) 引子,其实从.NET转Java已经有几个月时间了,项目也做了不少,但是很多配置都是根据公司模板或者网上教程比忽略画瓢 ...
- python小实例一:简单爬虫
本文所谓的爬虫就是通过本地远程访问url,然后将url的读成源代码形式,然后对源代码进行解析,获取自己需要的数据,相当于简单数据挖掘.本文实现的是将一个网页的图片爬出保存到本地的过程,例子很简单,用的 ...
- C# 无法识别的属性“targetFramework”。请注意属性名称区分大小写。错误解决办法
“/CRM”应用程序中的服务器错误. 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误消息: 无法识别的属性“targetF ...
- 吴裕雄 python神经网络 手写数字图片识别(5)
import kerasimport matplotlib.pyplot as pltfrom keras.models import Sequentialfrom keras.layers impo ...
- js高级-浏览器事件循环机制Event Loop
JavaScript 是队列的形式一个个执行的 同一时间只能执行一段代码,单线程的 (队列的数据结构) 浏览器是多线程的 JavaScript执行线程负责执行js代码 UI线程负责UI展示的 Jav ...
- 文件上传以及JS链式结构
文件上传: 文件上传使用FileUpload控件,使用控件的SaveAs方法,需要绝对路径. 获取文件的绝对路径:Server.MapPath(相对路径); 或许要上传文件的本身名字用.FileNam ...