热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java入门之方法

1.如何定义Java中的方法1.1方法:解决一类问题的代码的有序组合,是一个功能模块1.2定义一个方法:访问修饰符返回值类型方法名

1. 如何定义Java中的方法

  1.1 方法:解决一类问题的代码的有序组合,是一个功能模块

  1.2 定义一个方法:

    访问修饰符  返回值类型  方法名(参数列表){方法体}

  1.3 各部分解释:

    - 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用

    - 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值

    - 方法名:定义的方法的名字,必须使用合法的标识符

    - 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 

package com.imooc;public class Demo13 {public static void main(String[] args) {Demo13 test = new Demo13();test.print(); //在main方法中调用print方法}public void print() { //定义print的方法System.out.println("hello demo13");}}

2. Java中无参无返回值方法的使用

  2.1 定义方法

public void show(){ //访问修饰符 返回值类型为无返回值 方法名() System.out.println("Hello"); //方法体放在一对大括号中
}

  2.2 调用方法

package com.imooc;public class Demo14 {public static void main(String[] args) {//创建对象,对象名为helloDemo14 hello = new Demo14();//通过 对象名.方法名() 调用方法hello.show();}//定义方法public void show() {System.out.println("hello");}}

3. Java中无参带返回值方法的使用

  3.1 示例

package com.imooc;public class Demo16 {public static void main(String[] args) {//创建对象,对象名为helloDemo16 hello = new Demo16();//调用方法冰接收方法的返回值,保存在变量sum中int sum = hello.calcSum();System.out.println("sum =" + sum);}//定义无参带返回值的方法(返回值为int类型,使用return获得返回值)public int calcSum() {int a = 5;int b = 12;int sum = a + b;return sum;}}

  3.2 注意

    - 如果返回类型为void,则方法中不能使用return返回值;

    - 方法的返回值只能有一个

    - 方法返回值的类型必须兼容,例如:如果返回值类型为int,则不能放回String型值

  3.3 练习

package com.imooc;public class Demo18 {public static void main(String[] args) {Demo18 hello = new Demo18();int maxAge = hello.maxAge();System.out.println("the max age is: " + maxAge);}public int maxAge() {int[] ages = {1, 11, 3, 33, 2, 22, 4, 44, 5};int max = ages[0];for (int i=0; i max) {max = ages[i];}}return max;}}

4. Java中带参无返回值方法的使用

  4.1 方法的定义

    - 带一个String类型的参数,参数名为name,但是没有返回值

public void show(String name){System.out.println("welcome " + name + "!");
}

  4.2 方法的调用

    - 调用时必须传入实际的参数值:对象名.方法名(实参1, 实参2, ..., 实参n)

HelloWorld hello = new HelloWorld();
hello.show("Harry");

  4.3 形参和实参

    - 形参:定义方法时的参数,目的是用来定义方法需要传入的参数的个数和类型;

    - 实参:调用方法时的参数,是传递给方法真正被处理的值。

  4.4 注意:

    - 调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应

public class HelloWorld{public static void main(String[] args){HelloWorld hello = new HelloWorld();hello.show(25.6); //实参与形参类型不一致}public String show(String name){return "Welcome " + name + "!";}
}

    - 调用方法时,实参不需要指定数据类型

hello.show("i love you");

    - 方法的参数可以是基本数据类型,如int、double等,也可以是引用数据类型,如String、数组等

package com.imooc;import java.util.Arrays;public class Demo19 {public static void main(String[] args) {Demo19 hello = new Demo19();int[] scores = {54, 34, 65, 23};hello.print(scores); //实参为整型数组}public void print(int[] scores) { //形参为整型数组//使用Arrays类的toString()方法将数组转换为字符串并输出System.out.println(Arrays.toString(scores));}}

    - 当方法参数有多个时,多个参数之间以逗号分隔

public int calc(int num1, int num2){int num3 = num1 + num2;return num3:
}

  4.5 练习

package com.imooc;public class Demo20 {public static void main(String[] args) {Demo20 hello = new Demo20();hello.calcAvg(94, 81);}public void calcAvg(int num1, int num2) {double avg = (num1 + num2)/2.0;System.out.println("the average score is: " + avg);}}

5. Java中带参带返回值方法的使用

  5.1 方法的定义

public String show(String name){return "Welcome " + name + "!";
}

  5.2 方法的调用

HelloWorld hello = new HelloWorld(); //创建对象hello
String welcome = hello.show("John"); //调用带参带返回值的方法,将返回值存在变量welcome中
System.out.println(welcome);

  5.3 练习

package com.imooc;import java.util.Arrays;public class Demo21 {public static void main(String[] args) {Demo21 hello = new Demo21();int[] scores = {34, 23, 65, 15};int count = hello.sort(scores);System.out.println("there are " + count + " scores");}public int sort(int[] scores) {Arrays.sort(scores);System.out.println(Arrays.toString(scores));return scores.length;}}

6. Java中方法的重载

  6.1 什么是方法的重载:

    - 如果同一个类中包含了两个或者两个以上方法名相同,但 方法参数的个数、顺序或类型不同的方法。如下所示4个方法名称都为show,但方法的参数有所不同,因此都属于方法的重载:

//无参数的方法
public void show(){System.out.println("Welcome");
}//重载show方法,一个字符串参数
public void show(String name){System.out.println("Welcome " + name);
}//重载show方法,两个参数,先String后int
public void show(String name, int age){System.out.println("Welcome " + name);System.out.println("age " + age);
}//重载show方法,两个参数顺序不同
public void show(int age, String name){System.out.println("Welcome 2 " + name);System.out.println("age 2 " + age);
}

  6.2 如何区分调用的是哪个重载方法:

    - 当调用被重载的方法时,Java会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行,如:

public static void main(String[] args){HelloWorld hello = new HelloWorld();hello.show(); //调用无参的show方法hello.show("tom"); //调用带有一个字符串参数的show方法hello.show("jack", 20); //调用先字符串参数后整型参数的show方法hello.show(20, "jack"); //调用先整型参数后字符串参数的show方法
}

  6.3 判断方法重载的依据:

    - 必须是在同一个类中

    - 方法名相同

    - 方法参数的个数、顺序或类型不同

    - 与方法的修饰符或返回值没有关系

7. 练习题:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值,然后输出数组

package com.imooc;
//导入java.util.Arrays
import java.util.Arrays;public class Demo23 {public static void main(String[] args) {//创建对象helloDemo23 hello = new Demo23();//调用方法并将返回值保存在变量中int[] nums = hello.getArray(8);//将数组转换为字符串并输出System.out.println(Arrays.toString(nums));}public int[] getArray(int length) {//定义指定长度的整型数组int[] nums = new int[length];//循环遍历数组,给数组赋值for(int i=0; i}

8. 练习题:实现输出成绩前三名

package com.imooc;import java.util.Arrays;public class Demo25 {public static void main(String[] args) {int[] scores &#61; {89, -23, 45, 23, 112, 45, 34};System.out.println("the top3 is ");Demo25 res &#61; new Demo25();res.showTop3(scores);}public void showTop3(int[] scores) {//将成绩排序&#xff0c;默认升序顺序Arrays.sort(scores);int num &#61; 0;//倒序遍历for(int i&#61;scores.length-1; i>&#61;0; i--) {if(scores[i]<0 || scores[i]>100) {continue;}num&#43;&#43;;if(num > 3) {break;}System.out.println(scores[i]);}}}

  

转:https://www.cnblogs.com/wnzhong/p/7723001.html



推荐阅读
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • 使用 MyEclipse 和 TestNG 测试框架在 Java 中高效进行单元测试
    通过MyEclipse集成TestNG测试框架,可以在Java开发中高效地进行单元测试。本文介绍了在JDK 1.8.0_121和MyEclipse 10.0离线环境下配置和使用TestNG的具体步骤,帮助开发者提高测试效率和代码质量。 ... [详细]
  • 如何在 Java LinkedHashMap 中高效地提取首个或末尾的键值对? ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 利用Java开发功能完备的电话簿应用程序,支持添加、查询与删除操作
    本研究基于Java语言开发了一款功能全面的电话簿应用程序,实现了与数据库的高效连接。该应用不仅支持添加、查询和删除联系人信息,还具备输出最大和最小ID号的功能,并能够对用户输入的ID号进行有效性验证,确保数据的准确性和完整性。详细实现方法可参阅相关文档。 ... [详细]
  • 计算 n 叉树中各节点子树的叶节点数量分析 ... [详细]
  • 在使用群报数小程序进行高效接龙与统计时,可以通过创建 `LinkedList` 对象并利用 `for` 循环生成指定数量的 `Person` 对象,为每个人员分配唯一的编号,并将其添加到 `LinkedList` 集合中。这一过程确保了数据的有序性和高效管理,便于后续的接龙和统计操作。此外,该小程序还支持实时更新和查看参与人员的状态,进一步提升了活动组织的便利性和准确性。 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 题目描述:小K不幸被LL邪教洗脑,洗脑程度之深使他决定彻底脱离这个邪教。在最终离开前,他计划再进行一次亚瑟王游戏。作为最后一战,他希望这次游戏能够尽善尽美。众所周知,亚瑟王游戏的结果很大程度上取决于运气,但通过合理的策略和算法优化,可以提高获胜的概率。本文将详细解析洛谷P3239 [HNOI2015] 亚瑟王问题,并提供具体的算法实现方法,帮助读者更好地理解和应用相关技术。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • RK算法通过比较两个字符串的哈希值来实现快速匹配,但即使哈希值相同,也不能确保两字符串完全一致,仍需进行逐字符对比以确认。此过程的时间复杂度为O(n)。此外,RK算法在文本搜索、模式识别等领域有广泛应用,并可通过多种优化策略提高其效率和准确性。 ... [详细]
  • Android 图像色彩处理技术详解
    本文详细探讨了 Android 平台上的图像色彩处理技术,重点介绍了如何通过模仿美图秀秀的交互方式,利用 SeekBar 实现对图片颜色的精细调整。文章展示了具体的布局设计和代码实现,帮助开发者更好地理解和应用图像处理技术。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
author-avatar
她是光芒丶r
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有