概述:
- 定义方法 请见method1注释,调用:类.方法(...)、对象.方法(...)。
- static 如果方法被static修饰那么这个方法属于类可以被类或对象调用,如果没有那么它只能被对象调用。
- 参数传递的机制:基本类型传值和引用类型传引用(String 是一个情况特殊的例子,以后写专门文章介绍)。
- 方法的重载:方法名相同(method3),但是参数不同(注意返回类型不同不能作为重载的标准),多态的体现之一。
- 动态参数:当不确定到底有多少个参数的时候可以采用动态定义。(类似一个数组,但是使用起来比数组方便)。
- 递归调用:方法调用自身(注意结束递归的条件!!),经典例子:遍历文件夹(请关注后续相关文章)。
package com.cxyapi.oo; /** Java方法 * @author cxy @ www.cxyapi.com */ public class MethodTest { public static void main(String[] args) { String aa="cxyapi"; //method1没有被static修饰,所以需要创建一个对象来调用 new MethodTest().method1(aa); //method2被tatic修饰,可以直接使用类调用,通常将工具类方法这样定义 MethodTest.method2(aa); System.out.println("---------------------"); //传值演示 int i=0; MethodTest.method3(i); System.out.println("main方法里的变量i:"+i); //可以看到i传入方法的是一个值,方法内改变传入参数并不会修改原来的i变量。 //传引用演示 Point p=new Point(); System.out.print("p的初始值:"); p.show(); MethodTest.method3(p); //传引用类型,实际是在传递p的引用(指针),方法对其的改变会改变原来的它 System.out.print("method3执行后p的值:"); p.show(); System.out.println("---------------------"); //我们看到method3定义3个方法,名称相同,但是参数不同(可以是类型不同,也可以是个数不同) //动态参数演示 MethodTest.method4(aa,"www.cxyapi.com"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~"); MethodTest.method4(aa,"www.cxyapi.com","http://www.cxyapi.com"); System.out.println("---------------------"); } /** 定义一个方法 * 修饰符 返回值类型 方法名称(参数类型 参数名) */ public void method1(String aa) { System.out.println("非静态方法:"+aa); } /** 一个静态类 可以直接使用 类.方法 的方式调用 */ public static void method2(String aa) { System.out.println("静态方法:"+aa); } //传值 public static void method3(int i) { i=2; System.out.println("method3方法内的变量i:"+i); } //传引用 public static void method3(Point p) { p.x=1; p.y=1; System.out.print("method4中:"); p.show(); } //方法重载演示:3个method3(...)名字相同,但是类型和个数各有不同 public static void method3(int i,Point p) { System.out.println("方法重载演示~"); } /* 采用...来定义一个动态的参数,效果类似参数数组。 * 动态参数只能有一个且必须在参数列表的最后 * */ public static void method4(String ... str) { for(String one:str) { System.out.println(one); } } } /** 定义一个Point类 来演示参数传递引用 * @author cxy @ www.cxyapi.com */ class Point { //为了演示方便 我将其定义成为piblic public int x=0; public int y=0; public void show() { System.out.println("x="+x+",y="+y); } }
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
3.更多的内容请看我的 个人博客(测试版)
相关推荐
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
基于java的网吧管理系统答辩PPT.pptx
基于java的基于SSM架构的网上书城系统答辩PPT.pptx
tornado-6.1-cp37-cp37m-win32.whl
c语言气泡排序、插入排序、选择排序、快速排序、希尔排序、堆排序、合并排序_SortAlgorithm.zip
Keyboard Maestro 11.0.3_macwk.dmg
基于微信小程序的鲜花销售微信小程序答辩PPT.pptx
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
tornado-6.2b1-cp39-cp39-musllinux_1_1_x86_64.whl
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
tornado-6.1b2-cp38-cp38-manylinux2014_aarch64.whl
基于java的土家风景文化管理平台答辩PPT.pptx
jira安装包
基于java的机场网上订票系统答辩PPT.pptx
小区物业管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
yolo算法-金属-纸张-硬纸板垃圾数据集-13409张图像带标签-金属-纸张-硬纸板-塑料-其他-烟蒂-食物-玻璃.zip;yolo算法-金属-纸张-硬纸板垃圾数据集-13409张图像带标签-金属-纸张-硬纸板-塑料-其他-烟蒂-食物-玻璃.zip;yolo算法-金属-纸张-硬纸板垃圾数据集-13409张图像带标签-金属-纸张-硬纸板-塑料-其他-烟蒂-食物-玻璃.zip
项目介绍: 系统模块主要包括;用户、考试信息、考场信息、试卷、试题、考试等管理功能 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
Python脚本运行环境搭建所需要的资源包