系统:Win10
JDK:1.8.0_121
IDE:IntelliJ IDEA 2017.3.7
前面的课程中,使用过嵌套循环输出矩形,控制台就可以了,因此将方法定义为 void,没有返回值。在主方法 main 中直接调用
public static void main(String[] args) {
printRectangle();
}
public static void printRectangle() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 20; j++) {
System.out.print("*");
}
System.out.println();
}
}
printRectangle 方法被 main 方法调用后直接输出结果,而 main 方法并不需要 printTangle 方法的执行结果,所以被定义为 void
修饰符 返回值类型 方法名(参数类型 参数名称, ...) {
方法体
return 返回值;
}
public class MethodDemo02 {
public static void main(String[] args) {
// 调用方法getSum,传递两个参数,这里传递的实际数据又称为实际参数、
// 接收方法计算后的结果,输出返回值
int sum = getSum(5, 6);
System.out.println(sum);
}
/*
定义计算两个整数求和的方法
返回值类型,计算结果是int
参数:不确定数据求和,定义int参数,参数又称形式参数
*/
public static int getSum (int a, int b) {
int c = a + b
return c;
}
}
程序执行后,主方法 main 调用 getSum 方法,传递了实际数据 5和6,两个变量 a和b 接收到的就是实际参数,并将计算后的结果返回,主方法 main 和变量 sum 接收的方法就是方法的返回值
public static void main(String[] args) {
print();
}
public static void print() {
System.out.println("直接调用!");
}
public static void main(String[] args) {
System.out.println(getSum(3,4));
}
public static int getSum(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// System.out.println(print()); // 错误调用,不能 输出语句调用void类型方法
}
public static void print() {
System.out.println("直接调用!");
}
public static void main(String[] args) {
int sum = getSum(3,4);
System.out.println(sum);
}
public static int getSum(int a, int b) {
return a + b;
}
练习一 比较两个整数是否相等
public static void main(String[] args) {
// 调用方法cmpare,传递两个参数
// 接收方法计算后的结果,并打印出来
boolean result = compare(3, 4);
System.out.println(result);
}
/*
定义比较整数是否相同的方法
返回值类型,比较的结果是布尔型
参数:不确定参与比较的两个整数
*/
public static boolean compare(int a, int b) {
if (a == b) {
return true;
}else {
return false;
}
}
练习二 求出1+2+3+…+100的和
public static void main(String[] args) {
// 调用方法 getSum 并打印返回值
System.out.println(getSum());
}
/*
定义计算1~100的求和方法
返回值类型:计算结果为整数int
参数:没有不确定数据
*/
public static int getSum() {
// 定义变量保存求和
int sum = 0;
// 从1开始循环,到100结束
for (int i = 1; i <= 100; i++) {
sum += i;
}
return sum;
}
练习三 实现不定次数打印
public static void main(String[] args) {
// 调用方法 print,传递整数
print(9);
}
/*
定义打印 Hello World! 方法
返回值类型:计算没有结果 void
参数:不确定打印几次
*/
public static void print(int n) {
for (int i = 0; i < n; i++) {
System.out.println("Hello World!" + i);
}
}
练习一
比较两个数据是否相等,参数类型分别为两个 byte 类型,两个 short 类型,两个 long 类型,并在 main 方法中进行测试
public class MethodDemo06 {
public static void main(String[] args) {
// 定义不同数据类型的变量
byte a = 10;
byte b = 20;
short c = 30;
short d = 30;
int e = 40;
int f = 50;
long g = 60L;
long h = 60L;
// 调用
System.out.println(compare(a, b));
System.out.println(compare(c, d));
System.out.println(compare(e, f));
System.out.println(compare(g, h));
}
// 两个byte类型的
public static boolean compare(byte a, byte b) {
System.out.println("compare byte");
return a == b;
}
// 两个short类型的
public static boolean compare(short a, short b) {
System.out.println("compare short");
return a == b;
}
// 两个int类型的
public static boolean compare(int a, int b) {
System.out.println("compare int");
return a == b;
}
// 两个long类型的
public static boolean compare(long a, long b) {
System.out.println("compare long");
return a == b;
}
}
练习二
判断哪些方法是重载关系
public static void open(){} // 属于重载
public static void open(int a){} // 属于重载
static void open(int a,int b){} // 不属于重载,与 8 冲突
public static void open(double a,int b){} // 属于重载
public static void open(int a,double b){} // 不属于重载,与 6 冲突
public void open(int i,double d){} // 不属于重载,与 5 冲突
public static void OPEN(){} // 运行无错,不过不属于重载,名称不同
public static void open(int i,int j){} // 不属于重载,与 3 冲突
练习三
模拟输出语句中的 println 方法效果,传递什么类型的数据就输出什么类型的数据,只允许定义一个方法名 println
public class MethodDemo07 {
public static void main(String[] args) {
byte a = 1;
short b = 2;
int c = 3;
long d = 4L;
float e = 5.0F;
double f = 6.0;
char g = 'A';
boolean h = true;
String str = "Last";
myPrint(a);
myPrint(b);
myPrint(c);
myPrint(d);
myPrint(e);
myPrint(f);
myPrint(g);
myPrint(h);
myPrint(str);
}
// byte
public static void myPrint(byte a) {
System.out.println("byte数据:" + a);
}
// short
public static void myPrint(short a) {
System.out.println("short数据:" + a);
}
// int
public static void myPrint(int a) {
System.out.println("int数据:" + a);
}
// long
public static void myPrint(long a) {
System.out.println("long数据:" + a);
}
// float
public static void myPrint(float a) {
System.out.println("float数据:" + a);
}
// double
public static void myPrint(double a) {
System.out.println("double数据:" + a);
}
// char
public static void myPrint(char a) {
System.out.println("char数据:" + a);
}
// boolean
public static void myPrint(boolean a) {
System.out.println("boolean数据:" + a);
}
// String
public static void myPrint(String a) {
System.out.println("String数据:" + a);
}
}