1. static:
(1) 属性:静态属性-->类被加载时调用。
没用static来修饰的是"实例属性":描述对象的特征,先创建对象才有它.
什么时候定义成静态属性或者实例属性?
答:例如动物园的鸟、猴子,它们的特征用实例属性,
而动物园的count数量 则用静态属性。
(2) 方法:静态方法中不能访问非静态的属性或者方法。
但是非静态方法可以访问静态的属性。
(3) 代码块:定义类中。
作用:做一些类的准备工作,在类被加载时调用,而且只被加载一次,
所以用来测试类是否被加载。
(4) 静态方法不可被覆盖,如果子类和父类有重名的静态方法,虽然编译通过,但并不能实现多态,所以不能
叫"覆盖"。例如:Animal a = new Bird(); a.move();如果是"多态"的话应该输出的结果为,子类中的结果,
但是实际不是,它是调用的是父类中的方法。所以不能叫"覆盖(多态)"。
2. final:(在方法里面定义的变量必须是final类型的,否则就会编译不通过)
(1) 局部变量:基本数据类型值不被改变;如为引用类型则指向的地址不被改变。
final可以修改变量:包括"局部变量(在方法内部的变量叫局部变量)",和"实例变量"也叫"类变量"是在类中定义的,即是"成员变量"就叫"类变量"或"实例变量".这里的"实例变量"包括"全局变量和静态变量"。
(2) 属性:常量。有2中赋值方式:
一、直接赋值。
二、通过构造函数赋值。
但是如果和static一起使用的话:就必须直接赋值。
(3) 方法:这个方法不能被覆盖。
(4) 类:这个类不能被继承。且类中的方法默认都是fianl的。
3. 静态代码块和main函数执行顺序的详解:
(1) 情况一:在主函数中有个main函数和静态代码块。
顺序如下:先执行静态代码块--->在执行main函数的入口--->再执行构造函数--->main函数结束。
(2) 情况二:在主函数中只有个main函数没有静态代码块。
顺序如下:先执行main函数的入口--->父类的静态代码块--->子类的静态代码块--->父类的构造函数--->子类的构造函数--->子类的方法--->main函数结束。
4. 类加载时机:
(1) 生成类对象的时候一定会加载.
(2) 没有生成类的对象,但是访问了类的静态成员(包括方法或属性)时候也加载.
(3) 定义类的引用的时候,不加载!(只是定义空的引用而已).
(4) 创建子类时,先加载父类(首先要生成父类的对象).
5. 注意!
通过子类名去调用父类中的静态方法时,只加载父类而不加载子类。
6.abstract的解说:
(1) 可不可以定义一个引用呢?
可以的。即AbstractTest t = new 子类(); 作用是为了用"多态".
(2) 但是不能用new来实例化。
(3) 能不能有构造方法呢?
可以的。这里的构造方法的作用只是让子类的对象能够编译通过,但不是用来new的(即实例化父类对象的)。
(4) 可以用子类来实现父类中的所有方法。
7. 接口的解说:
(1) 一个类可以实现多个接口,实现这个接口的类中的方法应当为public的(不能省略的)。
(2) 接口中的变量默认为:public static final (这个可以省略的)。
接口中的方法默认为:public abstract (这个可以省略的)。
(3) java中的类是单继承,而接口可以多继承。
(4) 接口中不能有构造方法,即不能用new()。
(5) 接口和接口之间只有继承(可以多继承)。
类与类直接也只有继承关系(单继承)。
类可以实现多个接口。
分享到:
相关推荐
在Java编程语言中,`static`、`final`、`abstract`和`interface`是四个非常重要的关键字,它们分别代表不同的特性,用于定义类、变量和方法的行为。下面是对这些关键字的详细解释: 1. **static(静态)** - **...
Java 中的 final 和 static 关键字详解 final 关键字是 Java 中的一种访问修饰符,用于修饰类、方法和变量,以确保它们不能被修改或继承。下面是 final 关键字的详细解释: 1. final 类 final 类不能被继承,也...
JavaSE 中的 static、final 及 abstract 修饰符都是非常重要的概念,它们在编程中扮演着不同的角色,下面我们将详细地介绍它们的用法和特点。 static 修饰符 static 修饰符可以修饰变量、方法和代码块。静态变量...
Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...
面向对象部分让人搞晕的几个关键字,我这里专门针对这几个关键字进行了整理相关的面试题,只要你能做对80%,就证明你面向对象基本学懂了
java中final和static讲解及实例
Static、Final 和 Static Final 的区别 Static、Final 和 Static Final 是 Java 中三个重要的关键字,它们之间的区别和应用场景是开发者需要了解和掌握的。 首先,让我们来了解 Static 关键字。Static 是 Java 中...
本文将详细总结 final 和 static 的使用方法和限制。 一、final 关键字 final 关键字可以用来修饰类、方法、变量等,它的主要作用是表明某个东西是“不可改变”的。下面是 final 关键字的使用方法和限制: 1、...
接口中的变量默认类型是public static final,也是就是说是 公有静态常量 。 而方法默认是public abstract,公有抽象方法,但是事实真的是这样吗? 一.新特性 Java 1.8对接口有两个方面的增强:接口中可以添加使用...
在Java编程语言中,`final`与`static`是两个非常关键且常用的关键字,它们各自具有独特的功能和用途,可以极大地增强代码的稳定性和可维护性。下面将详细解析这两个关键字的用法及其在Java中的重要性。 ### 一、`...
在Java编程语言中,`static`和`final`都是关键字,它们用于定义不同的特性,但同时也有一些相似之处。下面我们将详细探讨这两个关键字...在设计类和接口时,明智地使用这两个关键字可以帮助提高代码的封装性和安全性。
`final`可以用来修饰类、方法以及变量,其核心目的是为了保护数据的安全性和不可变性。 #### 二、final修饰类 当一个类被声明为`final`时,意味着这个类不能再被继承。这样的设计主要是为了保护类的设计不被外部...
Java 中 final 和 static 的区别 final 关键字在 Java 中有多种用法,包括修饰变量、方法、类等。下面是 final 关键字的各种用法: 1. final 修饰变量:表示该变量一旦被初始化,程序无法修改变量的值,该变量变成...
在设计类和接口时,明智地使用`final`和`static`可以帮助实现更好的设计模式,例如单例模式(`static`与私有构造函数结合)和不可变对象(`final`类和属性)。在日常编程中,应根据需求合理选择和应用这两个关键字。
Java 中 static、this、super、final 的用法 静态方法(static method)是一种特殊的方法,它可以在不需要创建对象的情况下被调用。Java 中的静态方法使用 static 关键字来修饰,例如 public static void main...
Java编程语言中的`final`, `static`, 和 `abstract` 是三个非常重要的关键字,它们分别用于定义不同的特性。接下来,我们将详细探讨这些关键字的作用及其应用场景。 ### 抽象类(abstract) 1. **定义**:当一个类...
### Static (静态) 和 Final (最终) 在 Java 中的应用 #### Static (静态) 在 Java 编程语言中,`static` 关键字用于定义类成员(变量和方法)的访问特性,表明这些成员属于类本身而不是类的实例。具体而言: - *...
1.static修饰一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用.
本文将详细介绍 final 和 static 关键字的使用方法和注意事项。 一、final 关键字 final 关键字在 Java 中有多种用途,包括修饰类、方法和变量。 1. final 类 final 类是无法被继承的,final 类中的方法默认是 ...
static 可以修饰初始化代码块扩充内容三、final(最终的,最后的)1.final可以修饰变量2.final可以修饰方法3.final可以修饰类总结abstract、static、final可以修饰的内容abstract、static、final是否可以修饰构造...