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:公共的;同一个项目下

  

时间: 2024-10-13 22:22:36

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

疯狂java学习笔记之面向对象(四) - this关键字

Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表构造器正在初始化的实例/对象 2.this调用 - 只能在构造器的第一行出现. 如何区分this引用与this调用呢? this引用写法为:this.  ;  而this调用写法为:this(); 例1: 1 class TestThis{ 2 private double weight; 3 pr

疯狂java学习笔记之面向对象(七) - super关键字

super有以下两大作用: 1.起限定作用:强制去访问父类的成员(Field.方法) 2.起调用作用:指定/显示调用父类的某个构造器 super调用规则: 1.子类构造器总会调用父类构造器一次,默认情况下子类构造器会自动调用父类无参数的构造器; 2.若希望明确指定子类构造器调用父类哪个构造器,可以用super(参数,参数,....),到底调用哪个父类构造器取决于super后面传入的形参列表; 3.this()调用与super()调用都必须出现在构造器的第一行,所以他们两个调用时不能同时出现的.

Java学习笔记<3>面向对象相关

面向对象的基本思想 从现实世界客观存在的事务出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式,如抽象.分类 继承.聚合.多态等. 类和对象的关系 对象中存储了类规定的数据类型,并且对象可以调用类的方法. java面向对象 <1>对象是java程序的核心,一切皆对象. <2>对象可以看成静态属性(成员变量)和动态属性(方法)的封装体. <3>类是创新同一类型对象的模版,定义了该类型对象应具有的成员变量及方法. 类的定义 成员变量可以用java语言的任何一种

【原】Java学习笔记019 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 仔细想一想,Animal应该是一个抽象的概念,相对于Animal来说,狗才是具体的概念 6 // Animal的行为也应该算是一个抽象的行为 7 8 // Java中对于这些抽象的概念或是抽象的行为,提供了一个关键字 abstract 来进行修饰 9 10 // 关键字 abstract用在类上,

【JAVA学习笔记】面向对象

编程语言的发展 面向过程的设计思想 面向对象的设计思想 对象和类的概念 类之间的关系 对象和引用 Java类的定义 构造函数 对象的创建和使用 this关键字 static关键字 package和import语句 访问控制 类的继承 方法的重写 final关键字 object类 对象转型 多态 抽象类 接口 编程语言的发展 机器语言 汇编语言 高级语言–面向过程的语言 面向对象的语言 面向过程的思想和面向对象的设计思想 面向对象思维: 合适的方法出现在合适类中 在问题域中,不再考虑一步一步的过程

java学习笔记之面向对象接口

面向对象接口总结 接口理解: 接口是功能的集合,接口的定义也使用.java文件,编译之后也产生.class文件.类的定义使用class  ,而接口的定义使用interface: 定义格式: 1 public interface 接口名{ 2 //常量定义格式:public static final 常量名(一般是大写) 3 成员变量->常量 4 //抽象方法定义:public abstract 返回值类型 方法名(参数列表) 接口中的方法全部是抽象方法 5 成员方法->抽象方法 6 } 7 /

疯狂java学习笔记之面向对象-定义类、方法、构造器

Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. java程序中,类是最小的程序单位 - 所有的java程序都必须从定义类开始 定义类的语法格式: [修饰符]  class  类名{ //0 ~ N 个 Field 定义 //0 ~ N 个 方法定义 //0 ~ N个 构造器定义 } 一个类中最多只能出现五种成分:Field.方法.构造器 一个类最常见

疯狂java学习笔记之面向对象(八) - static和final

一.static: 1.static是一个标识符: - 有static修饰的成员表明该成员是属于类的; - 没有static修饰的成员表明该成员是属于实例/对象的. 2.static修饰的成员(Field.方法.初始化块),与类共存亡:static修饰的成员建议总是通过类名来访问,虽然它也可以通过实例来访问(实质也是通过类来访问的),所以平时若在其他程序中见到通过实例/对象来访问static成员时,可以直接将实例/对象 替换成类名: 3.程序都是先有类再有对象的,有可能出现有类但没有实例/对象的

Java学习笔记四:static关键字

1.static表示什么? static表示"全局"或者"静态"的意思.在Java中没有全局变量的概念,static 可以简单的理解为全局的,独立的一个功能. (1)当我们在使用 static 修饰成员变量或者成员方法的时候,通常会在Java内存中为这些变量或者方法指定了一块独立的区域(这块区域可能在栈中,也有可能在堆中). (2)如果静态的变量或方法在不出其作用域的情况下,其 引用句柄是不会发生改变的. (3)这块区域是内存共享的,它的引用都指向同一个位置,就是说