Java学习 方法

方法

定义

Java方法是语句的集合,一起执行一个功能。

  1. 方法是解决一类问题的步骤的有序组合。
  2. 方法包含在类或对象中。
  3. 方法在程序中被创建,在其他地方被引用。
  4. 设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,有利于后期的扩展。
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
  1. 修饰符:可选的,告诉编译器如何调用该方法,定义该方法的访问类型。
  2. 返回值类型:方法可能会返回值。returnValueType 是方法返回值的数据类型,有些方法执行所需的操作,但没有返回值。这种情况下,returnValueType是关键字 void
  3. 方法名:是方法的实际名称。方法名和参数共同构成方法签名。采用首字母小写,驼峰命名法。
  4. 参数类型:

    实参:调用方法时实际传给方法的数据。

    形参:在方法调用时用于接收外界输入的数据。用来定义作用的。

方法调用

  1. 调用方法:对象名.方法名(实参列表)
  2. Java支持两种调用方法的方式

    静态方法隶属于类,非静态方法隶属于对象。

    非静态可以调用静态,静态不能调用非静态的。(因为静态方法和类一起加载可以说是已经存在的,而非静态方法是类实例化之后才存在,所以静态不能调用非静态的)

    静态调用 static

    非静态调用 实例化
  3. 值传递和引用传递

    1.传递的内容不同:值传递传递的是内容,引用传递传递的是地址;

    2.方法的作用范围不同:值传递不会修改方法外部的值,引用传递会(与内存分析有关)

方法的重载

  1. 重载就是在一个类中,有相同的函数名称但是形参不同的函数。
  2. 方法的重载的规则:

    1、 方法名称必须相同。

    2、参数列表必须不同(个数不同、类型不同、参数排列顺序不同)

    3、方法的返回类型可以相同也可以不相同

    4、仅仅返回类型不同不足以成为方法的重载

可变参数

  1. Java支持传递同类型的可变参数给一个方法
  2. 在方法声明中,在指定参数类型后加一个省略号(...)
  3. 一个方法只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
public class Demo02 {
public static void main(String[] args) {
//调用可变参数的方法
Demo02 demo02 = new Demo02();
demo02.printMax(34,4,4,2,5.3);
demo02.printMax(new double[]{3,4,5}); }
public void printMax(double ...num){
if(num.length==0){
System.out.println("No argument passed");
return;
}
double result = num[0];
//排序
for(int i= 1;i< num.length;i++){
if(result<num[i]){
result = num[i];
}
}
System.out.println("The Max Value is "+ result);
}
}

递归

  1. 递归就是自己调用自己
  2. 利用递归可以用简单的程序解决一些复杂的问题。通常把一个大型的问题层层转化为一个与原问题相似的规模较小的问题求解,递归策略只需少量的程序就可描述解题过程所需要的多次重复计算,大大减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
  3. 递归包括两个部分:

    1、递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。

    2、递归体:什么时候需要调用自身方法。
public class Demo03 {
public static void main(String[] args) {
System.out.println(method(3));
}
public static int method(int n){
if (n==1){
return 1;
}else {
return n*method(n-1);
}
}
}

