码迷,mamicode.com
首页 > 其他好文 > 详细

final关键字、static关键字

时间:2018-01-17 20:04:11      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:country   white   1.5   需要   cto   name   多态   不能   区别   


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关键字

标签:country   white   1.5   需要   cto   name   多态   不能   区别   

原文地址:http://blog.51cto.com/13502869/2062186

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!