java学习笔记之面向对象static,final关键字

Posted 猿上生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习笔记之面向对象static,final关键字相关的知识,希望对你有一定的参考价值。

java学习笔记之面向对象static,final关键字

一.static关键字

1.概述:

  static静态的,被static修饰的成员属于类,不属于单个对象,被所有对象所共享,存在静态区中,静态的成员优先于对象加载到内存中。

2.statc修饰成员的使用方式:(被static修饰的成员变量有默认值)

  

/*
1.可以通过对象直接使用,不推荐使用
2.通过类名调用静态成员
    类名.静态成员变量
    类名.静态成员方法
*/

3.static的特点

 

/*
1.在同一个类中,静态成员只能访问静态成员,非静态成员可以访问静态成员跟非静态成员。原因:静态成员优先加载到内存中,而非静态的成员只有在创建对象时才会加载到内存中。
2.main方法为静态成员方法,仅仅作为程序的执行入口,不属于某个类,可以定义到任意类中。
*/

4.静态代码块:

  代码块:指被{}包裹起来的代码区域

  

/*
1.局部代码块:
    定义在局部位置的(方法内)的代码块,主要作用是改变变量的作用域;
2.构造代码块:
    定义在成员位置(类中方法外)的代码块,构造代码块属于每一个对象,每创建一次对象,就会执行一次。优先于构造方法执行;
    作用:《1》给成员变量赋值《2》将构造方法中的共性代码抽取出来,提高代码的复用性
3.静态代码块:
    定义在成员位置的(类中方法外)的代码块,被static修饰。静态代码块属于类,不属于对象,终身只执行一次,最先执行(静态优先于非静态,优先于对象);作用:《1》给静态变量赋值《2》应用于项目的初始化
*/

5.static多态调用中,编译跟运行;

  编译:看父类,父类有编译成功,父类没有编译失败;

  运行:

    成员变量:都看父类

    成员方法:非静态运行子类重写

          静态运行父类的静态方法(和子类没有关系,多态表现的是父类的形态);

  原因:静态方法属于类,不属于对象,静态方法更没有重写这一说

      对象的多态性,静态和对象无关,父类的引用.静态方法,调用的是父类的静态方法

二.final关键字

1.理解:

  final最终的,不能更改的;

2.final特点:

/*
1.  final修饰类时:被final修饰的类不能被继承,其他不变,可以继承其他类,也叫太监类;
2.  修饰成员方法时:该成员方法是一个最终方法,不能被子类重写,可以被继承使用;
3.  修饰变量时:被修饰的变量是一个常量,其中值不能发生改变,一次赋值终生不变,局部变量只有final一个修饰符;
4.  修饰成员变量时:是一个常量,其值只能赋值一次,必须在创建对象之前赋值,被修饰的成员变量必须显示赋值:《1》定义的时候显示赋值《2》使用构造代码块《3》使用构造方法
*/

三.四种权限修饰符

1.private:私有的,仅同类访问

2.默认:就是不写修饰符,相同包下访问

3.protected:受保护的;相同包或者不同包下的子类访问

4.public:公共的;同一个项目下

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

以上是关于java学习笔记之面向对象static,final关键字的主要内容,如果未能解决你的问题,请参考以下文章

面向对象之static与final关键字

一脚踩进java之基础篇19——面向对象 (final,static关键字)

一脚踩进java之基础篇19——面向对象 (final,static关键字)

JAVA学习笔记面向对象

Kotlin学习笔记之面向对象

Kotlin学习笔记之面向对象