static关键字:
package Static;
/**
* static关键字
* 可以修饰属性,方法,类[内部类]
* 子类能够继承父类的静态方法,但是不能重写父类的静态方法,只是隐藏了父类相同的静态方法
* 静态的方法不能被覆盖,也不能覆盖非静态方法
* 只要有静态,就不能覆盖
*
* 不能在一个静态的方法里面去访问一个非静态的成员变量
*
* static代码块:
* 作用也是完成一些初始化工作。首先执行静态代码块,然后执行构造方法
* 静态代码块在类被加载的时候执行,而构造方法是在生成对象的时候执行.
* 想要调用某个类来生成对象,首先需要将类加载到Java虚拟机上,然后
* 由JVM加载这个类来生成对象
* static代码块只会被执行一次,因为一个类只会被JVM加载一次,而构造
* 方法是每次生成一个对象的时候,就会被调用一次
*/
public class StaticClass
{
public static void main(String[] args)
{
M m = new N();
//这里输出什么,取决于引用指向的是谁
m.test();
}
}
class M
{
public static void test()
{
System.out.println("M");
}
}
class N extends M
{
//实现隐藏父类的test()方法,去掉static就是重写,但是因为不能覆盖,所以会报错
public static void test()
{
System.out.println("N");
}
}
final关键字:
package Static;
/**
* final关键字:可以修饰属性、方法、类
* 修饰类时,这个类就是终态类、即不能被继承
* 修饰方法时,这个方法就是终态方法,即不能被重写
* 修饰属性时,如果这个属性是一个原生的数据类型,那么这个属性不能被改变,也就是常量了
* 如果这个属性是一个引用类型,那这个引用类型不能再指向其它对象了,但它所指向的对象的内容是可以改变的
* 此时成员属性必须要显示地赋初值,因为成员变量系统在初始化的时候,如果没有初值,那么系统在调用构造器的时候会默认赋值,但此成员是final的,无法更改,所以会出错了
*
* 对于final类型成员变量,一般来说有两种赋初值的方法:
* 1.在声明final类型的成员变量时就赋值
* 2.在声明final类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋上初值
*/
public class FinalClass
{
final int a;
public FinalClass()
{
a=10;
System.out.println(a);
}
public FinalClass(int a)
{
//一定要在这里赋值,虽然上面已经有了一个默认构造器,但对于系统来说,没有先后顺序,调用哪一个由用户决定,他们是平级的,所以这里也要赋初值
this.a=a;
}
public static void main(String[] args)
{
People p = new People();
//p.a = new Address();a是一个final的地址,当然不能改,但是这个地址所指向的对象的属性还是可以改的
p.a.name="shanghai";
FinalClass f = new FinalClass();
System.out.println(f.a);
}
}
class People
{
final Address a = new Address();
}
class Address
{
String name="beijing";
}
分享到:
相关推荐
java中final和static讲解及实例
在Java编程语言中,`final`与`static`是两个非常关键且常用的关键字,它们各自具有独特的功能和用途,可以极大地增强代码的稳定性和可维护性。下面将详细解析这两个关键字的用法及其在Java中的重要性。 ### 一、`...
Java 中 final 和 static 的区别 final 关键字在 Java 中有多种用法,包括修饰变量、方法、类等。下面是 final 关键字的各种用法: 1. final 修饰变量:表示该变量一旦被初始化,程序无法修改变量的值,该变量变成...
在Java编程语言中,`final` 和 `static` 是两个非常重要的关键字,它们分别具有不同的含义和用法,但都对代码的结构和行为产生深远影响。本文将深入探讨这两个关键字,并结合实际示例来解释它们的应用场景。 首先,...
Java 中的 final 和 static 关键字详解 final 关键字是 Java 中的一种访问修饰符,用于修饰类、方法和变量,以确保它们不能被修改或继承。下面是 final 关键字的详细解释: 1. final 类 final 类不能被继承,也...
Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...
"Java关键字final、static使用总结" 在 Java 编程语言中,final 和 static 是两个非常重要的关键字,它们可以用来修饰类、方法、变量等,了解它们的使用方法和限制非常重要。本文将详细总结 final 和 static 的使用...
Java中的`final`和`static`关键字在编程中扮演着重要的角色,它们分别代表了不同的概念和用法。本文将详细解析这两个关键字的应用及其在继承中的差异。 首先,`final`关键字主要有三个应用场景: 1. **final 类**...
Java 中的 final 和 static 关键字详解 Java 中的 final 和 static 关键字是两个重要的关键字,它们在 Java 编程中扮演着重要的角色。本文将详细介绍 final 和 static 关键字的使用方法和注意事项。 一、final ...
### Java中的final关键字详解 #### 一、final的概述与用途 `final`关键字在Java中扮演着重要的角色,它通常被用来表示“不可变”的特性。`final`可以用来修饰类、方法以及变量,其核心目的是为了保护数据的安全性...
在Java编程语言中,`static`和`final`都是关键字,它们用于定义不同的特性,但同时也有一些相似之处。下面我们将详细探讨这两个关键字的区别和用法。 首先,`static`关键字是用来声明类级别的变量或方法,这意味着...
Java 中 static、this、super、final 的用法 静态方法(static method)是一种特殊的方法,它可以在不需要创建...static、this、super、final 是 Java 中四个非常重要的关键字,了解它们的用法是 Java 编程的基础。
Java多线程关键字final和static详解 Java多线程编程中,final和static关键字扮演着非常重要的角色,它们可以帮助开发者编写更加安全、可靠的多线程程序。在本文中,我们将深入探讨final和static关键字在Java多线程...
- 类级(静态)常量通常也用`final`修饰,例如`public static final`,这样的变量被称为常量,如数学中的圆周率π。一旦赋值,就不能更改,常用于定义程序中的固定值。 - `final`修饰的实例变量(非静态)意味着它...
public static final String LOAN = "loan"; ``` 在这个例子中,`LOAN` 是一个不可变的常量,尝试重新赋值会导致编译错误。`final` 变量在多线程环境中特别有用,因为它们提供了一种线程安全的方式,无需额外的同步...
【Java中的final关键字详解】 Java中的final关键字是一个非常重要的修饰符,它用于声明变量、方法和类,确保它们在程序执行期间保持不变。final关键字在Java编程中的应用广泛,可以帮助提高代码的稳定性和可维护性...
在Java编程语言中,`static`、`this`、`super`和`final`是四个非常重要的关键字,它们各自有着特定的用途和含义。 1. **static**: 静态关键字`static`用于声明类级别的变量和方法,即静态变量和静态方法。静态变量...
Java中的`static`、`this`、`super`和`final`是四个非常重要的关键字,它们在编程中扮演着至关重要的角色。这篇文章将简要介绍这些关键字的基本用法及其应用场景。 1. **static** `static`关键字用于声明类级别的...