{"id":21974138,"url":"https://github.com/javaobjects/demo513_1","last_synced_at":"2025-03-22T23:25:38.600Z","repository":{"id":105562308,"uuid":"194973016","full_name":"javaobjects/demo513_1","owner":"javaobjects","description":"Java面向对象基础","archived":false,"fork":false,"pushed_at":"2019-08-01T04:39:34.000Z","size":184,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-28T03:17:17.418Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javaobjects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-03T03:28:49.000Z","updated_at":"2019-08-01T04:39:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"bf8348a5-2b82-438f-b537-2a9a19d98d34","html_url":"https://github.com/javaobjects/demo513_1","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2Fdemo513_1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2Fdemo513_1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2Fdemo513_1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2Fdemo513_1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javaobjects","download_url":"https://codeload.github.com/javaobjects/demo513_1/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245033749,"owners_count":20550326,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T15:38:51.848Z","updated_at":"2025-03-22T23:25:38.576Z","avatar_url":"https://github.com/javaobjects.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 90-Java方法的定义及调用.md\n\n#### 方法的定义\n\n+ 什么是方法\n\n    + 方法是完成某个功能的一组语句，通常将常用的功能写成一个方法\n\n```\n[访问控制符] [修饰符] 返回值类型 方法名(参数类型 形式参数,参数类型 形式参数,…)\n{\n    方法体\n}\n```        \n\n+ **修饰符：** public 、static 被称为修饰符（后续会详细讲解它们）；\n\n+ **返回值类型：** 用来说明该方法运算结果的类型。如果返回其他类型，编译就可能出错；\n\n+ **方法名：** 它作为调用时引用方法的标识；\n\n+ **参数列表：** 方法的参数个数可以是0个到多个，每个参数前面要声明参数的数据类型；每个参数要用逗号分开。也可以一个参数都没有。\n\n+ **方法体：** 它是一个语句块，执行特定的功能操作。对于有返回值类型的方法，方法体当中最后一个语句是return关键字，它的作用是把方法的执行（运算）结果返回到方法外部。\t\n\n+ **return  表达式：** 这里，进一步分析，return后面的表达式就是方法的返回值。需要注意表达式的类型，必须与方法头中声明的“返回类型”相匹配。\n\n+ 形式参数：在方法被调用时用于接受外部传入的变量\n\n+ 参数类型：就是该形式参数的数据类型\n\n+ 返回值：方法在执行完毕后返回给调用它的程序的数据\n\n+ 返回值类型：方法要返回的结果的数据类型\n\n#### 方法的分类\n\n+ 根据参数个数： \n\n    + 无参方法\n    + 有参方法\n\n+ 根据返回值类型:\n\n    + 有返回值的方法：\n\n        + 基本数据类型\n\n        + 引用数据类型\n\n    + 无返回值的方法\n\n        + void\n\n对于无返回值类型的方法，它不向本方法外部返回任何值。定义这样的方法时，声明方法返回类型的位置不能省略不写，而应该用关键字void来代替，即 “空”的意思。\n\n```\npublic class FunctionDemo {\n       public int absolut(int x){\n\tif(x\u003e=0){\n\t        return x;\n\t}\n\telse{\n\t        return -x;\n\t}\n       }\n}\n```\n\n+ 该方法体有两个return 语句，但是只有一个return语句能被执行。\n\n+ 方法的返回类型可以是java中的任何数据类型：基本数据类型（4种整型、2种浮点型、字符型、布尔型共8种）  和引用数据类型（数组、类、接口）。\n\n```\npackage net.tencent.demo.test;\n\npublic class Test方法的定义 {\n\n\tpublic static void main(String[] args) {\n\t\t// 在main方法中定义方法的做法是错误的\n\t\t/*//定义一个方法\n\t\tpublic static int getCount()\n\t\t{\n\t\t\t\n\t\t}\n\t\t*/\n\t\t\n\t\t\n\t}\n\t\n\t//只要方法定义时声明了返回数据，那么方法体中return语句一定要得到执行的机会\n\tpublic int getFirst(int[] arr)\n\t{\n\t\t\n\t\t\n\t\t\n\t\tif(arr[0]\u003e0)\n\t\t{\n\t\t\treturn arr[0];\n\t\t}else\n\t\t{\n\t\t\treturn 0;\n\t\t}\n\t}\n\t\n\t\n\t/*\n\t * 方法的定义\n\t * 1.有返回值的方法：      访问修饰符    【static】 数据类型  方法名(参数列表...){  //方法体  }\n\t * 2.没有返回值的方法：  访问修饰符    【static】 void  方法名(参数列表...){  //方法体  }\n\t * 3.不需要参数：             访问修饰符    【static】 数据类型  方法名(){  //方法体  }\n\t */\n\t\n\tpublic static void printName(String name)\n\t{\n\t\tSystem.out.println(name);\n\t}\n\t\n\n\t/*\n\t * 需求：算出两个整数的和，并返回\n\t */\n\tpublic static int sum(int firstNumber, int secondNumber) {\n\t\t// 方法体\n\t\tint result = firstNumber + secondNumber;\n\n\t\treturn result;\n\t\t// return firstNumber+secondNumber;\n\t}\n\n\t/*\n\t * 需求：接收一个整数，判断它是不是质数，并返回结果boolean类型，true表示是，false表示不是\n\t */\n\tpublic static boolean isPrime(int source) {\n\t\t// 套路：如果方法有返回值，那么先在方法体的第一行声明该返回值\n\t\tboolean result = true;\n\t\t\n\t\t/*\n\t\t * 6:  1,6   2,3\n\t\t * \n\t\t * 3:  1,3\n\t\t * \n\t\t * 100:   2-99\n\t\t */\n\t\t//思路：拿着这个数从2开始除，一直除到比source小1，不管除到谁，只要余数为0，那么这个数就不是质数\n\t\tfor (int i = 2; i \u003c source; i++) {\n\t\t\tif(source%i==0)\n\t\t\t{\n\t\t\t\tresult=false;\n\t\t\t\tbreak;//循环不用继续，结束\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic boolean isPrime2(int source) {\n\t\t// 套路：如果方法有返回值，那么先在方法体的第一行声明该返回值\n\t\tboolean result = true;\n\t\t\n\t\t/*\n\t\t * 6:  1,6   2,3\n\t\t * \n\t\t * 3:  1,3\n\t\t * \n\t\t * 100:   2-99\n\t\t */\n\t\t//思路：拿着这个数从2开始除，一直除到比source小1，不管除到谁，只要余数为0，那么这个数就不是质数\n\t\tfor (int i = 2; i \u003c source; i++) {\n\t\t\tif(source%i==0)\n\t\t\t{\n\t\t\t\tresult=false;\n\t\t\t\tbreak;//循环不用继续，结束\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\t\n}\n```\n#### 方法的调用\n\n+ 方法只有在被调用后才生效\n\n+ 方法的调用方法：\n\n    + 无参方法的调用\n\n    + 有参方法的调用\n\n+ 无参方法的调用\n\n```\n方法名(  )\n```\n+ 定义方法就是编写一段有特定功能的代码，在程序中使用同样功能的地方，没有必要重复编写同样的代码，只要调用定义好的方法就可以。可以实现代码的重用。简化了程序的编写和维护工作。\n\n+ 所谓调用方法，其实就是给方法的入口传入一些值（参数），然后在出口得到方法执行的结果（返回值）。给方法传入参数的过程，称为“传参”。\n\n+ 理解“实参”、“形参”。\n\n+ 实际上，方法传参的过程就是把实参赋值给对应的形参的过程，并且实参和形参的数量、类型必须匹配。\n\n+ 使用方法时的注意问题\n\n    + 形参必须注明数据类型\n\n    + 实参直接写，不需要类型声明\n\n    + return只能返回一次\n\n    + 遇到return语句，方法结束执行，后续语句不执行\n\n    + 方法的返回值，必须与方法声明中的返回值类型匹配\n\n    + 方法定义，不能写在main()中\n\n    + 方法是不能嵌套的\n```\npackage net.tencent.demo.test;\n\npublic class Test方法的调用 {\n\n\t/**\n\t * 方法的调用分两种情况：\n\t * \n\t * 1：static修饰的方法：  类名.方法名(实际参数)\n\t * 2. 非static修饰的方法：\n\t * ①先把方法所在的类实例化： Test方法的定义 t=new Test方法的定义();\n\t * ②然后调用：    t.isPrime2(17);//对象名.方法名(实际参数)\n\t * \n\t * 3.没有返回值的方法：\n\t * \n\t * 注意：方法调用完不要声明变量接收方法的返回值即可，因为没有返回值\n\t * \n\t */\n\t\n\tpublic static void main(String[] args) {\n\t\t//1.判断213是不是质数\n\t\t\n\t\t boolean result=Test方法的定义.isPrime(17);\n\t\t \n\t\t System.out.println(result);\n\t\t \n\t\t //2.求出23和34 的和\n\t\t int tmp=Test方法的定义.sum(23, 34);\n\t\t System.out.println(tmp);\n\t\t \n\t\t //3.判断17是不是质数，要求调用非static修饰的isPrime方法\n\t\t Test方法的定义 t=new Test方法的定义();\n\t\t boolean result2=t.isPrime2(17);\n\t\t System.out.println(\"17是质数吗：\"+result2);\n\t\t \n\t\t  //4.调用没有返回值的方法\n\t\t Test方法的定义.printName(\"telangpu\");\n\t}\n\t\n}\n```\n\n#### 方法的重载（overload）\n\n+ 方法的重载就是在同一个类中允许同时存在一个以上同名的方法\n\n+ 方法重载的规则\n\n    + 方法名称相同\n\n    + 方法的参数必须不同\n        + 参数个数不同   或\n\n        + 参数类型不同\n\n    + 方法的返回值类型可以相同，也可以不同\n\n```\npackage net.tencent.demo.test;\n\npublic class Test方法的重载 {\n\t/*\n\t * 方法的重载就是在同一个类中允许同时存在一个以上同名的方法\n\t * 这种情况的出现是有条件的：\n\t * \n\t * 1.方法名相同\n\t * 2.一个不同，方法的参数必须不同：参数个数不同  or 参数类型不同\n\t */\n\tpublic void add(int a)\n\t{\n\t\t\n\t}\n\t\n\tpublic void add(double b)\n\t{\n\t\t\n\t}\n\t\n\tpublic void add(float f)\n\t{\n\t\t\n\t}\n\t\n\tpublic void add(int a,int f)\n\t{\n\t\t\n\t}\n\t\n\tpublic int add(int c,int d,int e)\n\t{\n\t\t//Arrays.to\n\t\treturn 0;\n\t}\n}\n```\n\n\n**以就就是我关于 *Java数组的声明及初始化*  知识点的整理与总结的全部内容，[另附源码](https://github.com/javaobjects/demo513_1)**\n\n==================================================================\n#### 分割线\n==================================================================\n\n**博主为咯学编程：父母不同意学编程，现已断绝关系;恋人不同意学编程，现已分手;亲戚不同意学编程，现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏，金额不限。。。**\n\n![](images/pay.png) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaobjects%2Fdemo513_1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavaobjects%2Fdemo513_1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaobjects%2Fdemo513_1/lists"}