final关键字static关键字

Posted

tags:

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


final关键字

继承带来了好处,同时也会有弊端出现,比如有的时候我们不需要继承某些类或者类中成员的时候,就可以用到final的修饰了,它可以修饰类,成员变量,成员方法,以及局部变量。final的意思就是最终的意思,被他修饰的成员变量会变成一个不能改变值的常量,被他修饰的成员方法不能被子类所重写,被它修饰的类不能被继承。

final的特点:

1、 被final修饰的类,不能被其它的类继承,也就是说它是一个最终类,但是这个类可以继承其他类。

2、 被final修饰的方法,不能被其子类所重写,可以被子类所继承。

3、 被final修饰的局部变量,终生不能被改变。

4、 被final修饰的成员变量,只能赋值一次。

static关键字

需要实现对象的共享数据时,需要在数据前面加上static 修饰。也就是说姓名和年龄是一个人特有的数据,那么这个人的国籍就是共有的数据国籍前面就要加static修饰。下面用一段代码来演示:

? Person类

package cn.itcast.Static关键字01;
/*
 * 被static修饰的成员变量和不被修饰的成员变量的区别演示
 */
public class Person {
//共有属性姓名
String name;
//共享属性国籍
static String country;
}

? Test测试类

package cn.itcast.Static关键字01;
public class Test {
public static void main(String[] args) {
//创建Person对象,调用共有属性和共享属性看他的运行结果
Person p1 = new Person();
Person p2 = new Person();
p1.name = "李四";
p2.name = "王五";
System.out.println(p1.name);
System.out.println(p2.name);
//static修饰的共享属性
p1.country = "中国";
System.out.println(p1.country);
System.out.println(p2.country);
//static修饰的属性可以用类名直接调用
System.out.println(Person.country);
}
}

运行结果: 技术分享图片

静态的注意事项:静态成员不能调用非静态成员,因为静态成员是优先于对象存在的,调用的非静态成员是创建对象后才存在的。

多态调用中,编译看谁,运行看谁?

1、编译都看等号左边的父类

2、运行,静态方法,运行静态中的静态方法

3、运行,非静态方法,运行子类中的重写方法

4、成员变量,编译运行全是父类。

定义静态常量的格式:public static final 数据类型 变量名 = 值;

注意:定义final常量它的变量名全部大写,两个单词之间用下划线连接。


以上是关于final关键字static关键字的主要内容,如果未能解决你的问题,请参考以下文章

关键字final 和static

final与static关键字的区别?(skycto JEEditor)

Java中Static关键字和Final关键字

java多线程04----------final和static

static关键字和final关键字

面向对象之static与final关键字