语句块是用花括号括起来的任意数量的 简单Java语句,块确定了局部变量的作用域,块可以被嵌套到另一个块里,但是不能在两个互相嵌套的块内声明同名变量,当然语句块可以使用外部变量,但反过来外部不能使用语句块定义的变量,因为语句块内部声明的变量只作用于语句块本身。
方法就是一段用来完成特定功能的代码片段,是类和对象行为特征的抽象,很像Python里的函数,其声明格式为:
[修饰符1 修饰符2 ...] 返回值类型 方法名(形式参数列表){
Java语句:......
}
简单解释一下:
/**
* 测试方法的使用
*/
public class TestMethod {
public static void main(String[] args) {
//通过对象调用普通方法
TestMethod tm = new TestMethod();
tm.printSxt();
tm.add(1,2,3);
}
// 无返回值,所以要指定为 void
void printSxt() {
System.out.print("SAMshare ");
System.out.println("is Good!");
}
// 弄一个需要入参的方法
void add(int a,int b,int c){
int sum=a+b+c;
System.out.println(sum);
}
}
这个概念指的是同一个命名的方法,但是内容却完全不同的情况。
这个比较有趣,可以看看栗子:(构成重载的栗子)
package com.sam.demo.unit02;
/**
* 方法的重载
*/
public class TestOverload {
public static void main(String[] args) {
System.out.println(add(3,5));
System.out.println(add(3,5,10));
System.out.println(add(3.0,5));
System.out.println(add(3,5.0));
}
/* 求和的方法定义 */
public static int add(int n1, int n2){
int sum = n1+n2;
return sum;
}
// 方法名相同,参数个数不同,构成重载
public static int add(int n1, int n2, int n3){
int sum = n1+n2+n3;
return sum;
}
// 方法名相同,参数类型不同,构成重载
public static double add(double n1, int n2){
double sum = n1+n2;
return sum;
}
// 方法名相同,参数顺序不同,构成重载
public static double add(int n1, double n2){
double sum = n1+n2;
return sum;
}
// 编译错误:只有返回值不同,不构成方法的重载
public static double add(int n1, int n2){
double sum = n1+n2;
return sum;
}
// 编译错误:只有参数名称不同,也不构成方法的重载
public static double add(int n2, int n1){
double sum = n1+n2;
return sum;
}
}
总结来说,可构成方法重载的情况简单分为:
而不构成方法重载的也分为: