定义一个类,类中可以有属性,方法
class 类名{
属性(成员变量);
成员方法;
}
在某些情况下,我们在需要定义成员方法(简称方法)。比如人类:除了有一些属性外(年龄、姓名等),我们人类还有一些行为比如:可以说话,跑步,通过学习还可以做算术题等等。这时就要用成员方法才能完成。
成员方法的定义:
注意:成员方法是写在定义的类里的
访问修饰符 返回数据类型 方法名(形参列表){
语句;
...
retuen 返回值;//不是必需的,看情况
}
访问修饰符: 作用:控制方法使用的范围
分为四种: public , protected, 默认, private ( 如果不写访问修饰符,就是默认访问修饰符)
注意:
1.一个方法最多有一个返回值(需要返回多个时 ——>数组 )
2. 返回类型可以为任意类型,包含基本类型或引用类型(数组,对象)
3.如果方法要求有 返回数据类型,则方法体中最后的执行语句必须为return 值;而且要 求返回值类型必须和return的值类型一致或兼容
4.如果方法是void,方法体中可以没有return语句或者只写return;
5.同一个类中的方法调用:直接调用即可。
跨类中的方法A类调用B类:需要通过对象名调用。 在A类中new 一个B类的对象
方法的妙处:可以有效地提高代码的复用性
可以将实现的细节封装起来,然后供其他用户来调用
理解:定义的类中 定义的方法可以理解为C 中的一个函数,可以在主函数中进行调用所以可以接受方法的返回值
注意:当调用方法时,都会在栈中开启一个独立的空间
例子:
package Method01;
public class Method01 {
public static void main(String[] args) {
Person p1 = new Person();
p1.speak();//调用speak方法
p1.Calo01();//调用Calo01方法
p1.Calo02(5);//调用Calo02方法,并且进行传参 5
int ret = p1.Sum(10,20);
System.out.println("返回值=" + ret);
}
}
class Person{
public void speak(){
System.out.println("我是一个好人");
}
public void Calo01() {
int res = 0;
for(int i = 0;i<=1000;i++){
res += i;
}
System.out.println("1+2+...+1000结果=" + res);
}
public void Calo02(int n) {
int res = 0;
for(int i = 0;i<=n;i++){
res += i;
}
System.out.println("1+...+n结果=" + res);
}
public int Sum(int n1 , int n2) {
int ret = n1 + n2;
return ret;
}
}
//我是一个好人
//1+2+...+1000结果=500500
//1+...+n结果=15
//返回值=30
方法传参机制:
基本数据类型传递的是值(值拷贝),形参的任何改变不影响实参!
引用数据类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参!