1 方法
1.1 格式及定义
其中:
修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
返回值类型:就是功能结果的数据类型。
方法名:符合命名规则即可。方便我们的调用。
参数:
实际参数:就是实际参与运算的。
形式参数;就是方法定义上的,用于接收实际参数的。
参数类型:就是参数的数据类型
参数名:就是变量名
方法体语句:就是完成功能的代码。
return:结束方法的。
返回值:就是功能的结果,由return带给调用者。
1.2 分类
实列方法
类方法(静态方法) static
特殊的:构造方法,抽象方法
1.3 作用及特点
1、定义方法可以将功能代码进行封装,便于对该功能进行复用(提高了代码的复用性)
2、方法只有被调用才会被执行
3、对于方法没有具体返回值的情况,返回值类型用关键字void表示,那么该方法中的return语句可省略不写。
2 方法重载(Overload)
2.1 概念
在同一个类中,方法名相同,返回类型,参数列表(参数个数,参数类型,参数顺序)不同。与返回值无关。
2.2 方法的重载存在的原因:
为了增强方法的阅读性,优化了程序设计。
3 方法调用
单独调用,一般来说没有意义,所以不推荐。
:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
赋值调用,推荐方案。
4 构造方法Constructor
4.1 作用
使用 new + 构造方法 创建一个新的对象。给对象的数据(属性)进行初始化
4.2 特征
4.3 构造方法重载
重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表
4.4 构造方法的调用
使用new+构造函数创建一个新的对象。
eg:Person tom = new Person(1,25);
5 参数传值
5.1 概述
java中是没有指针的,java中只存在值传递,只存在值传递!!!
然而我们经常看到对于对象(数组,类,接口)的传递似乎有点像引用传递,可以改变对象中某个属性的值。但是不要被这个假象所蒙蔽,实际上这个传入函数的值是对象引用的拷贝,即传递的是引用的地址值,所以还是按值传递。
5.2 值传递
值传递的数据类型包括,八种基本数据类型和String。
值传递是指方法调用时,实际参数把它的值传递给对应方法的形参,如change()方法中i和j,也在内存空间中分配了存储单元,这样形参在change()方法中的改变不会影响实际参数的值。
5.3 类似引用传递—改变地址值
指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。
除了String
public staticvoidprint(Student stu) { //引用数据类型当作形式参数
stu.name = "张三";
stu.age = 23;
stu.speak();
}
class Student {
Stringname; //姓名
int age; //年龄
public void speak() {
System.out.println(name + "..." + age);
}
}
5.4 两种传递比较
值传递和引用传递的本质区别在于是否在传递的时候进行对象的内存拷贝。
基本类型是由于在JVM中存储区域不同于普通对象所以传递前会拷贝,传递的是拷贝后的值,但是对象在传递的时候不拷贝,直接传“引用值”,指向同一片对象堆内存区域,当然要注意String这种特殊情况。
5.5 可变参数
public double Stu(double a , int … x){ }
Teacher oa = new Teacher ();
double obj = oa.Stu(1.0 /3);