浅谈Java中final与static
2016-04-07 17:57
405 查看
final:
final的三个基本概念:1、被final修饰的类不能被继承。2、被final修饰的方法不能被重写。3、被final修饰的变量不可以被修改。
*这里的变量不可以被修改是指变量的引用,而非变量的内容。
比如说:
public class Test
{
public static void main(String[] args)
{
final FinalString fs = new FinalString("1");
fs.setStr("2");
System.out.println(fs.getStr());
}
}
这段代码是不报错的,可以正常运行。而:
public static void main(String[] args)
{
final FinalString fs = new FinalString("1");
final FinalString fss = new FinalString("333");
fs = fss;
}
会报错。
static:
static的基本用法是:1、被static修饰的变量属于类变量,可以用类名.变量名直接引用,不用再new一个类。2、被static修饰的方法属于类方法,可以直接用类名.方法名直接引用,不用再new一个类。
常问的问题:1、静态方法可不可以引用静态资源。2、静态方法可不可以引用非静态资源。3、非静态方法可不可以引用静态资源。
静态资源是类在初始化时加载的,而非静态资源是在类new的时候加载的。类的初始化要早于new,因此对于上述的问题:1、静态方法可以引用静态资源。2、静态方法不可以引用非静态资源。3、非静态方法可以引用静态资源。
final的三个基本概念:1、被final修饰的类不能被继承。2、被final修饰的方法不能被重写。3、被final修饰的变量不可以被修改。
*这里的变量不可以被修改是指变量的引用,而非变量的内容。
比如说:
public class Test
{
public static void main(String[] args)
{
final FinalString fs = new FinalString("1");
fs.setStr("2");
System.out.println(fs.getStr());
}
}
这段代码是不报错的,可以正常运行。而:
public static void main(String[] args)
{
final FinalString fs = new FinalString("1");
final FinalString fss = new FinalString("333");
fs = fss;
}
会报错。
static:
static的基本用法是:1、被static修饰的变量属于类变量,可以用类名.变量名直接引用,不用再new一个类。2、被static修饰的方法属于类方法,可以直接用类名.方法名直接引用,不用再new一个类。
常问的问题:1、静态方法可不可以引用静态资源。2、静态方法可不可以引用非静态资源。3、非静态方法可不可以引用静态资源。
静态资源是类在初始化时加载的,而非静态资源是在类new的时候加载的。类的初始化要早于new,因此对于上述的问题:1、静态方法可以引用静态资源。2、静态方法不可以引用非静态资源。3、非静态方法可以引用静态资源。
相关文章推荐
- spark+eclipse环境搭建同时使用kmeans聚类
- struts2文件上传与下载
- Java中异常Default constructor cannot handle exception type UnsupportedEncodingException thrown by impli
- Java服务器框架总结
- Java基础学习笔记
- eclipse的debug模式
- java类加载扩展
- hdu2047.java递推题
- java中IP地址判断所属区域(baidu接口)
- Java创建AD(Active Directory)域控制器用户 (未测)
- java 之 String
- springMVC基本步骤及问题
- 更改eclipse的编辑器样式风格
- MyEclipse快捷键
- 字符串转化为二维数组
- 真机调试时eclipse报错:adb rejected install command with: device offline
- java回调函数简式
- 理解java线程的中断(interrupt)
- java并发编程-Executor框架
- spring4.1.6配置quartz2.2.1(maven)