【南京校区】方法 1.方法概述
就是一个独立的代码集。//一个方法一般会独立的去完成一个单独的功能。
特点:
不调用不执行。
2.方法定义和调用
定义格式:
public static void 方法名(){
方法体;
}
调用格式:
method();
3.方法的调用过程
public static void main(String [] args){//是程序的主入口
//当程序开始运行的时候,由虚拟机来调用main方法的。
System.out.println(111);
method();
System.out.println(222);
}
public static void method(){
System.out.println(333);
System.out.println(444);
System.out.println(555);
}
//简单理解:
当方法被调用的时候,如果方法中的代码没有执行完毕,那么方法下面的代码永远执行不到。
public static void main(String [] args){
System.out.println(111);
method();
System.out.println(222);
}
public static void method(){
while(true){}
}
结论:
此时程序在method方法中的无限循环中不断的执行,永远执行不到222。
理由:
当方法被调用的时候,如果方法中的代码没有执行完毕,那么方法下面的代码永远执行不到。
4.快速生成一个方法的快捷键:
alt + 回车
5.形参和实参
public static void main(String [] args){
getSum(2,3);
int a = 10;
int b = 20;
getSum(a,b);
}
public static void method(int a, int b){
System.out.println(a + b);
}
形参(形式参数):在方法定义的时候,小括号中的变量。在上面的案例中有两个形参。
参数列表:所有的形参组成的这个整体
实参(实际参数):在方法调用的时候,实际传递过来的值。在上面的案例中有两个实参。
关系:
形参和实参:一一对应。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
6、带返回值方法定义和调用
定义格式:
public static 返回值类型 方法名(参数列表){
方法体;
return 变量;
}
return :将结果返回给调用处
停止方法
引申:
return 关键字的作用:
在有返回值的方法中:将结果返回给调用处
停止方法
在没有返回值的方法中:
停止方法
7.return break continue 关键字的区别。
break continue:跟方法本身没有什么关系的。跟循环有关的。
return :跟循环是没有任何关系的,跟方法有关。
但是方法都停止了,那么方法中的循环也就没有了。
8.关于方法的定义
我到底要不要写返回值类型?我到底要写几个形式参数?
当不知道如何写一个方法的时候,建议你问一下自己以下的这几个问题?
1.我要干嘛? --- 决定了方法体
2.我干这件事情,需要什么?---- 决定了方法的形参
3.我干完了,要不要把结果告诉调用者? --- 决定了方法的返回值
练习:
1、我要求两个长方形的周长和。
public static void main(String [] args){
//1、我要求两个长方形的周长和。
//(长 + 宽) * 2
//1.我要干嘛?
// 求长方形的周长
// 2.我干这件事情,需要什么?
//长和宽
// 3.我干完了,要不要把结果告诉调用者?
//要。因为这个方法只能求一个长方形的周长。
int result = getLen(10,5) + getLen(3,2);
System.out.println(result);
}
public static int getLen(int length,int width){
return (length + width) * 2;
}
2、想打印一个N行M列的矩形。
print(3,5);
public static int print(int a,int b){
//a表示的是行数
//b表示的是列数
for (; ; ){
for (; ; ){
}
}
}
9.方法重载的概念
重载:
在同一个类,有相同方法名的方法,参数列表不同,与返回值无关。
参数列表不同:
参数的个数不同。
method(int a);
method(int a,int b);
method(int a,int b,int c);
参数的类型不同。
method(int a);
method(double a);
method(String a);
参数的类型顺序不同。
method(int a,double b);
method(double a,int b);
10.方法的重载中调用关系。
优先调用实际参数跟形式参数数据类型完全一致的那个方法。
如果没有,就自动类型提升。
11.方法参数传递基本类型
针对于基本类型数据来讲:
变量只在本方法中有效,在方法A中不能修改方法B中的值。
结论:
方法中形式参数如果是基本数据类型。
在方法中修改变量的值,不会影响到调用者变量的值。
练习1:
public static void main(String[] args) {
int number = 10;
System.out.println("①" + number);
method(number);
System.out.println("④" + number);
}
public static void method(int number) {
System.out.println("②" + number);
number = 200;
System.out.println("③" + number);
}
练习2:
public static void main(String[] args) {
int number = 10;
System.out.println("①" + number);
method(number);
System.out.println("④" + number);
}
public static int method(int number) {
System.out.println("②" + number);
number = 200;
System.out.println("③" + number);
return number;
}
练习3:
public static void main(String[] args) {
int number = 10;
System.out.println("①" + number);
number = method(number);
System.out.println("④" + number);
}
public static int method(int number) {
System.out.println("②" + number);
number = 200;
System.out.println("③" + number);
return number;
}
12.方法的参数是引用数据类型
练习1:
public static void main(String[] args) {
int [] arr = {1,2,3};
System.out.println("①" + arr[0]);//1
method(arr);
System.out.println("④" +arr[0]);
}
public static void method(int [] arr) {
System.out.println("②" +arr[0]);
arr[0] = 10;
System.out.println("③" +arr[0]);
}
练习2:
public static void main(String[] args) {
int [] arr = {1,2,3};
System.out.println("①" + arr[0]);//1
method(arr);
System.out.println("④" +arr[0]);
}
public static void method(int [] arr) {
arr = new int[3];
System.out.println("②" +arr[0]);
arr[0] = 10;
System.out.println("③" +arr[0]);
}
|
|