1.方法定义的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称 ,...){
方法体;
return 返回值;
}
练习1.输出矩形
package cn.day1.demo02;
public class Demo01Method {
public static void main(String[] args) {
printMethod();
}
public static void printMethod() {
for (int j = 0; j < 5; j++) {
for(int i=1;i<=20;i++){
System.out.print("*");
}
System.out.println();
}
}
}

【注意事项】:
1.方法定义的先后顺序无关;
2.方法定义必须是挨着的,不能在一个方法内部定义另一个方法;
3.方法定义之后,自己不会执行,如果希望执行,一定要进行方法调用。
方法的三种调用:
1.单独调用:方法名称(参数)【但返回值为void的,只能进行单独调用,不能赋值或打印调用】;
2.打印调用:System.out.println(方法名称(参数));
3.赋值调用:数据类型 变量名称 = 方法名称(参数);
package cn.day1.demo02;
public class Demo01MethodDefine {
public static void main(String[] args) {
sum(10,20); //单独调用
System.out.println(sum(10,20)); //打印调用
int number=sum(10,20); //赋值调用
System.out.println(number);
}
public static int sum(int a , int b){
int result =a+b;
System.out.println("方法执行啦!");
return result;
}
}
练习2 :求出1-100之间所有数字的和
package cn.day1.demo03;
public class Demo2Sum {
public static void main(String[] args) {
System.out.println("1+2+...+100=:"+sum());
}
public static int sum(){
int sum=0;
for (int i = 0; i <= 100; i++) {
sum+=i;
}
return sum;
}
}
练习3:打印指定次数的HelloWorld
package cn.day1.demo03;
public class Demo3Print {
public static void main(String[] args) {
printCount(20);
}
public static void printCount(int num){
for (int i = 0; i < num; i++) {
System.out.println("Hello World!"+(i+1));
}
}
}
【注意事项】
1.方法应该定义在类中,但不能在方法中再定义方法,不能嵌套;
2.方法定义的前后顺序无所谓;
3.方法定义之后不会执行,如果希望执行,一定要调用;单独调用,打印调用,赋值调用;
4.如果方法有返回值,那么必须写上“return 返回值” ,不能没有;
5.return后面的返回值数据,必须和方法的返回值类型对应起来;
6.对于一个void 没有返回值的方法,就不能写return后面的返回值,只能写return自己。
7.对于方法中最后一行的return可以省略不写;
8.一个方法中可以有多个return语句,但必须保证同时只有一个会被执行到
2.方法重载
多个方法的名称一样,但是参数列表不一样
好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能
public class Demo01Overload {
public static void main(String[] args) {
System.out.println(sum(10,20));
System.out.println(sum(20,10,30));
System.out.println(sum(20,10,90,40));
}
public static int sum(int a ,int b){
System.out.println("有2个参数的方法在执行!");
return a+b;
}
public static int sum(int a ,int b,int c){
System.out.println("有2个参数的方法在执行!");
return a+b+c;
}
public static int sum(int a ,int b,int c,int d){
System.out.println("有4个参数的方法在执行!");
return a+b+c+d;
}
}
方法重载与下列因素有关:
1.参数个数不同;
2.参数类型不同;
3.参数的多类型顺序不同。
方法重载与下列因素无关:
1.与参数名称无关;
2.与方法的返回值类型无关
练习1
比较两个数据是否相等,参数类型分别为两个byte,两个short,两个int,两个long类型,并在main方法中测试。
public class Demo02OverloadSame {
public static void main(String[] args) {
byte a = 10;
byte b = 20;
System.out.println(isSame(a,b));
System.out.println(isSame((short)10,(short)20));
System.out.println(isSame(20,11));
System.out.println(isSame(10L,10L));
}
public static boolean isSame(byte a,byte b){
System.out.println("两个byte的方法执行");
boolean same;
if(a==b){
same=true;
}
else{
same=false;
}
return same;
}
public static boolean isSame(short a,short b){
System.out.println("两个short的方法执行");
boolean same=a==b?true:false;
return same;
}
public static boolean isSame(int a,int b){
System.out.println("两个int的方法执行");
return a==b;
}
public static boolean isSame(long a ,long b){
System.out.println("两个long的方法执行");
if (a==b){
return true;
}
else {
return false;
}
}
}
练习2
在调用输出语句的时候,println方法其实就是进行了多种数据类型的重载形式。
public class Demo04OverloadPrint {
public static void main(String[] args) {
myPrint(100);
myPrint("Hello");
}
public static void myPrint(byte num){
System.out.println(num);
}
public static void myPrint(short num){
System.out.println(num);
}
public static void myPrint(int num){
System.out.println(num);
}
public static void myPrint(long num){
System.out.println(num);
}
public static void myPrint(float num){
System.out.println(num);
}
public static void myPrint(double num){
System.out.println(num);
}
public static void myPrint(char num){
System.out.println(num);
}
public static void myPrint(boolean num){
System.out.println(num);
}
public static void myPrint(String str){
System.out.println(str);
}
}
来源:https://www.cnblogs.com/jian2818/p/12149916.html