.方法:
方法是一种语法结构,它可以把一段代码封装成一个功能,也方便重复使用。 好处:1.提高了代码的复用性和开发效率,2.让程序的逻辑更清晰 3.有利于程序维护。 方法是程序中最小的执行单元
System.out.println(),
println():是一个方法。
System 是系统类。
out是标准输出对象
这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。
2-1:方法的命名规则:
1.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。
2.下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
2-2:方法的定义:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
实例:
public static void main(String[] args) {
int rs = max(23,26);
System.out.println(rs);
}
/** 返回两个整型变量数据的较大值 */
public static int max(int num1, int num2) {
int result = num1 + num2;
return result;
}
2-3:方法常见的问题:
1.方法的编写顺序无所谓
2.方法与方法之间是平级关系,不能嵌套定义。
3.方法的返回值类型为void(无返回值),方法内则不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
4.return 语句下面,不能写代码,因为永远执行不到,属于无效的代码。
5.方法不调用就不执行,调用的时候必须严格匹配方法的参数情况。
6.有返回值的方法调用时,可以选择定义变量接收结果,或者直接输出调用;甚至直接调用;无返回值方法的调用只能直接调用一下。
public class fangfa {
public static void main(String[] args) {
// 返回1-n的数字之和
int a = add(10);
int as = add(100);
System.out.println(a);
System.out.println(as);
// 判断一个整数是奇数还是偶数 并进行结果的输出
check(24);
System.out.println("...............");
check(25);
// 需求:使用方法,支持找出任意整型的数组的最大值
int[] age = {12,24,86,10,76};
int max = getArrayMaxData(age);
System.out.println("最大值数据是:" + max);
}
/** 返回1-n的数字之和 */
public static int add(int n){
int sum = 0;
for(int i = 0; i < n; i++){
sum += i;
}
return sum;
} /
** 判断一个整数是奇数还是偶数 并进行结果的输出 */
public static void check(int number){
if(number % 2 == 0){
System.out.println("number是偶数");
}else{
System.out.println("number是奇数");
} }
// 需求:使用方法,支持找出任意整型的数组的最大值
public static int getArrayMaxData(int[] arr){
// 找出数组的最大值
int max = arr[0];
// 遍历数组的每个元素与最大的数据进行比较,若较大则替换
for (int i = 0; i < arr.length; i++) {
if(arr[i] > max){ max = arr[i];
} }
return max;
} }
2-4:内存的分配:
1.堆内存
什么是堆内存?
堆内存是java内存中的一种,它的作用是用于存储java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间给它,用于存放。
堆内存的特点是什么?
第一点:堆内存的特点就是:先进先出,后进后出,也就是你先排队好,你先买票。
第二点:堆可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,但缺点是,由于要在运行时动态分配内存,存取速度较慢。
new对象在堆中如何分配?
由Java虚拟机的自动垃圾回收器来管理。
2.栈内存:
什么是栈内存?
栈内存是Java的另一种内存,主要是用来执行程序用的,比如:基本类型的变量和对象的引用变量
特点:1. 先进后出,后进先出。2. 存取速度比堆要快,仅次于寄存器,栈数据可以共享,缺乏灵活性。
3.栈与堆的区别:
1). 堆内存用来存放由new创建的对象和数组
2). 栈内存用来存放方法或者局部变量等
3). 堆是先进先出,后进后出
4). 栈是先进后出,后进先出
5). 共享性的不同:
栈内存是线程私有的
堆内存是所有线程共有的
4.方法区:
字节码文件加载时进入的内容
2-5:方法参数传递机制:值传递
形参和实参各指什么?
1.形参:以方法为例,就是方法定义时的变量。
2.实参:在方法内部定义的变量。
java的参数传递机制是什么样的?
值传递,传输的是实参存储的值。
2-5:方法参数传递机制:引用传递
是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
2-6:方法重载:
在同一个类中,出现多个名称相同的,但是形参列表是不同的,那么这些方法就是重载方法。
作用:
可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计。