快捷搜索: 王者荣耀 脱发

Java面向对象:代码块,方法

代码块

在Java中,使用{}括起来的代码称为代码块。

根据其位置和声明的不同,可以分为构造代码块,静态代码块,局部代码块,同步代码块。

局部代码块

在方法中部出现:限定变量生命周期,及早释放,提高内存利用率。

构造代码块

在类中方法外出现:多个构造方法中相同的代码存放到在一起,每次调用构造都执行,并且在构造方法前执行。

作用:可以把多个构造方法中的共同代码放到一起,对对象进行初始化。

静态代码块

在类中方法外出现,并加上static修饰:用于给类进行初始化,在加载的时候就执行,并且只执行一次。

作用:一般是对类进行初始化。

同步代码块

使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。

静态代码块,构造代码块,构造方法的执行顺序?

静态代码块>构造代码块>构造方法

静态代码块只执行一次,构造代码块每次调用构造方法都执行。

父类静态代码块>子类静态代码块>父类构造代码块>父类构造方法>子类构造代码块>子类构造方法

方法

完成特定功能的代码块。

格式

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...) {
    方法体语句;
    return 返回值;
}

参数:实际参数:就是实际参与运算的。

形式参数:就是方法定义上的,用于接收实际参数。

返回值:功能的结果,由return带给调用者,只能有一个返回值。

参数传递

值传递:传递的是具体的值。

引用传递:传递的是内存地址。

当传递基本数据类型时,形参的改变不影响实参。当传递引用数据类型时,形参的改变直接影响实参。

调用

单独调用

输出调用:System.out.println(方法名(实参名1,实参名2,...));

赋值调用:返回值类型 变量 = 方法名(实参名1,实参名2,...);

方法重载

在同一类中,方法名相同,形参的个数或类型不同。

方法重写

方法重写的前提,存在继承关系,对父类方法进行重写。

方法重写时,子类的方法名与形参列表必须和父类一致。

方法重写时,子类的返回值类型必须要小于或者等于父类的返回值类型。

方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。

方法重写时,子类抛出的异常类型要小于或者等于父类抛出的异常类型。

权限修饰符

可以修饰:类,构造方法,成员变量,成员方法

不可以修饰:局部变量

访问权限从小到大

private:私有的

default:默认的

protected:受保护的

public:共有的

修饰符

权限修饰符:private,default,protected,public

状态修饰符:static,final

抽象修饰符:abstract

经验分享 程序员 微信小程序 职场和发展