第五课:Java方法
文章目录
一、方法的定义及格式
1、定义
完成特定功能的代码块
(类似于c/c++的函数的定义 在java中我们称之为方法)
2、方法的格式
修饰符 返回值类型 方法名(参数类型 参数1, 参数类型 参数2...)
{
函数体;
return 返回值;
}
//eg.
public static int getSum(int a, int b)
{
int c+a+b;
return c;
}
(1)方法的修饰符
①abstract方法(抽象方法)
- 带有abstract修饰的方法称为抽象方法
- 抽象方法没有方法体
- 抽象方法只能出现在抽象类中
②static方法(类方法或静态方法)
-
带有static修饰符的方法称为类方法
- 类方法是属于整个类的,它被该类的所有对象共享
-
不加static修饰的方法称为实例方法
- 实例方法是属于某个对象的方法,即每个对象的实例方法都有自己专用的内存空间
-
类方法与实例方法的使用注意事项
-
实例变量的访问
-
private int x; //x为实例变量
private static int x;//x为类变量
-
类方法只能访问类变量,不能访问实例变量
-
实例方法既可以访问类变量也可以访问实例变量
-
-
实例方法的调用
- 实例方法只能通过类名被调用,不能直接被调用
- 类方法既可以通过类名被调用,也可以直接被调用
package lesson05Method.Static; //探究是否可以直接调用实例方法 //答案:不能 只有先建立对象,再利用对象调用实例方法 // 而类方法既可以直接调用也可以先建立对象再用对象调用 public class DirectReference { //声明实例方法(不带static) public void WithoutStatic() { System.out.println("成功调用不带static的成员方法,即实例方法"); } //声明类方法(带static) public static void WithStatic() { System.out.println("成功调用带static的成员方法,即类方法"); } public static void main(String[] args) { test t = new test(); t.WithStatic();//用对象调用带static的成员方法 t.WithoutStatic();//用对象调用不带static的成员方法 test.WithStatic();//直接调用带static的成员方法 //test.WithoutStatic();//直接调用不带static的成员方法 //会报错:Error:(26, 13) java: 无法从静态上下文中引用非静态 方法 WithoutStatic() } }
-
③final方法(最终方法)
带有final修饰的方法称为最终方法。在面向对象程序设计中,子类可以覆盖父类的方法。但是,如果父类的某个方法被final修饰,则其子类就不能覆盖这个方法,只能继承这个方法。因此,这样可以防止子类对父类的关键方法进行修改,保证了程序的安全性。
④native方法(本地方法)
用其他语言编写的方法在Java程序中称为本地(native)方法。由于native方法的方法体是使用其他语言在程序外部编写的,所以native方法没有方法体。
⑤synchronized方法(同步方法)
同步方法用于多线程编程。多线程在运行时,可能会同时存取一个数据。为了避免数据的不一致性,可以将方法声明为同步方法,进而对数据加锁,以保证线程的安全。
⑥throws异常类型列表
程序在运行时可能会发生异常现象。每一个异常都对应着一个异常类。如果希望方法忽略某种异常,可将其抛出,让它的“上级”(如调用它的对象等)来处理,从而使程序得以继续运行。
(2)返回值类型
就是该方法所得结果的数据类型
(3)参数
实际参数:实际参与运算的参数
形式参数:方法定义上的,用于接收实际参数的
二、方法的注意事项
1、方法与方法之间是平级关系,不能嵌套定义
- 方法中不能定义方法,但是方法中可以调用方法
2、方法不调用就不执行
三、方法重载
1、定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可
2、方法重载的特点:①方法重载与返回值类型无关,只看方法名和参数列表②在调用时,虚拟机通过参数列表的不同来区分同名方法