1. 打印五行星星,每行20个
public class Demo01Method {
public static void main(String[] args) {
for (int j = 0; j < 5; j++) {
for(int i = 0; i < 20; i++){
System.out.print('*');//去掉ln就不换行
}
System.out.println();//什么都不写等于一个换行
}
}
}
改写成方法的形式
public class Demo01Method {
public static void main(String[] args) {
printMethod();
}
public static void printMethod(){
for (int j = 0; j < 5; j++) {
for(int i = 0; i < 20; i++){
System.out.print('*');//去掉ln就不换行
}
System.out.println();//什么都不写等于一个换行
}
}
}
注意:方法的定义不能嵌套,不可以在一个方法里面定义另一个方法
2. 方法的定义
public class Demo02MethodDefine {
public static void main(String[] args) {
System.out.println(sum(2,3));//5
}
//定义两个int数字相加的方法
public static int sum (int a, int b) {//不可以在这里对形参直接赋值
int rel = a + b;
return rel;
}
}
注意:void函数没有返回值;对于没有返回值的函数,只可以单独调用,不可以打印或者赋值调用.
- 判断两个数字是否相等
public class Demo01MethodSame {
public static void main(String[] args) {
System.out.println(isSame(2,3));//false
System.out.println(isSame(5,5));//ture
}
//定义一个判断两个数字是否相等的方法
public static boolean isSame(int a, int b) {
return a==b;
}
}
- 方法使用时的注意事项:
/*
1. 方法应该定义在类中,不可以在方法中再定义方法
2. return后面的返回值数据必须和方法返回值类型对应起来
3. 对于一个void没有返回值的方法,不可以写return后面的返回值,但是可以写return自己
*/
public static void Method() {
//return 10;错误
return;//正确 这里的return用于结束方法的执行 且可以省略
}
3. 方法的重载
方法的重载:多个方法名称一样但是参数列表不一样。
public class Demo01MethodOverload {
public static void main(String[] args) {
System.out.println(sum(2,2,3));//7
/*
谁能对得上就用谁 谁都对不上就报错
方法重载与下列因素相关:
参数个数不同1 2 3
参数类型不同1 4
参数的多类型顺序不同5 6
方法重载与下列因素相无关:
与参数名无关
与方法的返回值类型无关
*/
}
//1
public static int sum(int a, int b) {
return a + b;
}
//2
public static int sum(int a, int b, int c) {
return a + b + c;
}
//3
public static int sum(int a, int b, int c, int d) {
return a + b + c + d;
}
//4
public static int sum(double a, double b) {
return (int) (a + b);
}
//5
public static int sum(double a, int b) {
return (int) (a+b);
}
//6
public static int sum(int a, double b) {
return (int) (a+b);
}
}
- 练习
public class Demo02MethodOverloadSame {
/*
题目要求:比较两个数据是否相等
参数类型分别为:两个Byte,两个short,两个int,两个long
并在main方法中进行测试
*/
public static void main(String[] args) {
byte a = 10;
byte b = 20;
System.out.println(isSame(a,b));//false byte
System.out.println(isSame(2,2));//true int
System.out.println(isSame((short)2,(short)2));//short true
System.out.println(isSame(20L,20L));//long true
}
public static boolean isSame(byte a, byte b) {
System.out.println("byte");//字符串用双引号,字符用单引号
return a == b;
}
public static boolean isSame(short a, short b) {
System.out.println("short");
return a == b;
}
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");
return a == b;
}
}
-
练习
-
练习
//基本数据类型:byte short int long float double char boolead
//引用数据类型:String
//在调用输出语句的时候,println方法其实就是进行了多种数据类型是重载形式。
public class Demo04OverloadPrint {
public static void main(String[] args) {
myPrint("hello");//hello
short a = 2;
myPrint(a);//2
//等等 不再举例 上述任何数据类型都可以正确输出
}
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 ch) {
System.out.println(ch);
}
public static void myPrint(boolean is) {
System.out.println(is);
}
public static void myPrint(String str) {
System.out.println(str);
}
}