目录
Java入门基础视频教程,Java零基础自学首选黑马程序员Java入门教程(含Java项目和Java真题)_哔哩哔哩_bilibili
Java入门基础视频教程,Java零基础自学首选黑马程序员Java入门教程(含Java项目和Java真题)_哔哩哔哩_bilibili
/*
方法的完整定义格式
修饰符 返回值类型 方法名(参数)
{
方法的操作代码;
return 返回值;
}
写法2:
public static void 方法名(){
方法体;
}
方法的调用
方法名();
注意事项:
- 方法的修饰符:目前都是public static
- 方法申明了具体的返回类型,内部必须使用return返回对应类型的数据。
- void:无返回值,无参数的方法
- 方法没有申明返回值类型,就不能使用return。
- 方法和方法不能嵌套,但谁写前面谁写后面都不影响调用。
*/
public class mathoddemo1 {
public static void main(String[] args) {
int c1=sum(10, 30);
int c2=sum(10, 50);//调用sum方法
System.out.println(c1);
System.out.println(c2);
}
public static int sum(int a,int b) {//定义一个sum方法
int c=a+b;
return c;
}
}
方法的应用
/*
需求:定义一个方法计算1~n的和 返回
分析:方法内部使用for循环计算出1~n的和并返回
*/
public class methmodapp1 {
public static void main(String[] args) {
System.out.println(sum(4));
}
public static int sum(int n) {
int sum=0;//变量名不等于方法名,需赋值
for (int i = 1; i <= n; i++) {
sum +=i;
}
return sum;
}
}
/*
需求:判断整数是基数还是偶数
分析:
1.整数
2.输入
3.方法内部使用if语句
*/
import java.util.Scanner;
public class methodapp2 {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner n=new Scanner(System.in);
int a=n.nextInt();//调用输入
check(a);//调用检查方法
}
//定义检查方法
public static void check(int number) { //用void 不用return
if (number%2==0) { //当number%2=0时这个数是偶数
System.out.println("这个数是偶数");
} else {
System.out.println("这个数是基数");
}
}
}
/*
需求:把找出数组的最大值案例,改造成方法
分析:
1.根据格式编写方法
2.方法内部找出数组的最大值并返回
*/
import java.util.Scanner;
public class methodapp {
public static void main(String[] args) {
int[] nums=new int[5];
for (int i = 0; i < nums.length; i++) {
System.out.println("请输入第"+(i+1)+"个数");
Scanner sc=new Scanner(System.in);
nums[i]=sc.nextInt();
}
int max=ArrayMax(nums);
System.out.println("最大值数据是:"+max);
}
//求最大值的方法
public static int ArrayMax(int[] arr) {
int max=arr[0];
for (int i = 1; i < arr.length; i++) {
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
}
方法的内存管理
- ·方法没有被调用的时候,在方法区中的字节码文件中存放。
- ·方法被调用的时候,需要进入到栈内存中运行。
- 即方法的运行区域:栈内存
方法的参数传递案例
/*
需求:设计一个方法用于输出任意整型数组的内容
格式:该数组内容为:[11, 22, 33, 44, 55]
分析:
1.定义一个静态初始化的数组,调用该方法,并传入数组
2.定义一个方法:能接收数组也能输出数组的内容
*/
public class mrthodapp3 {
public static void main(String[] args) {
//打印任意整型数组的内容
int[] nums={11,22,33,44,55};
printArray(nums);
int[] nUll={};
printArray(nUll);
}
public static void printArray(int[] arr) {
if(arr!=null&&arr.length>0){ //判断数组是否为空
System.out.print("[");
for (int i = 0; i < arr.length; i++) { //遍历数组
/*if(i<arr.length-1){
System.out.print(arr[i]+", ");
}else{
System.out.print(arr[i]);
}
*/
System.out.print(i == arr.length-1?arr[i]:arr[i]+", ");//用一个三目运算符直接简化代码
}
System.out.println("]");
}
else{
System.out.println("[输入错误]");
}
}
}
/*
- 同一个类中,出现多个方法名称相同,但是形参列表不同的,
- 重载方法调用方法是,会通过参数不同来区分调用的是哪个
- 方法重载的作用:可读性好,方法名称相同提示的同一类型的功能,通过形参不同实现功能差异化的选择,是一种专业的代码设计
*/
public class MethodOverrides {
//默认发射一枚武器
public static void BOOM() {
System.out.println("发射了一枚弹");
}
//指定地区发射一枚武器
public static void BOOM(String location) {
System.out.println("发射一枚炸弹给"+location);
}
//指定地区发射多枚武器
public static void BOOM(String location,int num) {
System.out.println("发射"+num+"枚炸弹给"+location);
}
public static void main(String[] args) {
int num=100;
String location="mi国";
BOOM();
BOOM(location);
BOOM(location,num);
}
}
/*
return关键字
- return:立即跳出并结束当前方法的执行。
- 可以单独使用在方法中直接写return结束
类似关键字:
- break:跳出并结束当前所在循环的执行。
- continue:结束所在循环的执行,进入下一次执行
*/
public class returnApp{
public static void main(String[] args) {
chu(10,0);
}
public static void chu(int a,int b) {
if(b==0){
System.out.println("除数不能为0");
return; //立即跳出并结束当前方法的执行,可以用DEBUG查看过程
}
int c=a/b;
System.out.println(c);
}
}