方法的定义
什么是方法?简而言之,方法就是解决问题的办法。
在Java语言中,方法大多用于处理一些数据并得到结果,其包括以下几种要素:
void
。知道了方法的必要元素,可得知方法的定义格式如下:
修饰符 返回值类型 方法名(参数列表){
方法体;
return;
}
下面我们举几个例子:
注意 关于方法的定义及使用有以下几点注意事项。
方法的重载
Java语言规定,在同一个类中,允许出现同名的方法,只要方法的参数列表不同即可,这就是方法的重载。
参数列表不同,指的是个数、顺序或数据类型不同。
重载和参数变量名、返回值类型、修饰符无关,主要看方法名和参数列表。
看下面这个例子:
public class Test01{
public static int sum(int a, int b){
return a+b
}
public static int sum(int a, int b, int c){
return a+b+c
}
}
以上代码片段就是对方法的重载,两个方法名都是sum,但是参数列表不同,如果在调用参数时传入两个参数那么程序会调用上面的方法,反之,如果传入三个参数,程序则会调用下面的方法。
方法的重写 Override
子类中如果出现了与父类一模一样的方法时,子类会重写父类的方法。方法声明要与父类相同,而且修饰权限不能比父类更低。
此处内容在后期讲解继承的时候会再次详解。
类是什么?生活中的解释就是由一些具有共同特征的个体组成的一个群体,比如人类。在Java中也是如此,更加专业的说法是描述一类对象的行为和状态。
在Java语言中存在一些提前由jdk开发者定义好的类,我们可以直接导入调用,比如String等等。当然,我们也可以自定义类。
自定义类即是对现实中事物的描述,描述事物的属性方法。
类的定义很简单,如下:
修饰符 class 类名{
内容
}
那么内容中应该存在些什么呢,其中有三,属性、方法、构造器(后期详解)。
下面我们来定义一个简单的人类:
public class Person{
/** 名字属性 */
public String name;
/** 年龄属性 */
public int age;
/** 性别属性 */
public String gender;
/** 吃饭方法 */
public void eat(){
int a = 1;
System.out.println(this.name + "在吃饭,吃了" + a + "口。");
}
}
上面说到类是对某一种事物的抽象描述,那么对象就是用于表示该类事物的个体。
比如,我们来创建一个人类的对象:
public class Test02{
Person person = new Person();
person.name = "张三";
person.age = 18;
person.gender = "男";
person.eat();
}
以上代码片段就是new了一个人类的对象,并对其各属性进行了赋值,又调用了人类中的吃饭方法。
成员变量和局部变量
直接在类中定义的变量称之为成员变量,如Person类中的name、age、gender都是成员变量;而在方法、语句中定义的变量称之为局部变量,如eat方法中的a。那么他们二者有什么不同之处呢?且看下表:
成员变量 | 局部变量 | |
---|---|---|
作用域不同 | 作用返回在整个类中 | 作用在方法、语句内 |
定义的位置不同 | 定义在类中,方法外 | 定义在方法内、语句内 |
默认值不同 | 有默认值 | 没有默认值,不赋值不能使用 |
生命周期不同 | 量跟随对象子啊堆内存中存储,内存等待 JVM 清理 | 跟随方法进栈 |
内存位置不同 | 存在与推内存 | 存在于方法栈 |