static private 与 final 的用法总结

Posted

tags:

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

最好是找到共同点、不同点与易混淆点……我现在对于他们的用法很是迷茫啊……

1.static表示静态。他是属于类的。可以在本身类里直接调用,或在其它类里用类名.方法名调用。不加static表示是实例的方法,必须用实例来调用。在本类里也一样,必须用实例调用

2.private是私有的意思.
// 比如
private class Demo
//这样的话,Demo类就是私有的了.
// 请注意 类是不能用private修饰的,
// 当类被修饰成private没有任何意思.
// 因为外部任何对象都访问不到Demo类了.

private String str;
//这样的话 str属性就私有的了
//外部类就访问不到这个属性了

private void hello()
//这样的话外部类就访问不到hello()方法了
//比如你肯定希望你有些私有的东西
//用常人的思想去理解java oop


//用private关键字:使得你的程序更安全
//变量一般都是用private申明
//然后再本类通过 set get 方法控制该属性

3.final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
参考技术A

static: 静态修饰复符

private:私有的,定义私有属性或方法,不能被其他类调用

final:不可变制的。

一般程序把新产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。

扩展资料:

注意:在一个static 方法中引用任何实例变量都是非法的。

下面是该程序的输出:

Static block initialized.

x = 42

a = 3

b = 12

使用 static修饰符声明属于类型本身而不是属于特定对象的静态成员。static修饰符可用于字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。例如,下面的类声明为 static,并且只包含 static方法。

参考技术B static: 静态修饰符
private:私有的,定义私有属性或方法,不能被其他类调用
final:不可变的。

我们在系统中经常定义某个常量(对象的值不可变)如下:

private static final String VAR = "This is a unable changed Variable";
该变量只能在当前这个类中被使用,并且是带有static修饰的静态函数中被调用。加了final则该属性的值将不能被改变。

JavaBeans 中添加 private static final long serialVersionUID = 1L

这个东西是用来serialization 的key,A和B相互之间传输信息,用seralize,但是相互之间把解包之后的文件进行了更改,如果你程序中不加这个,相互之间再传输,会因为这个key不一样,而失败。所以,在程序中定义,会使软件版本兼容,无论怎么改,都可以相互序列化和反序列化。

Java中,如果class实现了序列化接口,你没有加这一行,eclipse会自动给warning,建议加上,否则,JVM会自动编译生成一个序列号,这样传输会造成反序列化失败。因为不同的JVM之间的序列化算法是不一样的,不利于程序的移植。

一般情况下,建议序列化的class都给一个序列化的ID,这样可以保证序列化的成功,版本的兼容性。
---------------------
作者:flyatcmu
来源:CSDN
原文:https://blog.csdn.net/u013325815/article/details/52041103
版权声明:本文为博主原创文章,转载请附上博文链接!






以上是关于static private 与 final 的用法总结的主要内容,如果未能解决你的问题,请参考以下文章

java 怎样动态修改 private static final int 值

static与final区别

public class DistanceUtil private static final double EARTH_RADIUS = 6378137; private static doub

[转] Java中public,private,final,static等概念的解读

private static final long serialVersionUID = 1L详解

private static final long serialVersionUID = 1L详解