编译时异常
javac.exe的时候,编译都通不过,提示你代码有错误。
这些提示错误,就称之为编译期异常。
该报错,会准确的提示你,代码多少行,报错
下角标箭头提示,报错位置。 和错误的类型
运行时异常
Error 错误,一种是编译导致的错误,运行的时候才提示。
常识运算错误!
Execption
运行时候才会发生的异常。
比如我们使用数组,变量,等等使用方法不当的时候
就会出现这个异常。
ArrayIndexoutofboundsException
NullpointerException
1 方法概述和格式说明
目前,我们掌握的方法,就是main 方法。
public static void main(String[] args){
//要执行的代码
return ; //返回值为void的时候,可以省略不写。
}
(1)方法的概述
有两个好处:
1、相同的代码,减少重复书写,可以写到一个方法内
然后需要的时候,不需要重写了,直接调用下方法,就执行一遍。
2、方法,可以把逻辑关系相同,或者整体的代码块,
放在同一个方法中,执行起来比较容易让我们理解。
(2)方法的格式:
修饰词 返回值类型 方法的名字(参数类型1 参数名1, 参数类型2 参数名2,……){
返回值类型,如果是void,可以省略return
返回值类型,不是void,需要返回对应的返回值类型,对应的具体的值。
}
(3)方法参数的格式
定义方法的时候:参数称之为,形式参数。
形式参数的书写:
方法名(参数类型1 参数名1,参数类型2 参数名2)
调用方法的时候: 参数,称之为,实际参数。
调用方法的时候,传递的参数。
实际参数,具体写一个值,或者变量名引用的值。
2 方法之求和案例及其调用
需求,定义一个方法,求1-10的数的和。
求和的代码,写在方法中,通过方法的返回值,返回求和结果。
/**
* 方法之求和案例及其调用【掌握】
需求,定义一个方法,求1-10的数的和。
求和的代码,写在方法中,通过方法的返回值,返回求和结果。
*/
public class Test02_Sum {
public static void main(String[] args) {
System.out.println("12313123");
//调用,求和方法。
getSum1_10();
}
//定义一个方法,获取1-10的累加的结果,输出最后结果。
public static void getSum1_10(){
int sum = 0;
for (int i = 1; i <=10; i++) {
sum += i;
}
System.out.println("1-10累加的结果是:"+ sum);
}
}
3 方法的注意事项【掌握】
(1)方法与 方法是平级的关系。不能嵌套定义
(2)方法要定义在类中,其他方法外。
(3)方法,不调用,不执行。只有调用之后才执行。
(4)如果方法有明确的返回值类型,必须写return 返回对应类型的值
(5)return后面跟的是具体的值或者变量,
在方法调用的地方,可以用对应数据类型 的新变量 接收。
(6)方法定义的参数列表中,多个参数之间用 , 逗号隔开
(7)方法调用的时候,称之为实际参数。实际参数不用写参数类型。
(8)被静态static 修饰的东西,会随着类的加载而加载
静态的方法 只能 调用静态方法。
4 方法的练习
练习求和的变形:
需求 ,求1-10的数的累加的和,
通过定义方法的方式,并且方法有具体的返回值类型。
根据 用户的需求,在方法内编写代码,把代码结果返回。
/**
需求,定义一个方法,求1-10的数的和。
方法变形一下:添加参数列表
定义方法的时候:参数称之为,形式参数。
形式参数的书写:
方法名(参数类型1 参数名1,参数类型2 参数名2)
调用方法的时候: 参数,称之为,实际参数。
调用方法的时候,传递的参数。
实际参数,具体写一个值,或者变量名引用的值。
*/
public class Test04_Sum {
public static void main(String[] args) {
//我想定义一个方法,然后给这个方法传两个数,
//让这个方法,把他们和计算出来,然后把结果返回给我
int new_sum = getSum(2342,9437);
System.out.println(new_sum);
}
/**
* 定义一个方法,
* 修饰词: public static
* 返回值类型: int 类型。
* 方法名: getSum
* 参数列表,两个:int a, int b
* 返回值: sum
*/
public static int getSum(int a, int b){
int sum = a +b;
return sum;
}
}
5 方法之输出星形及其调用
需求 :输出一个N 行 m 列的星星,
通过键盘录入,确定,n 和m 的数值。
用方法执行,进行星星输出。
import java.util.Scanner;
/**
* 需求 :输出一个N 行 m 列的星星,
通过键盘录入,确定,n 和m 的数值。
用方法执行,进行星星输出。
*/
public class Test06_XX {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您想要打印几行几列的星星,先输入行数:");
int n = sc.nextInt();
System.out.println("请输入您想要打印星星的列数");
int m = sc.nextInt();
printXX(n,m); //当你调用一个不存在的方法时候,eclipse 提示帮你创建
}
private static void printXX(int n, int m) {
//双层for 循环。外层控制换行,内层输出星星,不换行。
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
6 方法的练习
需求: 键盘录入两个数,这两个数通过一个方法
在方法里面,判断两个数大小,
把较大的数,返回给方法调用者。
最终把最大的数,输出显示。
import java.util.Scanner;
/**
* 需求: 键盘录入两个数,这两个数通过一个方法
在方法里面,判断两个数大小,
把较大的数,返回给方法调用者。
最终把最大的数,输出显示。
*
*/
public class Test05_Compare {
public static void main(String[] args) {
//创建键盘录入对象,接收两个整数,作为调用比较方法的两个参数
Scanner sc = new Scanner(System.in);
System.out.println("输入两个要比较的数,请输入第一个:");
int x = sc.nextInt();
System.out.println("请输入第二个:");
int y = sc.nextInt();
//调用比较两个数的方法,然后接收最后最大值结果。
int max = compare(x,y);
System.out.println("您输入的两个数,较大的是:"+max);
}
//定义一个比较两个数,较大值是哪个的方法,返回较大的值。
public static int compare(int a, int b){
if(a>b){
return a;
}else if(a <b){
return b;
}else{
System.out.println("两个数相等");
return a;
}
}
}
7 方法重载概述和基本使用
方法的重载: 定义两个或多个方法的时候
方法名相同,参数列表不同。
参数个数不同。
参数类型不同。
与修饰词 及 返回值类型,无关。
这样多个方法之间的关系,我们称之为方法的重载关系。
例如: 如下的方法定义,都称之为方法重载。
getMax(int a ,int b){
}
getMax(int a ,int b,int c){
}
getMax(double a ,odouble b){
}
疑问: 方法名都相同,那我调用的时候,我怎么知道我调用的是哪个?
换句话说,代码,怎么知道我想用哪个?
getMax(3,5);
getMax(2.1, 4.3);
getMax(1,2,3);
8 方法重载练习比较数据是否相等
需求: 定义三个重载方法,求最大值
调用重载方法,给不同的类型数据参数
查看重载方法具体执行的哪个。
调用相同方法名的方法,然后最终得出,输出每组数据较大的数。