Java final修饰符的作用,Java中的final修饰符

1.什么时候可以选择final修饰符

如果想让一个类不被其他类继承,不允许在有子类,这时候就要考虑用到final来修饰。

2.用final修饰的类

首先大家要明白,用final修饰的类是不能被继承的,下面来看一个错误案例。

eg:

final class Penguin

{

}

class SubPenguin extends Penguin

{

}

此时这段代码的class SubPenguin extends Penguin这行代码会报错:

The type SubPenguin cannot subclass the final class :翻译:该类型SubPenguin不能继承的最后类

即.Penguin类不能被继承。

3.用final修饰的方法

eg:

class Penguin

{

public final void print(){}

}

class Subpenguin extends Penguin

{

public void print(){}//错误

}

此时这段代码public void print(){}会报错,提示错误信息:

cannot override the final method from Penguin:翻译:无法覆盖企鹅的最后方法

即.print方法不能被子类重写。

4.用final修饰的变量

用final修饰的变量包括成员变量和局部变量,他们将变成常量,只能赋值一次。

public class Dog

{

final String name="小黄";//用final来修饰狗狗的姓名

public void setname(String name)

{

this.name=name; //错误,name不能在被赋值。

}

}

5.使用final修饰符的注意点

final可以用来修饰类,方法和属性,不能修饰构造方法。

6.用final修饰的引用型变量,变量所指对象的属性值是否能改变?

首先来看一个简单的例子

//狗狗类

public class Dog

{

String name;//狗狗的姓名

//带参构造,给狗狗的名字赋值

public Dog(String name)

{

this.name=name;

}

}

//测试类

class Test

{

public static void main(String[] args)

{

final Dog dog=new Dog("小黄");//实例化一个狗对象,用final修饰

dog.name="大黄";

dog=new Dog("小八");

}

}

这段代码中dog对象被修饰为final成常量,其值不可变,但要注意的是dog.name="大黄";这行代码并没有错,那么dog=new Dog("小八")是错的,也就是说,使用final修饰的引用型变量,变量不可以在指向另外的对象,但是所指变量的内容是可以改变的。

结论:使用final修饰的引用型变量时,变量的值时固定不变的,而变量所指对象的属性值是可变的。

Java学习笔记十九:Java中的访问控制修饰符

Java中的访问控制修饰符 一:Java修饰符的种类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class Hello ...

详解Java中的访问控制修饰符(public, protected, default, private)

Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...

分享知识-快乐自己:java 中的访问修饰符

1):Java中的访问修饰符: Java面向对象的基本思想之一是封装细节并且公开接口.Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节. 访问控制 ...

java中4种修饰符访问权限的区别及详解全过程

java中4种修饰符访问权限的区别及详解全过程 http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html java中4中修饰符分别为 ...

(转)JAVA中的权限修饰符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值