Java学习--方法的更多相关文章

  1. Java学习----方法的重载

    一个类中有多个同名的参数不一样的方法. 作用:可以根据不同的条件调用不同的方法. 注意:java不会因为方法的返回类型或者权限的不同而判断为不同的两个方法. public class Student ...

  2. Java学习——方法

    在这一次的学习中我觉得首先要了解: 什么是方法呢 方法又怎么定义与调用 上面这段代码是我们经常写到的,其实它就是一个方法,其中 public 是修饰符 void是返回值类型 main就是方法名 arg ...

  3. Java学习----方法的覆盖

    方法的覆盖:子类继承父类,子类重写父类的同名方法. 覆盖的原则: 1. 方法的参数必须跟父类保持一致 2. 子类方法的修饰符的范围必须大于等于父类方法同名的修饰符(public > privat ...

  4. Java学习——方法中传递参数分简单类型与复杂类型(引用类型)编程计算100+98+96+。。。+4+2+1的值,用递归方法实现

    package hello; public class digui { public static void main(String[] args) { // TODO Auto-generated ...

  5. Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法

    前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...

  6. Java学习-026-类名或方法名应用之二 -- 统计分析基础

    前文讲述了类名或方法的应用之一调试源码,具体请参阅:Java学习-025-类名或方法名应用之一 -- 调试源码 此文主要讲述类名或方法应用之二统计分析,通过在各个方法中插桩(调用桩方法),获取方法的调 ...

  7. Java学习-025-类名或方法名应用之一 -- 调试源码

    上文讲述了如何获取类名和方法名,敬请参阅: Java学习-024-获取当前类名或方法名二三文 . 通常在应用开发中,调试或查看是哪个文件中的方法调用了当前文件的此方法,因而在实际的应用中需要获取相应的 ...

  8. Java学习-024-获取当前类名或方法名二三文

    今天,看朋友编写程序,打印日志时,需要记录当前类的类名以及当前方法的方法名,我发现 TA 将类名或者方法名直接写死在了代码中...虽说这样可以实现记录类名和方法名,但是当有特殊情况需要修改类名或者方法 ...

  9. 学习Java的方法

    许多人在刚开始学习Java时,会因为学习方法的不正确,而丧失信心,从而半途而废.所以,今天,巩固就要教教大家学习Java的方法. 1.多练习 编程其实是一个非常抽象的东西,要想学好它,就不能只是看看书 ...

随机推荐

  1. 广义SAM

    参考 还有首先你要会SAM吧~ 用途 相比与单串SAM,广义自动机能存储的是多个字符串. 有两种写法,第一种是离线利用trie树结构,第二种是在线伪广义SAM 离线+Trie 首先构建出trie树. ...

  2. 【原创】渗透神器CoblatStrike实践(1)

    渗透神器CoblatStrike实践(1) 前言 正常的渗透测试: ​ 寻找漏洞,利用漏洞,拿到一定的权限 后渗透(CS为代表的): ​ 提升权限,内网渗透,权限维持 工具地址(非官方取到后门多,建议 ...

  3. 【原创】快速理解Unicode和utf-8的本质

    字符串编码 基本概念 在代码中处理,为了字节统一,都统一使用Unicode 核心:在pyhton中s.encode("utf-8")中的变量实例s必须是已经是Unicode格式,否 ...

  4. 『忘了再学』Shell基础 — 28、AWK中条件表达式说明

    目录 1.AWK的条件表达 2.条件表达式说明 (1)BEGIN (2)END (3)关系运算符 (4)说明AWK中条件表达式的执行过程 (5)AWK中使用正则表达式 (6)A~B练习 1.AWK的条 ...

  5. HMS Core新闻行业解决方案:让技术加上人文的温度

    开发者们,你希望用户如何获取新闻? 有的人靠手机弹窗知天下事,有的人则在新闻应用中尽览每一篇文章:有的人一目十行,有的人则喜欢细细咀嚼:有的人主动探索,有的人则想要应用投其所好. 科技在不断刷新着用户 ...

  6. 重学ES系列之函数优化

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 监听 Markdown 文件并热更新 Next.js 页面

    Next.js 提供了 Fast-Refresh 能力,它可以为您对 React 组件所做的编辑提供即时反馈. 但是,当你通过 Markdown 文件提供网站内容时,由于 Markdown 不是 Re ...

  8. 记一次排查线上MySQL死锁过程,不能只会curd,还要知道加锁原理

    昨晚我正在床上睡得着着的,突然来了一条短信. 啥,线上MySQL死锁了,我赶紧登录线上系统,查看业务日志. 能清楚看到是这条insert语句发生了死锁. MySQL如果检测到两个事务发生了死锁,会回滚 ...

  9. 使用Kind快速构建k8s

    什么是 KindKind(Kubernetes in Docker) 是一个 Kubernetes 孵化项目,Kind 是一套开箱即用的 Kubernetes 环境搭建方案.顾名思义,就是将 Kube ...

  10. NC16564 [NOIP2012]借教室

    NC16564 [NOIP2012]借教室 题目 题目描述 ​ 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借 ...