访问控制修饰符、abstract关键字、final关键字、static关键字

1.访问控制修饰符

        其实看太多的文字定义完全是浪费时间,一张图就能将访问控制修饰符解释清楚

访问权限

public

protected

default

private

本类

本包

×

子类

×

×

不同包

×

×

×

public:都可以访问;

protected:本类、本包以及所有子类中可以访问;

defalut:本类、本包中访问;

private:只能在本类中访问。

私有化成员:用private关键字修饰的成员变量和成员变量没有继承,子类不能直接调用,被private修饰的成员只能在本类中被访问; (即封装)

调用方法:1.子类继承父类中提供setter和getter方法;

                2. 调用父类的有参构造方法可以对父类的私有化成员进行赋值。

它们的优先级是:public-protected-默认-private

2.abstract关键字

    用来修饰抽象类

抽象类定义格式:

    abstract class 类名{

    }

抽象方法的格式修饰符 abstract 返回值类型 方法名();//没有方法体,以分号结束

注意!!!

        1. Abstract关键字不与final关键字连用,abstract没有方法体,就是用来继承的,而final不能继承

        2. Abstract关键字不与static关键字连用,static方法->类名.方法名调用,抽象类无方法体,调用干嘛?用来做继承的

        3. Abstract关键字不与Private关键字连用,因为Private关键字不能继承

3.final关键字  

    1.final变量:局部变量和成员变量都只能赋值一次;

          a:成员变量可在定义时直接赋值;

          b:声明时不赋值,在(constructor(构造代码块))构造方法中赋值

    2.final方法:不能被重写;

    3.final:不能被继承。

4.static关键字

  对于多个对象拥有相同的属性值,多次赋值很麻烦,希望做到一次赋值多次使用,属性加上static,相当于该属性是该类的所有对象所共享

特点:静态修饰的成员变量,只有一份,被所有对象共享

静态的内存分析:static修饰的成员,class文件中和堆内存中保存的都是静态标记(地址),该静态成员变量真正的值在  静态区

静态方法:类名.方法名()调用

静态方法内不能访问非静态成员变量(或是非静态成员方法),因为静态方法优先于对象产生,所以在方法内不能出现this和super(指代的是对象),同时不知道this,super指代哪个对象(静态变量被所有对象共享)

无论是变量、方法还是代码块,只要用static修饰,就是在类被加载时就已经“准备好了”,也就是可以被使用或者已经被执行,都可以脱离对象而执行。反之,没有static,则必须是依赖于对象。详细了解static,请点击

https://blog.csdn.net/u012152619/article/details/46003303?ticket=ST-8336-vfdc6DSIM6QenBAmwIsN-passport.csdn.net

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值